In Files

Namespace

Class Index [+]

Quicksearch

ActiveSupport

encoding: utf-8


encoding: utf-8


Some code from jeremymcanally’s “pending” github.com/jeremymcanally/pending/tree/master


XmlMini LibXML implementation


XmlMini ReXML implementation


XmlMini LibXML implementation using a SAX-based parser


XmlMini Nokogiri implementation using a SAX-based parser


XmlMini Nokogiri implementation


XmlMini JRuby JDOM implementation


The TimeZone class serves as a wrapper around TZInfo::Timezone instances. It allows us to do the following:

If you set config.time_zone in the Rails Application, you can access this TimeZone object via Time.zone:

  # application.rb:
  class Application < Rails::Application
    config.time_zone = "Eastern Time (US & Canada)"
  end

  Time.zone       # => #<TimeZone:0x514834...>
  Time.zone.name  # => "Eastern Time (US & Canada)"
  Time.zone.now   # => Sun, 18 May 2008 14:30:44 EDT -04:00

The version of TZInfo bundled with Active Support only includes the definitions necessary to support the zones defined by the TimeZone class. If you need to use zones that aren’t defined by TimeZone, you’ll need to install the TZInfo gem (if a recent version of the gem is installed locally, this will be used instead of the bundled version.)


This class has dubious semantics and we only have it so that people can write params[:key] instead of params[‘key’] and they get the same value for both keys.


A typical module looks like this

  module M
    def self.included(base)
      base.send(:extend, ClassMethods)
      base.send(:include, InstanceMethods)
      scope :foo, :conditions => { :created_at => nil }
    end

    module ClassMethods
      def cm; puts 'I am a class method'; end
    end

    module InstanceMethods
      def im; puts 'I am an instance method'; end
    end
  end

By using ActiveSupport::Concern the above module could instead be written as:

  module M
    extend ActiveSupport::Concern

    included do
      scope :foo, :conditions => { :created_at => nil }
    end

    module ClassMethods
      def cm; puts 'I am a class method'; end
    end

    module InstanceMethods
      def im; puts 'I am an instance method'; end
    end
  end

OrderedHash is namespaced to prevent conflicts with other implementations


lazy_load_hooks allows rails to lazily load a lot of components and thus making the app boot faster. Because of this feature now there is no need to require ActiveRecord::Base at boot time purely to apply configuration. Instead a hook is registered that applies configuration once ActiveRecord::Base is loaded. Here ActiveRecord::Base is used as example but this feature can be applied elsewhere too.

Here is an example where on_load method is called to register a hook.

 initializer "active_record.initialize_timezone" do
   ActiveSupport.on_load(:active_record) do
     self.time_zone_aware_attributes = true
     self.default_timezone = :utc
   end
 end

When the entirety of activerecord/lib/active_record/base.rb has been evaluated then run_load_hooks is invoked. The very last line of activerecord/lib/active_record/base.rb is:

 ActiveSupport.run_load_hooks(:active_record, ActiveRecord::Base)

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.