Class: Dslable::Generators::ProductCodes::Core
- Inherits:
-
Object
- Object
- Dslable::Generators::ProductCodes::Core
- 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
-
#dsl ⇒ Object
Returns the value of attribute dsl.
Instance Method Summary collapse
- #generate ⇒ Object
-
#initialize(_dsl) ⇒ Core
constructor
initialize core === Params - _dsl: input from dsl.
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
#dsl ⇒ Object
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
#generate ⇒ Object
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 |