Class: Object

Class | Object
In: | lib/active_support/core_ext/blank.rb lib/active_support/core_ext/duplicable.rb lib/active_support/core_ext/kernel/agnostics.rb lib/active_support/core_ext/object/conversions.rb lib/active_support/core_ext/object/extending.rb lib/active_support/core_ext/object/instance_variables.rb lib/active_support/core_ext/object/misc.rb lib/active_support/dependencies.rb lib/active_support/json/encoders/object.rb lib/active_support/vendor/builder-2.1.2/blankslate.rb
Parent: | Object

Same as above, except in Object.

### Methods

acts_like? blank? duplicable? find_hidden_method instance_exec instance_variable_defined? instance_variable_names method_added returning to_json to_param to_query unloadable with_options

### Included Modules

InstanceExecMethods

### External Aliases

send | -> | send!
| Anticipating Ruby 1.9 neutering send
load | -> | load_without_new_constant_marking
method_added | -> | blank_slate_method_added

### Public Class methods

find_hidden_method(name)
method_added(name)

Detect method additions to Object and remove them in the BlankSlate class.

### Public Instance methods

acts_like?(duck)

A duck-type assistant method. For example, Active Support extends Date to define an acts_like_date? method, and extends Time to define acts_like_time?. As a result, we can do "x.acts_like?(:time)" and "x.acts_like?(:date)" to do duck-type-safe comparisons, since classes that we want to act like Time simply need to define an acts_like_time? method.

blank?()

An object is blank if it‘s false, empty, or a whitespace string. For example, "", " ", `nil`, [], and {} are blank.

This simplifies

      if !address.nil? && !address.empty?

to

      if !address.blank?

duplicable?()

Can you safely .dup this object? False for nil, false, true, symbols, and numbers; true otherwise.

instance_exec(*args, &block)

Evaluate the block with the given arguments within the context of this object, so self is set to the method receiver.

From Mauricio‘s eigenclass.org/hiki/bounded+space+instance_exec

instance_variable_defined?(variable)
instance_variable_names()
returning(value) {|value| ...}

A Ruby-ized realization of the K combinator, courtesy of Mikael Brockman.

      def foo
        returning values = [] do
          values << 'bar'
          values << 'baz'
        end
      end

      foo # => ['bar', 'baz']

      def foo
        returning [] do |values|
          values << 'bar'
          values << 'baz'
        end
      end

      foo # => ['bar', 'baz']

to_json(options = {})

Dumps object in JSON (JavaScript Object Notation). See www.json.org for more info.

to_param()

Alias of `to_s`.

to_query(key)

Converts an object into a string suitable for use as a URL query string, using the given `key` as the param name.

Note: This method is defined as a default implementation for all Objects for Hash#to_query to work.

unloadable(const_desc)

Mark the given constant as unloadable. Unloadable constants are removed each time dependencies are cleared.

Note that marking a constant for unloading need only be done once. Setup or init scripts may list each unloadable constant that may need unloading; each constant will be removed for every subsequent clear, as opposed to for the first clear.

The provided constant descriptor may be a (non-anonymous) module or class, or a qualified constant name as a string or symbol.

Returns true if the constant was not previously marked for unloading, false otherwise.

with_options(options) {|ActiveSupport::OptionMerger.new(self, options)| ...}

An elegant way to refactor out common options

      with_options :order => 'created_at', :class_name => 'Comment' do |post|
        post.has_many :comments, :conditions => ['approved = ?', true], :dependent => :delete_all
        post.has_many :unapproved_comments, :conditions => ['approved = ?', false]
        post.has_many :all_comments
      end

Can also be used with an explicit receiver:

      map.with_options :controller => "people" do |people|
        people.connect "/people",     :action => "index"
        people.connect "/people/:id", :action => "show"
      end

[Validate]