Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
improve language and examples in Railtie docs
  • Loading branch information
jimmycuadra committed Feb 19, 2011
1 parent 8d96b89 commit 8af066b
Showing 1 changed file with 21 additions and 33 deletions.
54 changes: 21 additions & 33 deletions railties/lib/rails/railtie.rb
Expand Up @@ -3,55 +3,43 @@
require 'active_support/inflector' require 'active_support/inflector'


module Rails module Rails
# Railtie is the core of the Rails Framework and provides several hooks to extend # Railtie is the core of the Rails framework and provides several hooks to extend
# Rails and/or modify the initialization process. # Rails and/or modify the initialization process.
# #
# Every major component of Rails (Action Mailer, Action Controller, # Every major component of Rails (Action Mailer, Action Controller,
# Action View, Active Record and Active Resource) are all Railties, so each of # Action View, Active Record and Active Resource) is a Railtie. Each of
# them is responsible to set their own initialization. This makes, for example, # them is responsible for their own initialization. This makes Rails itself
# Rails absent of any Active Record hook, allowing any other ORM framework to hook in. # absent of any component hooks, allowing other components to be used in
# place of any of the Rails defaults.
# #
# Developing a Rails extension does _not_ require any implementation of # Developing a Rails extension does _not_ require any implementation of
# Railtie, but if you need to interact with the Rails framework during # Railtie, but if you need to interact with the Rails framework during
# or after boot, then Railtie is what you need to do that interaction. # or after boot, then Railtie is needed.
# #
# For example, the following would need you to implement Railtie in your # For example, an extension doing any of the following would require Railtie:
# plugin:
# #
# * creating initializers # * creating initializers
# * configuring a Rails framework or the Application, like setting a generator # * configuring a Rails framework for the application, like setting a generator
# * adding Rails config.* keys to the environment # * adding config.* keys to the environment
# * setting up a subscriber to the Rails +ActiveSupport::Notifications+ # * setting up a subscriber with ActiveSupport::Notifications
# * adding rake tasks into rails # * adding rake tasks
# #
# == Creating your Railtie # == Creating your Railtie
# #
# Implementing Railtie in your Rails extension is done by creating a class # To extend Rails using Railtie, create a Railtie class which inherits
# Railtie that has your extension name and making sure that this gets loaded # from Rails::Railtie within your extension's namespace. This class must be
# during boot time of the Rails stack. # loaded during the Rails boot process.
# #
# You can do this however you wish, but here is an example if you want to provide # The following example demonstrates an extension which can be used with or without Rails.
# it for a gem that can be used with or without Rails:
# #
# * Create a file (say, lib/my_gem/railtie.rb) which contains class Railtie inheriting from # # lib/my_gem/railtie.rb
# Rails::Railtie and is namespaced to your gem: # module MyGem
# # class Railtie < Rails::Railtie
# # lib/my_gem/railtie.rb
# module MyGem
# class Railtie < Rails::Railtie
# end
# end # end
# end
# #
# * Require your own gem as well as rails in this file: # # lib/my_gem.rb
# # require 'my_gem/railtie' if defined?(Rails)
# # lib/my_gem/railtie.rb
# require 'my_gem'
# require 'rails'
#
# module MyGem
# class Railtie < Rails::Railtie
# end
# end
# #
# == Initializers # == Initializers
# #
Expand Down

0 comments on commit 8af066b

Please sign in to comment.