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