diff options
author | Pratik Naik <pratiknaik@gmail.com> | 2008-07-28 12:26:59 +0100 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2008-07-28 12:33:24 +0100 |
commit | 6e754551254a8cc64e034163f5d0dc155b450388 (patch) | |
tree | e697e85d8699654f04a790e5dc323c7007e87e31 /railties/doc/guides/creating_plugins/creating_plugins.txt | |
parent | 10d9fe4bf3110c1d5de0c6b509fe0cbb9d5eda1d (diff) | |
download | rails-6e754551254a8cc64e034163f5d0dc155b450388.tar.gz rails-6e754551254a8cc64e034163f5d0dc155b450388.tar.bz2 rails-6e754551254a8cc64e034163f5d0dc155b450388.zip |
Merge docrails changes
Diffstat (limited to 'railties/doc/guides/creating_plugins/creating_plugins.txt')
-rw-r--r-- | railties/doc/guides/creating_plugins/creating_plugins.txt | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/railties/doc/guides/creating_plugins/creating_plugins.txt b/railties/doc/guides/creating_plugins/creating_plugins.txt new file mode 100644 index 0000000000..f2ed6ed8bb --- /dev/null +++ b/railties/doc/guides/creating_plugins/creating_plugins.txt @@ -0,0 +1,84 @@ +The Basics of Creating Rails Plugins +==================================== + +Pretend for a moment that you are an avid bird watcher. Your favorite bird is the Yaffle, and you want to create a plugin that allows other developers to share in the Yaffle goodness. + +In this tutorial you will learn how to create a plugin that includes: + + * Core Extensions - extending String with a `to_squawk` method: ++ +[source, ruby] +------------------------------------------- +# Anywhere +"hello!".to_squawk # => "squawk! hello!" +------------------------------------------- + +* An `acts_as_yaffle` method for ActiveRecord models that adds a `squawk` method: ++ +[source, ruby] +------------------------------------------- +class Hickwall < ActiveRecord::Base + acts_as_yaffle :yaffle_text_field => :last_sang_at +end + +Hickwall.new.squawk("Hello World") +------------------------------------------- + +* A view helper that will print out squawking info: ++ +[source, ruby] +------------------------------------------- +squawk_info_for(@hickwall) +------------------------------------------- + +* A generator that creates a migration to add squawk columns to a model: ++ +------------------------------------------- +script/generate yaffle hickwall +------------------------------------------- + +* A custom generator command: ++ +[source, ruby] +------------------------------------------- +class YaffleGenerator < Rails::Generator::NamedBase + def manifest + m.yaffle_definition + end +end +------------------------------------------- + +* A custom route method: ++ +[source, ruby] +------------------------------------------- +ActionController::Routing::Routes.draw do |map| + map.yaffles +end +------------------------------------------- + +In addition you'll learn how to: + + * test your plugins. + * work with 'init.rb', how to store model, views, controllers, helpers and even other plugins in your plugins. + * create documentation for your plugin. + * write custom Rake tasks in your plugin. + + +include::preparation.txt[] + +include::string_to_squawk.txt[] + +include::acts_as_yaffle.txt[] + +include::view_helper.txt[] + +include::migration_generator.txt[] + +include::custom_generator.txt[] + +include::custom_route.txt[] + +include::odds_and_ends.txt[] + +include::appendix.txt[] |