class Dslable::Generators::ProductCodes::Core
Constants
- CORE_TEMPLATE
Attributes
dsl[RW]
Public Class Methods
new(_dsl)
click to toggle source
== initialize core === Params
-
_dsl: input from dsl
# 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
Public Instance Methods
generate()
click to toggle source
# 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
Private Instance Methods
adapt_template(gem_name_camel, gem_name_upper, dsl_file_name, fields, gem_name)
click to toggle source
# File lib/generators/product_codes/core.rb, line 134 def adapt_template(gem_name_camel, gem_name_upper, dsl_file_name, fields, gem_name) erb = ERB.new(CORE_TEMPLATE) erb.result(binding) end
generate_core_src(core_src)
click to toggle source
# File lib/generators/product_codes/core.rb, line 139 def generate_core_src(core_src) File.open("./lib/#{@dsl._gem_name}_core.rb", 'w') { |f|f.puts core_src } end
get_default(field)
click to toggle source
# File lib/generators/product_codes/core.rb, line 106 def get_default(field) klass = field._args._klass default_value = field._args._default_value if default_value.nil? method("nil_default_#{klass.to_s.downcase}").call else default_value = default_value.to_s.delete!('{').delete!('}') if field._args._klass == Hash klass == String ? "\"#{default_value}\"" : default_value end end
get_field_call(field)
click to toggle source
# File lib/generators/product_codes/core.rb, line 102 def get_field_call(field) "#{field._field_name} #{get_default(field)}" end
get_field_default(field)
click to toggle source
# File lib/generators/product_codes/core.rb, line 98 def get_field_default(field) "# #{field._args._args_name}'s default value => #{get_default(field)}" end
get_field_desc(field)
click to toggle source
# File lib/generators/product_codes/core.rb, line 86 def get_field_desc(field) "# #{field._desc}" end
get_field_klass(field)
click to toggle source
# File lib/generators/product_codes/core.rb, line 94 def get_field_klass(field) "# #{field._args._args_name} allow only #{field._args._klass}" end
get_field_required(field)
click to toggle source
# File lib/generators/product_codes/core.rb, line 90 def get_field_required(field) "# #{field._args._args_name} is required" end
get_fields()
click to toggle source
# File lib/generators/product_codes/core.rb, line 71 def get_fields field_dsls_all = [] @dsl.fields.each do |field| field_dsls = [] field_dsls << get_field_desc(field) field_dsls << get_field_required(field) if field._args._required field_dsls << get_field_klass(field) field_dsls << get_field_default(field) unless field._args._default_value.nil? field_dsls << get_field_call(field) field_dsls << [''] field_dsls_all << field_dsls.join("\n") end field_dsls_all.join("\n") end
nil_default_array()
click to toggle source
# File lib/generators/product_codes/core.rb, line 121 def nil_default_array ['your value'] end
nil_default_boolean()
click to toggle source
# File lib/generators/product_codes/core.rb, line 130 def nil_default_boolean false end
nil_default_hash()
click to toggle source
# File lib/generators/product_codes/core.rb, line 125 def nil_default_hash ret = { 'your key' => 'your value' }.to_s.delete!('{').delete!('}') ret end
nil_default_string()
click to toggle source
# File lib/generators/product_codes/core.rb, line 117 def nil_default_string "\"your value\"" end