aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_view/helpers
diff options
context:
space:
mode:
authorXavier Noria <fxn@hashref.com>2010-05-27 10:57:05 +0200
committerXavier Noria <fxn@hashref.com>2010-05-27 10:57:05 +0200
commitddec74fb3ab66528ca98ff37ca9b5f4227fdd2e3 (patch)
treec58ac9162487bdca68342fb2d30730ccfd926378 /actionpack/lib/action_view/helpers
parent96e2094b8b634e4af0d9d3c8a1db9bbb7023a4a7 (diff)
parente02db06ece7aeecec7c37f5b0e3de7d65c8684e6 (diff)
downloadrails-ddec74fb3ab66528ca98ff37ca9b5f4227fdd2e3.tar.gz
rails-ddec74fb3ab66528ca98ff37ca9b5f4227fdd2e3.tar.bz2
rails-ddec74fb3ab66528ca98ff37ca9b5f4227fdd2e3.zip
Merge remote branch 'rails/master'
Diffstat (limited to 'actionpack/lib/action_view/helpers')
-rw-r--r--actionpack/lib/action_view/helpers/active_model_helper.rb2
-rw-r--r--actionpack/lib/action_view/helpers/form_helper.rb5
-rw-r--r--actionpack/lib/action_view/helpers/form_tag_helper.rb2
-rw-r--r--actionpack/lib/action_view/helpers/translation_helper.rb23
4 files changed, 13 insertions, 19 deletions
diff --git a/actionpack/lib/action_view/helpers/active_model_helper.rb b/actionpack/lib/action_view/helpers/active_model_helper.rb
index d9f09b5dc5..0cddd09eb0 100644
--- a/actionpack/lib/action_view/helpers/active_model_helper.rb
+++ b/actionpack/lib/action_view/helpers/active_model_helper.rb
@@ -43,7 +43,7 @@ module ActionView
end
%w(tag content_tag to_date_select_tag to_datetime_select_tag to_time_select_tag).each do |meth|
- module_eval "def #{meth}(*) error_wrapping(super) end"
+ module_eval "def #{meth}(*) error_wrapping(super) end", __FILE__, __LINE__
end
def error_wrapping(html_tag)
diff --git a/actionpack/lib/action_view/helpers/form_helper.rb b/actionpack/lib/action_view/helpers/form_helper.rb
index 414a5d4cd9..b3db3151d3 100644
--- a/actionpack/lib/action_view/helpers/form_helper.rb
+++ b/actionpack/lib/action_view/helpers/form_helper.rb
@@ -1111,7 +1111,7 @@ module ActionView
end
(field_helpers - %w(label check_box radio_button fields_for hidden_field)).each do |selector|
- src, line = <<-end_src, __LINE__ + 1
+ class_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1
def #{selector}(method, options = {}) # def text_field(method, options = {})
@template.send( # @template.send(
#{selector.inspect}, # "text_field",
@@ -1119,8 +1119,7 @@ module ActionView
method, # method,
objectify_options(options)) # objectify_options(options))
end # end
- end_src
- class_eval src, __FILE__, line
+ RUBY_EVAL
end
def fields_for(record_or_name_or_array, *args, &block)
diff --git a/actionpack/lib/action_view/helpers/form_tag_helper.rb b/actionpack/lib/action_view/helpers/form_tag_helper.rb
index 2a3f826c15..796268628a 100644
--- a/actionpack/lib/action_view/helpers/form_tag_helper.rb
+++ b/actionpack/lib/action_view/helpers/form_tag_helper.rb
@@ -293,7 +293,7 @@ module ActionView
escape = options.key?("escape") ? options.delete("escape") : true
content = html_escape(content) if escape
- content_tag :textarea, content.html_safe, { "name" => name, "id" => sanitize_to_id(name) }.update(options)
+ content_tag :textarea, content.to_s.html_safe, { "name" => name, "id" => sanitize_to_id(name) }.update(options)
end
# Creates a check box form input tag.
diff --git a/actionpack/lib/action_view/helpers/translation_helper.rb b/actionpack/lib/action_view/helpers/translation_helper.rb
index 086ad261c8..0d2b2aa7b1 100644
--- a/actionpack/lib/action_view/helpers/translation_helper.rb
+++ b/actionpack/lib/action_view/helpers/translation_helper.rb
@@ -3,7 +3,7 @@ require 'action_view/helpers/tag_helper'
module ActionView
module Helpers
module TranslationHelper
- # Delegates to I18n#translate but also performs three additional functions. First, it'll catch MissingTranslationData exceptions
+ # Delegates to I18n#translate but also performs three additional functions. First, it'll catch MissingTranslationData exceptions
# and turn them into inline spans that contains the missing key, such that you can see in a view what is missing where.
#
# Second, it'll scope the key by the current partial if the key starts with a period. So if you call translate(".foo") from the
@@ -11,16 +11,14 @@ module ActionView
# to translate many keys within the same partials and gives you a simple framework for scoping them consistently. If you don't
# prepend the key with a period, nothing is converted.
#
- # Third, it’ll mark the translation as safe HTML if the key has the suffix "_html" or the last element of the key is the word
- # "html". For example, calling translate("footer_html") or translate("footer.html") will return a safe HTML string that won’t
- # be escaped by other HTML helper methods. This naming convention helps to identify translations that include HTML tags so that
+ # Third, it’ll mark the translation as safe HTML if the key has the suffix "_html" or the last element of the key is the word
+ # "html". For example, calling translate("footer_html") or translate("footer.html") will return a safe HTML string that won’t
+ # be escaped by other HTML helper methods. This naming convention helps to identify translations that include HTML tags so that
# you know what kind of output to expect when you call translate in a template.
def translate(key, options = {})
- options[:raise] = true
- translation = I18n.translate(scope_key_by_partial(key), options)
- translation = (translation.respond_to?(:join) ? translation.join : translation)
- if html_safe_translation_key?(key)
+ translation = I18n.translate(scope_key_by_partial(key), options.merge!(:raise => true))
+ if html_safe_translation_key?(key) && translation.respond_to?(:html_safe)
translation.html_safe
else
translation
@@ -38,12 +36,10 @@ module ActionView
alias :l :localize
private
-
def scope_key_by_partial(key)
- strkey = key.respond_to?(:join) ? key.join : key.to_s
- if strkey.first == "."
+ if key.to_s.first == "."
if @_virtual_path
- @_virtual_path.gsub(%r{/_?}, ".") + strkey
+ @_virtual_path.gsub(%r{/_?}, ".") + key.to_s
else
raise "Cannot use t(#{key.inspect}) shortcut because path is not available"
end
@@ -53,8 +49,7 @@ module ActionView
end
def html_safe_translation_key?(key)
- key = key.is_a?(Array) ? key.last : key.to_s
- key =~ /(\b|_|\.)html$/
+ key.to_s =~ /(\b|_|\.)html$/
end
end
end