module ZenturioBatteries::Base::Generator

Basic module for generation application parts

Public Instance Methods

available_options() click to toggle source

Get the list of available options for current generator

# File lib/zenturio_batteries/base/generator.rb, line 8
def available_options
  []
end
execute!(handler, hard_mode = false) click to toggle source

Execute option for given handler. If there is no such handler - raise Exception

# File lib/zenturio_batteries/base/generator.rb, line 14
def execute! handler, hard_mode = false 
  raise Exception.new('No such handler') unless self.methods.include?(handler)

  method = self.method(handler)
  config_list = method.call

  process_config! config_list, hard_mode
end

Protected Instance Methods

process_config!(config_list, hard_mode) click to toggle source

Copy necessary files to destination folders. Information about files - in config_list parameter

config_list - is a Array and each element is a Hash. each element has 2 keys - :source and :destination

# File lib/zenturio_batteries/base/generator.rb, line 30
def process_config! config_list, hard_mode
  config_list.each do |finfo|
    source = finfo[:source]
    dest = finfo[:destination]

    # Setting bindings for templates
    proj_dir = Dir.pwd

    # Rendering templates
    renderer = ERB.new File.new(ZenturioBatteries.base_dir+'/assets'+source).read        
    res = renderer.result binding
    
    # Saving templates to destination
    dest_file = proj_dir+dest

    if File.exists?(dest_file) && !hard_mode
      puts dest_file+' already exists and generation will be skipped.'
    else           
      File.open(dest_file, "w+") do |f|
        f.write(res)
      end
      puts dest_file+' was generated.'
    end

  end
end