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

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

Constant Summary collapse

DSL_TEMPLATE =
<<-EOF
# encoding: utf-8
require '<%=gem_name%>_dsl_model'

module <%=gem_name_camel%>
  class Dsl
attr_accessor :<%=gem_name%>

# String Define
[<%=string_fields%>].each do |f|
  define_method f do |value|
    eval "@<%=gem_name%>.#\{f.to_s} = '#\{value}'", binding
  end
end

# Array/Hash/Boolean Define
[<%=array_hash_fields%>].each do |f|
  define_method f do |value|
    eval "@<%=gem_name%>.#\{f.to_s} = #\{value}", binding
  end
end

def initialize
  @<%=gem_name%> = <%=gem_name_camel%>::DslModel.new
<%=set_defaults%>
end
  end
end
EOF

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(_dsl) ⇒ Dsl

initialize dsl

Params

  • _dsl: input from dsl



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

def initialize(_dsl)
  fail 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_other_fields, get_set_defaults)
  generate_dsl_src dsl_src
end