class Scaffoldish::Application
Attributes
project_root[R]
scaffolds[R]
templates_root[R]
workspace[R]
Public Class Methods
new()
click to toggle source
# File lib/scaffoldish/application.rb, line 17 def initialize @workspace = Object.new @workspace.extend(DSL::Conf) @scaffolds = {} @project_root = Dir.pwd @templates_root = File.join(@project_root, 'templates') end
Public Instance Methods
load_config()
click to toggle source
# File lib/scaffoldish/application.rb, line 26 def load_config config_filename = 'Scaffoldable' config_path = Dir.pwd while config_path != '/' && !File.exist?(File.join(config_path, config_filename)) config_path = File.expand_path("..", config_path) end config = File.read(File.join(config_path, config_filename)) @project_root = config_path workspace.scaffolds = @scaffolds workspace.project_root = @project_root workspace.templates_root = @templates_root workspace.instance_eval(config) @scaffolds = workspace.scaffolds @project_root = workspace.project_root @templates_root = workspace.templates_root end
run(*args)
click to toggle source
# File lib/scaffoldish/application.rb, line 48 def run(*args) load_config scaffold_name = args.shift # Parameters checking raise OptionParser::MissingArgument.new("$1 => scaffold_name") if scaffold_name.nil? unless scaffolds.has_key?(scaffold_name.to_sym) raise OptionParser::InvalidArgument.new("$1 => scaffold_name should be one of the followings: #{scaffolds.keys}") end scaffold = scaffolds[scaffold_name.to_sym] puts "Run #{scaffold_name}:" scaffold.run(*args) end