class Dslable::Generators::ProductCodes::CLI

Constants

CLI_TEMPLATE

Attributes

dsl[RW]

Public Class Methods

new(_dsl) click to toggle source
== initialize dsl model
=== Params
  • _dsl: input from dsl

# File lib/generators/product_codes/cli.rb, line 49
def initialize(_dsl)
  fail InvalidDslError.new('dsl not allow nil') if _dsl.nil?
  @dsl = _dsl
end

Public Instance Methods

generate() click to toggle source
# File lib/generators/product_codes/cli.rb, line 54
def generate
  cli_src = adapt_template(@dsl.camelized_gem_name)
  generate_cli_src cli_src
end

Private Instance Methods

adapt_template(gem_name_camel) click to toggle source
# File lib/generators/product_codes/cli.rb, line 60
def adapt_template(gem_name_camel)
  gem_name = @dsl._gem_name
  dsl_file_name = "#{@dsl._gem_name.camelize.downcase.camelize}file"
  erb = ERB.new(CLI_TEMPLATE)
  erb.result(binding)
end
generate_cli_src(cli_src) click to toggle source
# File lib/generators/product_codes/cli.rb, line 67
def generate_cli_src(cli_src)
  FileUtils.mkdir_p('./bin') unless File.exist?('./bin')
  File.open("./bin/#{@dsl._bin_name}", 'w') { |f|f.puts cli_src }
end