Class: Dslable::Core

Inherits:
Object
  • Object
show all
Defined in:
lib/dslable_core.rb

Constant Summary collapse

DSLDEFINE_FILE =
"Dsldefine"
DSLDEFINE_TEMPLATE =
<<-EOS
# encoding: utf-8

# set your gem name. this is use in rb-filename and class-name
gem_name "TODO: set your gem_name"

# set your bin name
bin_name "TODO: set your bin_name"

# set your dsl filed
field :field_name1 do |f|
  # set your field description
  f.desc "field1 description"
  f.args :args_name do |a|
# set your args description
a.desc "args description"
# you can use String, Array and Hash
a.klass String
# if you want not required, comment out following line
a.required
# if you comment out following line, default => nil
a.default_value "args_value2"
  end
end

# field :field_name2 do |f|
#   f.desc "field2 description"
#   f.args :args_name do |a|
#     a.desc "args description"
#     a.klass String
#     a.required
#     a.default_value "args_value2"
#   end
# end
EOS

Instance Method Summary collapse

Instance Method Details

#generateObject



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/dslable_core.rb', line 59

def generate
  src = read_dsl_define
  # DSLからパラメータの取得
  dsl = Dslable::Dsl.new
  dsl.instance_eval src
  Dslable::Generators::GemTemplate.new(dsl).generate
  Dslable::Generators::Settings::Gemfile.new(dsl).generate
  Dslable::Generators::Workflow.new(dsl).generate
  Dslable::Generators::ProductCodes::Core.new(dsl).generate
  Dslable::Generators::ProductCodes::Dsl.new(dsl).generate
  Dslable::Generators::ProductCodes::DslModel.new(dsl).generate
  Dslable::Generators::ProductCodes::CLI.new(dsl).generate
  Dslable::Generators::RSpec::SpecTemplate.new(dsl).generate
  Dslable::Generators::RSpec::Specs.new(dsl).generate
end

#initObject



55
56
57
# File 'lib/dslable_core.rb', line 55

def init
  File.open(DSLDEFINE_FILE, "w") {|f|f.puts DSLDEFINE_TEMPLATE}
end