Module: Postmod::Generate

Defined in:
lib/postmod/generate.rb,
lib/postmod/generate/action.rb,
lib/postmod/generate/module.rb

Constant Summary collapse

Action =
Postmod::Action.new(:action_path) do

  def call
    File.open(action_filename, 'w') do |file|
      file.puts action_content
    end
  end

  private

  def action_content
    "class \#{action_name}\n\ndef self.call\nend\n\nend\n"
  end

  def action_name
    action_path.gsub(/^.*core\/lib\//, '').camelize
  end

  def action_filename
    action_path + '.rb'
  end


end
Module =
Postmod::Action.new(:module_path) do

  def call
    Dir.mkdir(module_path)

    File.open(module_filename, 'w') do |file|
      file.puts module_content
    end
  end

  private

  def module_content
    "module \#{module_name}\nDir[\"\\\#{__FILE__.gsub(/\\.rb$/, '')}/*.rb\"].each {|file| require file }\nend\n"
  end

  def module_name
    module_path.split('/').last.camelize
  end

  def module_filename
    module_path + '.rb'
  end

end