Class: Dslable::Generators::ProductCodes::Core

Inherits:
Object
  • Object
show all
Defined in:
lib/generators/product_codes/core.rb

Constant Summary collapse

CORE_TEMPLATE =
"# encoding: utf-8\nrequire '<%=gem_name%>_dsl'\n\nmodule <%=gem_name_camel%>\n  # <%=gem_name_camel%> Core\n  class Core\n# rubocop:disable LineLength\n<%=gem_name_upper%>_FILE = '<%=dsl_file_name%>'\n<%=gem_name_upper%>_TEMPLATE = <<-EOS\n# encoding: utf-8\n\n<%=fields%>\nEOS\n# rubocop:enable LineLength\n\n# generate <%=dsl_file_name%> to current directory.\ndef init\n  File.open(<%=gem_name_upper%>_FILE, 'w') do |f|\n    f.puts <%=gem_name_upper%>_TEMPLATE\n  end\nend\n\n# TODO: write your gem's specific contents\ndef execute\n  src = read_dsl\n  dsl = <%=gem_name_camel%>::Dsl.new\n  dsl.instance_eval src\n\n  # TODO: implement your gem's specific logic\n\nend\n\nprivate\n\ndef read_dsl\n  File.open(<%=gem_name_upper%>_FILE) { |f|f.read }\nend\n  end\nend\n"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(_dsl) ⇒ Core

initialize core

Params

  • _dsl: input from dsl



55
56
57
58
# File 'lib/generators/product_codes/core.rb', line 55

def initialize(_dsl)
  fail InvalidDslError.new('dls not allow nil') if _dsl.nil?
  @dsl = _dsl
end

Instance Attribute Details

#dslObject

Returns the value of attribute dsl.



9
10
11
# File 'lib/generators/product_codes/core.rb', line 9

def dsl
  @dsl
end

Instance Method Details

#generateObject



60
61
62
63
64
65
66
67
68
# File 'lib/generators/product_codes/core.rb', line 60

def generate
  gem_name_camel = @dsl.camelized_gem_name
  gem_name_upper = @dsl._gem_name.upcase
  dsl_file_name = "#{@dsl._gem_name.camelize.downcase.camelize}file"
  fields = get_fields

  core_src = adapt_template(gem_name_camel, gem_name_upper, dsl_file_name, fields, @dsl._gem_name)
  generate_core_src core_src
end