README.txt in bones-1.1.2 vs README.txt in bones-1.2.0

- old
+ new

@@ -12,35 +12,37 @@ == FEATURES/PROBLEMS: Mr Bones provides the following rake tasks: - clobber # Remove all build products - doc # Alias to doc:rdoc - doc:rdoc # Build the rdoc HTML Files - doc:release # Publish RDoc to RubyForge - doc:rerdoc # Force a rebuild of the RDOC files - doc:ri # Generate ri locally for testing - gem # Alias to gem:package - gem:debug # Show information about the gem - gem:gem # Build the gem file - gem:install # Install the gem - gem:package # Build all the packages - gem:release # Package and upload to RubyForge - gem:repackage # Force a rebuild of the package files - gem:uninstall # Uninstall the gem - manifest:check # Verify the manifest - manifest:create # Create a new manifest - notes # Enumerate all annotations - notes:fixme # Enumerate all FIXME annotations - notes:optimize # Enumerate all OPTIMIZE annotations - notes:todo # Enumerate all TODO annotations - spec:rcov # Run all specs with RCov - spec:run # Run all specs with basic output - spec:specdoc # Run all specs with text output - test:rcov # Run rcov on the unit tests - test:run # Run tests for run + clobber # Remove all build products + doc # Alias to doc:rdoc + doc:rdoc # Build the rdoc HTML Files + doc:release # Publish RDoc to RubyForge + doc:rerdoc # Force a rebuild of the RDOC files + doc:ri # Generate ri locally for testing + gem # Alias to gem:package + gem:debug # Show information about the gem + gem:gem # Build the gem file bones-1.2.0.gem + gem:install # Install the gem + gem:package # Build all the packages + gem:release # Package and upload to RubyForge + gem:repackage # Force a rebuild of the package files + gem:uninstall # Uninstall the gem + manifest:check # Verify the manifest + manifest:create # Create a new manifest + notes # Enumerate all annotations + notes:fixme # Enumerate all FIXME annotations + notes:optimize # Enumerate all OPTIMIZE annotations + notes:todo # Enumerate all TODO annotations + spec # Alias to spec:run + spec:rcov # Run all specs with RCov + spec:run # Run all specs with basic output + spec:specdoc # Run all specs with text output + test # Alias to test:run + test:rcov # Run rcov on the unit tests + test:run # Run tests for run The rake tasks in the Mr Bones framework can be found in the "tasks" directory. Add your own tasks there when you need more functionality. == SYNOPSIS: @@ -128,9 +130,77 @@ Rakefile to declare the dependency. If you do not specify a version, the most current version number for the installed gem is used. depend_on 'logging' depend_on 'rake', '0.7.3' + +=== Freezing a Skeleton + +Freezing allows you to define your own project skeleton to instantiate with Mr +Bones when you create a new project. The default Mr Bones project skeleton is +copied to the ".mrbones" directory in your home directory. From there, the +skeleton can be modified however you like (add new files and tasks, add new +directories, etc). + + bones --freeze + +Typical uses of this feature would be to fill in user specific data like the +author, e-mail address, etc. You can also add more default code to the skeleton +project or your own ".rake" task files. + +==== Updating a Frozen Skeleton + +Just like a regular project, a frozen skeleton can be updated if a newer +version of Mr Bones comes out with better features. Updating a frozen skeleton +will only modify the tasks. All other files in the skeleton remain untouched. + + bones --freeze + +The freeze command is used to update the skeleton tasks to the latest Mr Bones +tasks. A copy of the current tasks are made in an "archive" directory in the +".mrbones" directory. To revert back to the archive version, you will need to +manually rename "archive" to "data" in the ".mrbones" directory. + +==== Unfreezing a Skeleton + +Unfreezing a skeleton will remove your customized project skeleton from the +".mrbones" directory. The default Mr Bones project skeleton will be used +instead. A copy of your custom skeleton is made in the "archive" directory of +the ".mrbones" directory before it is removed. + + bones --unfreeze + +==== Custom Modifications + +Mr Bones will perform a limited set of substitutions on the files in the +skeleton when it generates a new project. ERB is the to insert the project name +and the derived class name into any template files. The file must end in an +".erb" suffix for ERB substitutions to take place. The ".erb" suffix is +stripped from the file during project generation. Therefore, your ERB files +should have two suffixes -- the ".erb" suffix that will be stripped, and the +suffix you want the resulting project file to have. + +Only two values can be substituted into files using ERB -- the project name and +the derived class name. + + <%= name %> + <%= classname %> + +The project +name+ is passed in from the command line and used "as is" (with +the exception that spaces are converted to underscores). The +classname+ is +generated by camel casing the project name where the underscores occur. + + get fuzzy => GetFuzzy + foo_bar => FooBar + +Finally, file names can be modified by substituting in the project name. If a +file name contains the string "NAME" it is replaced with the project name. If +our project is call "get fuzzy" then the following transformations will take +place. + + NAME.rb => get_fuzzy.rb + test_NAME.rb => test_get_fuzzy.rb + NAME_spec.rb => get_fuzzy_spec.rb == ACKNOWLEDGEMENTS: Ryan Davis and Eric Hodel and their Hoe gem (from which much of the Mr Bones rake tasks have been stolen). The rails team and their source annotation