bin/howitzer in howitzer-1.0.2 vs bin/howitzer in howitzer-1.1.0

- old
+ new

@@ -19,11 +19,11 @@ c.switch [:r, :rspec], negatable: false c.action do |global_options, options, args| if args.size > 0 validate_options(options) - Dir[File.join(File.dirname(__FILE__), '..', 'generators', '**', '*_generator.rb')].each{ |f| require File.expand_path(f) } + load_generators path_to_dir = File.join(Dir.pwd, args.first) puts " * New project directory creation ..." Dir.mkdir(path_to_dir) puts " Created new './#{args.first}' folder" Dir.chdir(path_to_dir) @@ -39,22 +39,51 @@ exit_now!("Please specify <PROJECT NAME>", 64) end end end - def self.call - exit run(ARGV) + desc 'Upgrade existing project' + command :update do |c| + c.action do + check_project_presence + load_generators + Howitzer::ConfigGenerator.new + Howitzer::RootGenerator.new + Howitzer::CucumberGenerator.new if cucumber_integrated? + Howitzer::RspecGenerator.new if rspec_integrated? + end end + #helpers class << self private def validate_options(options) if !options['cucumber'] && !options['rspec'] exit_now!("Provide --cucumber and/or --rspec option", 64) end end + + def check_project_presence + exit_now!('Current directory is not Howitzer project', 126) unless howitzer_project? + end + + def howitzer_project? + Dir.exists?('pages') && Dir.exists?('config') && File.exists?('boot.rb') + end + + def load_generators + Dir[File.join(File.dirname(__FILE__), '..', 'generators', '**', '*_generator.rb')].each{ |f| require File.expand_path(f) } + end + + def cucumber_integrated? + Dir.exists?('features') + end + + def rspec_integrated? + Dir.exists?('spec') + end end end unless ENV['TEST_MODE'] - HowitzerCli.call -end \ No newline at end of file + exit(HowitzerCli.run(ARGV)) +end