Class: Dslable::Generators::ProductCodes::Dsl

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

Constant Summary collapse

DSL_TEMPLATE =
"# encoding: utf-8\nrequire '<%=gem_name%>_dsl_model'\n\nmodule <%=gem_name_camel%>\n  class Dsl\nattr_accessor :<%=gem_name%>\n\n# String Define\n[<%=string_fields%>].each do |f|\n  define_method f do |value|\n    eval \"@<%=gem_name%>.#\\{f.to_s} = '#\\{value}'\", binding\n  end\nend\n\n# Array/Hash Define\n[<%=array_hash_fields%>].each do |f|\n  define_method f do |value|\n    eval \"@<%=gem_name%>.#\\{f.to_s} = #\\{value}\", binding\n  end\nend\n\ndef initialize\n  @<%=gem_name%> = <%=gem_name_camel%>::DslModel.new\n<%=set_defaults%>\nend\n  end\nend\n"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(_dsl) ⇒ Dsl

initialize dsl

Params

  • _dsl: input from dsl

Raises:



44
45
46
47
# File 'lib/generators/product_codes/dsl.rb', line 44

def initialize(_dsl)
  raise InvalidDslError.new("dsl not allow nil") if _dsl.nil?
  @dsl = _dsl
end

Instance Attribute Details

#dslObject

Returns the value of attribute dsl.



39
40
41
# File 'lib/generators/product_codes/dsl.rb', line 39

def dsl
  @dsl
end

Instance Method Details

#generateObject



49
50
51
52
# File 'lib/generators/product_codes/dsl.rb', line 49

def generate
  dsl_src = adapt_template(@dsl.camelized_gem_name, get_string_fields, get_array_hash_fields, get_set_defaults)
  generate_dsl_src dsl_src
end