Class Object
In: vendor/rails/railties/lib/rails_generator/lookup.rb
vendor/rails/actionpack/lib/action_controller/routing.rb
vendor/rails/activesupport/lib/active_support/core_ext/blank.rb
vendor/rails/activesupport/lib/active_support/core_ext/duplicable.rb
vendor/rails/activesupport/lib/active_support/core_ext/kernel/agnostics.rb
vendor/rails/activesupport/lib/active_support/core_ext/object/conversions.rb
vendor/rails/activesupport/lib/active_support/core_ext/object/extending.rb
vendor/rails/activesupport/lib/active_support/core_ext/object/instance_variables.rb
vendor/rails/activesupport/lib/active_support/core_ext/object/misc.rb
vendor/rails/activesupport/lib/active_support/dependencies.rb
vendor/rails/activesupport/lib/active_support/json/encoders/object.rb
vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/blankslate.rb
Parent: Object

Same as above, except in Object.

Methods

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

[Source]

    # File vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/blankslate.rb, line 90
90:     def find_hidden_method(name)
91:       nil
92:     end

Lookup missing generators using const_missing. This allows any generator to reference another without having to know its location: RubyGems, ~/.rails/generators, and RAILS_ROOT/generators.

[Source]

    # File vendor/rails/railties/lib/rails_generator/lookup.rb, line 8
 8:     def lookup_missing_generator(class_id)
 9:       if md = /(.+)Generator$/.match(class_id.to_s)
10:         name = md.captures.first.demodulize.underscore
11:         Rails::Generator::Base.lookup(name).klass
12:       else
13:         const_missing_before_generators(class_id)
14:       end
15:     end

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

[Source]

    # File vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/blankslate.rb, line 83
83:     def method_added(name)
84:       result = blank_slate_method_added(name)
85:       return result if self != Object
86:       BlankSlate.hide(name)
87:       result
88:     end

Public Instance methods

A duck-type assistant method. For example, ActiveSupport 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.

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/object/misc.rb, line 56
56:   def acts_like?(duck)
57:     respond_to? "acts_like_#{duck}?"
58:   end

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

This simplifies

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

to

  if !address.blank?

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/blank.rb, line 9
 9:   def blank?
10:     respond_to?(:empty?) ? empty? : !self
11:   end

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

[Source]

   # File vendor/rails/activesupport/lib/active_support/core_ext/duplicable.rb, line 4
4:   def duplicable?
5:     true
6:   end

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

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/object/extending.rb, line 41
41:     def instance_exec(*args, &block)
42:       begin
43:         old_critical, Thread.critical = Thread.critical, true
44:         n = 0
45:         n += 1 while respond_to?(method_name = "__instance_exec#{n}")
46:         InstanceExecMethods.module_eval { define_method(method_name, &block) }
47:       ensure
48:         Thread.critical = old_critical
49:       end
50: 
51:       begin
52:         send(method_name, *args)
53:       ensure
54:         InstanceExecMethods.module_eval { remove_method(method_name) } rescue nil
55:       end
56:     end

[Source]

   # File vendor/rails/activesupport/lib/active_support/core_ext/object/instance_variables.rb, line 4
4:     def instance_variable_defined?(variable)
5:       instance_variables.include?(variable.to_s)
6:     end

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']

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/object/misc.rb, line 27
27:   def returning(value)
28:     yield(value)
29:     value
30:   end

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

[Source]

   # File vendor/rails/activesupport/lib/active_support/json/encoders/object.rb, line 3
3:   def to_json(options = {})
4:     ActiveSupport::JSON.encode(instance_values, options)
5:   end

Alias of to_s.

[Source]

   # File vendor/rails/activesupport/lib/active_support/core_ext/object/conversions.rb, line 3
3:   def to_param
4:     to_s
5:   end

[Source]

   # File vendor/rails/actionpack/lib/action_controller/routing.rb, line 7
7:   def to_param
8:     to_s
9:   end

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.

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/object/conversions.rb, line 11
11:   def to_query(key)
12:     "#{CGI.escape(key.to_s)}=#{CGI.escape(to_param.to_s)}"
13:   end

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.

[Source]

     # File vendor/rails/activesupport/lib/active_support/dependencies.rb, line 515
515:   def unloadable(const_desc)
516:     Dependencies.mark_for_unload const_desc
517:   end

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

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/object/misc.rb, line 47
47:   def with_options(options)
48:     yield ActiveSupport::OptionMerger.new(self, options)
49:   end

[Validate]