class GoonModelGen::Golang::Package
Attributes
files[R]
path[R]
types[R]
Public Class Methods
new(path)
click to toggle source
@param path [String]
# File lib/goon_model_gen/golang/package.rb, line 23 def initialize(path) @path = path @types = [] @files = [] end
regularize_name(name)
click to toggle source
# File lib/goon_model_gen/golang/package.rb, line 13 def regularize_name(name) name.gsub(/[\-\_]/, '').downcase end
Public Instance Methods
add(type)
click to toggle source
@param type [Type]
# File lib/goon_model_gen/golang/package.rb, line 49 def add(type) types.push(type) type.package = self end
add_file(file)
click to toggle source
@param file [File]
# File lib/goon_model_gen/golang/package.rb, line 43 def add_file(file) files.push(file) file.package = self end
basename()
click to toggle source
# File lib/goon_model_gen/golang/package.rb, line 29 def basename @basename ||= (path ? ::File.basename(path, '.*') : nil) end
find_or_new_file(name)
click to toggle source
@param name [string] @return [File]
# File lib/goon_model_gen/golang/package.rb, line 81 def find_or_new_file(name) files.detect{|f| f.name == name} || new_file(name) end
lookup(name)
click to toggle source
@param name [string] @param [Type]
# File lib/goon_model_gen/golang/package.rb, line 102 def lookup(name) name_to_type_map[name] end
merge!(other)
click to toggle source
# File lib/goon_model_gen/golang/package.rb, line 37 def merge!(other) other.types.each{|t| add(t) unless types.any?{|oldt| oldt.name == t.name } } other.files.each{|f| add_file(f) unless files.any?{|oldf| oldf.name == f.name } } end
name()
click to toggle source
# File lib/goon_model_gen/golang/package.rb, line 33 def name @name ||= basename ? self.class.regularize_name(basename) : nil end
name_to_type_map()
click to toggle source
@return [Hash<String,Type>]
# File lib/goon_model_gen/golang/package.rb, line 94 def name_to_type_map @name_to_type_map ||= types.each_with_object({}) do |t,d| d[t.name] = t end end
new_combination_type(name)
click to toggle source
@param name [string] @return [CombinationType]
# File lib/goon_model_gen/golang/package.rb, line 75 def new_combination_type(name) CombinationType.new(name).tap{|s| add(s) } end
new_enum(name, base_type)
click to toggle source
@param name [string] @param base_type [String] @return [Enum]
# File lib/goon_model_gen/golang/package.rb, line 61 def new_enum(name, base_type) Enum.new(name, base_type).tap{|s| add(s) } end
new_file(name)
click to toggle source
@param name [string] @return [File]
# File lib/goon_model_gen/golang/package.rb, line 87 def new_file(name) File.new(name).tap do |f| add_file(f) end end
new_named_slice(name, base_type_name, base_type_package_path = nil)
click to toggle source
@param name [string] @param base_type_package_path [String] @param base_type_name [String] @return [Slice]
# File lib/goon_model_gen/golang/package.rb, line 69 def new_named_slice(name, base_type_name, base_type_package_path = nil) NamedSlice.new(name, base_type_name, base_type_package_path).tap{|s| add(s) } end
new_struct(name)
click to toggle source
# File lib/goon_model_gen/golang/package.rb, line 54 def new_struct(name) Struct.new(name).tap{|s| add(s) } end