diff options
Diffstat (limited to 'activesupport/lib/active_support/core_ext/object')
-rw-r--r-- | activesupport/lib/active_support/core_ext/object/extending.rb | 16 | ||||
-rw-r--r-- | activesupport/lib/active_support/core_ext/object/instance_variables.rb | 14 |
2 files changed, 15 insertions, 15 deletions
diff --git a/activesupport/lib/active_support/core_ext/object/extending.rb b/activesupport/lib/active_support/core_ext/object/extending.rb index 19f42cabce..43a2be916e 100644 --- a/activesupport/lib/active_support/core_ext/object/extending.rb +++ b/activesupport/lib/active_support/core_ext/object/extending.rb @@ -24,25 +24,11 @@ class Object ancestors = class << self; ancestors end ancestors.select { |mod| mod.class == Module } - [ Object, Kernel ] end - - def copy_instance_variables_from(object, exclude = []) #:nodoc: - exclude += object.protected_instance_variables if object.respond_to? :protected_instance_variables - - instance_variables = object.instance_variables - exclude.map { |name| name.to_s } - instance_variables.each { |name| instance_variable_set(name, object.instance_variable_get(name)) } - end - + def extend_with_included_modules_from(object) #:nodoc: object.extended_by.each { |mod| extend mod } end - def instance_values #:nodoc: - instance_variables.inject({}) do |values, name| - values[name[1..-1]] = instance_variable_get(name) - values - end - end - unless defined? instance_exec # 1.9 module InstanceExecMethods #:nodoc: end diff --git a/activesupport/lib/active_support/core_ext/object/instance_variables.rb b/activesupport/lib/active_support/core_ext/object/instance_variables.rb index 72eaed70b6..e07eb76c1d 100644 --- a/activesupport/lib/active_support/core_ext/object/instance_variables.rb +++ b/activesupport/lib/active_support/core_ext/object/instance_variables.rb @@ -5,4 +5,18 @@ class Object instance_variables.include?(variable.to_s) end end + + def instance_values #:nodoc: + instance_variables.inject({}) do |values, name| + values[name.to_s[1..-1]] = instance_variable_get(name) + values + end + end + + def copy_instance_variables_from(object, exclude = []) #:nodoc: + exclude += object.protected_instance_variables if object.respond_to? :protected_instance_variables + + vars = object.instance_variables.map(&:to_s) - exclude.map(&:to_s) + vars.each { |name| instance_variable_set(name, object.instance_variable_get(name)) } + end end |