class GoonModelGen::Cli

Public Instance Methods

build_model_objects(paths) click to toggle source

@param paths [Array<String>] Source::Context @return [Array<Golang::Package>]

# File lib/goon_model_gen/cli.rb, line 98
def build_model_objects(paths)
  context = Source::Loader.new.process(paths)
  Builder::ModelBuilder.new(cfg).build(context)
end
build_store_packages(paths) click to toggle source

@param paths [Array<String>] Source::Context @return [Array<Golang::Package>]

# File lib/goon_model_gen/cli.rb, line 105
def build_store_packages(paths)
  context = Source::Loader.new.process(paths)
  model_packages = Builder::ModelBuilder.new(cfg).build(context)
  store_packages = Builder::StoreBuilder.new(cfg, model_packages).build(context)
  return store_packages
end
cfg() click to toggle source
# File lib/goon_model_gen/cli.rb, line 86
def cfg
  @cfg ||= Config.new.load_from(options[:config])
end
config() click to toggle source
# File lib/goon_model_gen/cli.rb, line 28
def config
  puts YAML.dump(cfg)
end
converter(*paths) click to toggle source
# File lib/goon_model_gen/cli.rb, line 66
def converter(*paths)
  loader = Converter::Loader.new(cfg)
  package_hash = Golang::StructsLoader.new(cfg).process # Golang::Packages
  packages = Golang::Packages.wrap(package_hash.values.flatten)
  converter_package = packages.find_or_new(cfg.converter_package_path)

  b = Builder::ConverterBuilder.new(cfg, loader, Golang::Packages.new.add(*packages))
  conv_packages = b.build(paths)

  if options[:inspect]
    puts YAML.dump(conv_packages)
  else
    conv_packages.map(&:files).flatten.each do |f|
      new_generator(f, packages).
        run(converter_package: converter_package)
    end
  end
end
load_yamls(paths) click to toggle source

@param paths [Array<String>] @return [Source::Context]

# File lib/goon_model_gen/cli.rb, line 92
def load_yamls(paths)
  Source::Loader.new.process(paths)
end
model(*paths) click to toggle source
# File lib/goon_model_gen/cli.rb, line 40
def model(*paths)
  packages = build_model_objects(paths)
  if options[:inspect]
    puts YAML.dump(packages)
  else
    packages.map(&:files).flatten.each do |f|
      new_generator(f, packages).run
    end
  end
end
new_generator(f, packages) click to toggle source

@param f [Golang::File] @param packages [Golang::Packages] @return [Generator]

# File lib/goon_model_gen/cli.rb, line 115
def new_generator(f, packages)
  g = Generator.new(f, packages, thor: self)
  g.load_config(cfg)
  g.skip = options[:skip]
  g.force = options[:force]
  g.overwrite_custom_file = options[:overwrite_custom_file]
  return g
end
sources(*paths) click to toggle source
# File lib/goon_model_gen/cli.rb, line 33
def sources(*paths)
  context = load_yamls(paths)
  puts YAML.dump(context)
end
store(*paths) click to toggle source
# File lib/goon_model_gen/cli.rb, line 53
def store(*paths)
  packages = build_store_packages(paths).add(*validation_packages)
  if options[:inspect]
    puts YAML.dump(packages)
  else
    packages.map(&:files).flatten.each do |f|
      new_generator(f, packages).run
    end
  end
end
validation_packages() click to toggle source

@return [Golang::Package]

# File lib/goon_model_gen/cli.rb, line 125
def validation_packages
  Builder::ValidationBuilder.new(cfg).build
end