class GoonModelGen::Builder::StoreBuilder
Attributes
model_packages[R]
Public Class Methods
new(config, model_packages)
click to toggle source
@param config [GoonModelGen::Config] @param model_packages
[Golang::Packages]
Calls superclass method
GoonModelGen::Builder::AbstractBuilder::new
# File lib/goon_model_gen/builder/store_builder.rb, line 19 def initialize(config, model_packages) super(config, config.store_package_path) @package_suffix = "_store" @model_packages = model_packages end
Public Instance Methods
build_package(package_path, types)
click to toggle source
@param package_path [String] @param types [Array<Source::Type>] @return [Golang::Package, Array<Proc>]
# File lib/goon_model_gen/builder/store_builder.rb, line 28 def build_package(package_path, types) procs = [] pkg = Golang::Package.new(package_path).tap do |pkg| types.select{|t| t.is_a?(Source::Struct) && t.id_name && t.id_type }.each do |t| store_type = pkg.new_struct(t.name + "Store") procs << Proc.new{ build_sentences('store', 'goon', t, store_type) } store_type.memo[:model] = begin pkg_name = Golang::Package.regularize_name(t.file.basename) pkg = model_packages.detect_by(pkg_name) raise "Package not found for #{t.file.basename}" unless pkg pkg.lookup(t.name) end end end return pkg, procs end
resolve_type_names(pkgs)
click to toggle source
@param pkgs [Golang::Packages]
# File lib/goon_model_gen/builder/store_builder.rb, line 47 def resolve_type_names(pkgs) pkgs.resolve_type_names(Golang::DatastorePackageFactory.new(config.package_alias_map).packages.dup.add(model_packages)) end