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