class Tennpipes::Generators::Component
Responsible for add components within a Tennpipes
project.
Public Class Methods
source_root()
click to toggle source
# File lib/tennpipes-init/generators/component.rb, line 11 def self.source_root; File.expand_path(File.dirname(__FILE__)); end
Public Instance Methods
setup_components()
click to toggle source
For each component, retrieve a valid choice and then execute the associated generator.
# File lib/tennpipes-init/generators/component.rb, line 29 def setup_components self.destination_root = options[:root] if in_app_root? @_components = options.dup.slice(*self.class.component_types) @app_name = (options[:app] || "App").gsub(/\W/, '_').camelize if @_components.values.delete_if(&:blank?).empty? self.class.start(["-h"]) say say "Current Selected Components:" list = [] self.class.component_types.each do |comp| list << [comp, fetch_component_choice(comp)] end print_table(list, :indent => 2) exit end self.class.component_types.each do |comp| next if @_components[comp].blank? choice = @_components[comp] = resolve_valid_choice(comp) existing = fetch_component_choice(comp) if existing != 'none' && existing != choice next unless yes?("Switch #{comp} to '#{choice}' from '#{existing}' ?[yes/no]:") end @project_name = fetch_component_choice(:namespace) if comp.to_s == 'test' && !already_exists?(@app_name, @project_name) say "#{@project_name}::#{@app_name} does not exist." say "Please, change app name." next end execute_component_setup(comp, choice) store_component_choice(comp, choice) if comp.to_s == 'orm' && choice.to_s != 'none' inject_into_file destination_root('Rakefile'), "TennpipesTasks.use(:database)\n", :before => "TennpipesTasks.init" inject_into_file destination_root('Rakefile'), "TennpipesTasks.use(#{choice.to_sym.inspect})\n", :before => "TennpipesTasks.init" end end else say 'You are not at the root of a Tennpipes application! (config/boot.rb not found)' end end