Class: Bones::App::Freeze
Constant Summary
Constants inherited from Command
Constants included from Colors
Instance Attribute Summary
Attributes inherited from Command
Class Method Summary collapse
Instance Method Summary collapse
-
#freeze_to_repository ⇒ Object
Freeze the project skeleton to the git or svn repository that the user passed in on the command line.
- #parse(args) ⇒ Object
- #run ⇒ Object
Methods inherited from Command
#in_directory, inherited, #initialize, #mrbones_dir, #name, #output_dir, #repository, #skeleton_dir, #standard_options, standard_options, #verbose?
Methods included from Colors
Constructor Details
This class inherits a constructor from Bones::App::Command
Class Method Details
.initialize_freeze ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/bones/app/freeze.rb', line 5 def self.initialize_freeze synopsis 'bones freeze [options] [skeleton_name]' summary 'create a new skeleton in ~/.mrbones/' description <<-__ Freeze the project skeleton to the current Mr Bones project skeleton. If a name is not given, then the default name "default" will be used. Optionally a git or svn repository can be frozen as the project skeleton. __ option([:repository]) option([:verbose]) option([:colorize]) end |
Instance Method Details
#freeze_to_repository ⇒ Object
Freeze the project skeleton to the git or svn repository that the user passed in on the command line. This essentially creates an alias to the reposiory using the name passed in on the command line.
51 52 53 54 55 56 |
# File 'lib/bones/app/freeze.rb', line 51 def freeze_to_repository FileUtils.mkdir_p(File.dirname(output_dir)) File.open(output_dir, 'w') {|fd| fd.puts repository} stdout.puts "Project skeleton #{name.inspect} " << "has been frozen to #{repository.inspect}" end |
#parse(args) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/bones/app/freeze.rb', line 40 def parse( args ) opts = super args config[:name] = args.empty? ? DEFAULT_SKELETON : args.join('_') config[:output_dir] = File.join(mrbones_dir, name) opts end |
#run ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/bones/app/freeze.rb', line 22 def run fm = FileManager.new( :source => repository || ::Bones.path(DEFAULT_SKELETON), :destination => output_dir, :stdout => stdout, :stderr => stderr, :verbose => verbose? ) fm.archive_destination return freeze_to_repository if repository fm.copy stdout.puts "Project skeleton #{name.inspect} " << "has been frozen to Mr Bones #{::Bones.version}" end |