class Picky::Generators::Selector

Selects the right generator.

Attributes

types[R]

Public Class Methods

new() click to toggle source
# File lib/picky-generators/generators/selector.rb, line 11
def initialize
  @types = {
    :client               => [Client::Sinatra, :sinatra_client_name],
    :server               => [Server::Sinatra, :sinatra_server_name],
    :all_in_one           => [AllInOne::Sinatra, :"directory_name (use e.g. for Heroku)"]
  }
end

Public Instance Methods

generate(*args) click to toggle source

Run the generators with this command.

This will “route” the commands to the right specific generator.

# File lib/picky-generators/generators/selector.rb, line 23
def generate *args
  generator = generator_for *args
  generator.generate
end
generator_for(identifier = nil, *args) click to toggle source
# File lib/picky-generators/generators/selector.rb, line 30
def generator_for identifier = nil, *args
  generator_info = types[identifier.to_sym]
  generator_class = generator_info.first
  generator_for_class generator_class, identifier, *args
rescue
  raise NotFoundException.new(self)
end
generator_for_class(klass, *args) click to toggle source
# File lib/picky-generators/generators/selector.rb, line 40
def generator_for_class klass, *args
  klass.new *args
end