Sha256: 7313e9d06c0a3ebeb5f7c2df2d7e0d762aba507199eaeeceecfc8ed88c35bb32
Contents?: true
Size: 1.36 KB
Versions: 1
Compression:
Stored size: 1.36 KB
Contents
require "goon_model_gen" require "goon_model_gen/builder/abstract_builder" require "goon_model_gen/source/struct" require "goon_model_gen/golang/package" require "goon_model_gen/golang/datastore_supported" module GoonModelGen module Builder class StoreBuilder < AbstractBuilder attr_reader :model_packages # @param base_package_path [String] # @param model_packages [Golang::Packages] def initialize(base_package_path, model_packages) super(base_package_path) @model_packages = model_packages end # @param package_path [String] # @param types [Array<Source::Type>] # @return [Golang::Package, Array<Proc>] 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] = model_packages.detect_by(t.file.basename).lookup(t.name) end end return pkg, procs end # @param pkgs [Golang::Packages] def resolve_type_names(pkgs) pkgs.resolve_type_names(Golang::DatastoreSupported.packages.dup.add(model_packages)) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
goon_model_gen-0.1.2 | lib/goon_model_gen/builder/store_builder.rb |