aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_view/lookup_context.rb
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2011-09-22 15:03:05 +0200
committerJosé Valim <jose.valim@gmail.com>2011-09-22 15:03:05 +0200
commit119e9e2dafb0cdc5b85613b730333679aef534af (patch)
treed2d26382e4f606a5c13d7c76cd48ed3f57f11b36 /actionpack/lib/action_view/lookup_context.rb
parentcbaad674f13067c52fa8c1a24dc498e570db4eed (diff)
downloadrails-119e9e2dafb0cdc5b85613b730333679aef534af.tar.gz
rails-119e9e2dafb0cdc5b85613b730333679aef534af.tar.bz2
rails-119e9e2dafb0cdc5b85613b730333679aef534af.zip
Get rid of update_details in favor of passing details to find_template.
Diffstat (limited to 'actionpack/lib/action_view/lookup_context.rb')
-rw-r--r--actionpack/lib/action_view/lookup_context.rb33
1 files changed, 4 insertions, 29 deletions
diff --git a/actionpack/lib/action_view/lookup_context.rb b/actionpack/lib/action_view/lookup_context.rb
index 96ef7da01b..8267977830 100644
--- a/actionpack/lib/action_view/lookup_context.rb
+++ b/actionpack/lib/action_view/lookup_context.rb
@@ -20,18 +20,16 @@ module ActionView
def self.register_detail(name, options = {}, &block)
self.registered_details << name
-
initialize = registered_details.map { |n| "self.#{n} = details[:#{n}]" }
- update = registered_details.map { |n| "self.#{n} = details[:#{n}] if details.key?(:#{n})" }
- Accessors.send :define_method, :"_#{name}_defaults", &block
+ Accessors.send :define_method, :"default_#{name}", &block
Accessors.module_eval <<-METHOD, __FILE__, __LINE__ + 1
def #{name}
@details[:#{name}]
end
def #{name}=(value)
- value = Array.wrap(value.presence || _#{name}_defaults)
+ value = Array.wrap(value.presence || default_#{name})
_set_detail(:#{name}, value) if value != @details[:#{name}]
end
@@ -39,11 +37,6 @@ module ActionView
def initialize_details(details)
#{initialize.join("\n")}
end
-
- remove_possible_method :update_details
- def update_details(details)
- #{update.join("\n")}
- end
METHOD
end
@@ -88,24 +81,6 @@ module ActionView
@cache = old_value
end
- # Update the details keys by merging the given hash into the current
- # details hash. If a block is given, the details are modified just during
- # the execution of the block and reverted to the previous value after.
- def update_details(new_details)
- if block_given?
- old_details, old_key = @details.dup, @details_key
- super
-
- begin
- yield
- ensure
- @details, @details_key = old_details, old_key
- end
- else
- super
- end
- end
-
protected
def _set_detail(key, value)
@@ -220,7 +195,7 @@ module ActionView
# add :html as fallback to :js.
def formats=(values)
if values
- values.concat(_formats_defaults) if values.delete "*/*"
+ values.concat(default_formats) if values.delete "*/*"
values << :html if values == [:js]
end
super(values)
@@ -246,7 +221,7 @@ module ActionView
config.locale = value
end
- super(@skip_default_locale ? I18n.locale : _locale_defaults)
+ super(@skip_default_locale ? I18n.locale : default_locale)
end
# A method which only uses the first format in the formats array for layout lookup.