# File lib/beefcake/generator.rb, line 220 def field!(pkg, f) # Turn the label into Ruby label = name_for(f, L, f.label) # Turn the name into a Ruby name = ":#{f.name}" # Determine the type-name and convert to Ruby type = if f.type_name # We have a type_name so we will use it after converting to a # Ruby friendly version t = f.type_name t = t.gsub(pkg, "") # Remove the leading package name t = t.gsub(/^\.*/, "") # Remove leading `.`s t.gsub(".", "::") # Convert to Ruby namespacing syntax else ":#{name_for(f, T, f.type)}" end # Finally, generate the declaration out = "%s %s, %s, %d" % [label, name, type, f.number] if f.default_value v = case f.type when T::TYPE_ENUM "%s::%s" % [type, f.default_value] when T::TYPE_STRING, T::TYPE_BYTES '"%s"' % [f.default_value.gsub('"', '\"')] else f.default_value end out += ", :default => #{v}" end puts out end