From dadf35b2a9b0abb6421bc08f2fedba3dbe819d5e Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Fri, 16 Apr 2010 23:06:58 -0300 Subject: avoid warning: ambiguous first argument; put parentheses or even spaces --- activesupport/test/time_zone_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'activesupport') diff --git a/activesupport/test/time_zone_test.rb b/activesupport/test/time_zone_test.rb index 58035ebbcd..3b7fbb7808 100644 --- a/activesupport/test/time_zone_test.rb +++ b/activesupport/test/time_zone_test.rb @@ -282,7 +282,7 @@ class TimeZoneTest < Test::Unit::TestCase def test_unknown_zone_with_utc_offset zone = ActiveSupport::TimeZone.create("bogus", -21_600) - assert_equal -21_600, zone.utc_offset + assert_equal(-21_600, zone.utc_offset) end def test_new -- cgit v1.2.3 From 9a3a4d6aefa7e2ca94340754eb5541bea1783de0 Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Fri, 16 Apr 2010 22:16:21 +0200 Subject: Make i18n fallbacks configurable and fallback to the default locale by default in production [#4428 state:resolved] Allows to configure locale fallbacks through config.i18n.fallbacks. The default setting config.i18n.fallbacks = true in production.rb will make I18n.t lookup fallback to the I18n.default_locale if a translation could not be found for the current or given locale. config.fallbacks = true config.fallbacks.map = { :ca => :es } config.fallbacks.defaults = [:'es-ES', :es] config.fallbacks = [:'es-ES', :es] config.fallbacks = { :ca => :es } config.fallbacks = [:'es-ES', :es, { :ca => :es }] Signed-off-by: Pratik Naik --- activesupport/lib/active_support/railtie.rb | 35 +++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'activesupport') diff --git a/activesupport/lib/active_support/railtie.rb b/activesupport/lib/active_support/railtie.rb index b8d54ff839..0243157e35 100644 --- a/activesupport/lib/active_support/railtie.rb +++ b/activesupport/lib/active_support/railtie.rb @@ -33,6 +33,7 @@ module I18n config.i18n = ActiveSupport::OrderedOptions.new config.i18n.railties_load_path = [] config.i18n.load_path = [] + config.i18n.fallbacks = ActiveSupport::OrderedOptions.new initializer "i18n.initialize" do ActiveSupport.on_load(:i18n) do @@ -53,6 +54,8 @@ module I18n app.config.i18n.load_path.unshift(*value) when :load_path I18n.load_path += value + when :fallbacks + init_fallbacks(value) if value && validate_fallbacks(value) else I18n.send("#{setting}=", value) end @@ -60,5 +63,37 @@ module I18n I18n.reload! end + + class << self + protected + + def init_fallbacks(fallbacks) + include_fallbacks_module + args = case fallbacks + when ActiveSupport::OrderedOptions + [*(fallbacks[:defaults] || []) << fallbacks[:map]].compact + when Hash, Array + Array.wrap(fallbacks) + else # TrueClass + [] + end + I18n.fallbacks = I18n::Locale::Fallbacks.new(*args) + end + + def include_fallbacks_module + I18n.backend.class.send(:include, I18n::Backend::Fallbacks) + end + + def validate_fallbacks(fallbacks) + case fallbacks + when ActiveSupport::OrderedOptions + !fallbacks.empty? + when TrueClass, Array, Hash + true + else + raise "Unexpected fallback type #{fallbacks.inspect}" + end + end + end end end \ No newline at end of file -- cgit v1.2.3 From afcd252205d84ebf5ffd0659301c604a7beba2bb Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Sat, 17 Apr 2010 15:16:38 -0700 Subject: removes code written for Ruby < 1.8.7 --- .../lib/active_support/core_ext/string/multibyte.rb | 7 ------- activesupport/test/core_ext/string_ext_test.rb | 12 ------------ 2 files changed, 19 deletions(-) (limited to 'activesupport') diff --git a/activesupport/lib/active_support/core_ext/string/multibyte.rb b/activesupport/lib/active_support/core_ext/string/multibyte.rb index 13208c6ee2..42e053d0f8 100644 --- a/activesupport/lib/active_support/core_ext/string/multibyte.rb +++ b/activesupport/lib/active_support/core_ext/string/multibyte.rb @@ -49,13 +49,6 @@ class String def is_utf8? ActiveSupport::Multibyte::Chars.consumes?(self) end - - unless '1.8.7 and later'.respond_to?(:chars) - def chars - ActiveSupport::Deprecation.warn('String#chars has been deprecated in favor of String#mb_chars.', caller) - mb_chars - end - end else def mb_chars #:nodoc self diff --git a/activesupport/test/core_ext/string_ext_test.rb b/activesupport/test/core_ext/string_ext_test.rb index 234e41c772..58ca215970 100644 --- a/activesupport/test/core_ext/string_ext_test.rb +++ b/activesupport/test/core_ext/string_ext_test.rb @@ -230,18 +230,6 @@ class CoreExtStringMultibyteTest < ActiveSupport::TestCase assert !BYTE_STRING.is_utf8? end - if RUBY_VERSION < '1.8.7' - def test_core_ext_adds_chars - assert UNICODE_STRING.respond_to?(:chars) - end - - def test_chars_warns_about_deprecation - assert_deprecated("String#chars") do - ''.chars - end - end - end - if RUBY_VERSION < '1.9' def test_mb_chars_returns_self_when_kcode_not_set with_kcode('none') do -- cgit v1.2.3 From b7ea64a86c03becdbdd417cc79cc1d2ad20a30bc Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Sun, 18 Apr 2010 03:46:01 -0300 Subject: remove code for Ruby < 1.8.7 --- activesupport/lib/active_support/core_ext/benchmark.rb | 12 ------------ 1 file changed, 12 deletions(-) (limited to 'activesupport') diff --git a/activesupport/lib/active_support/core_ext/benchmark.rb b/activesupport/lib/active_support/core_ext/benchmark.rb index ae57b152e8..2d110155a5 100644 --- a/activesupport/lib/active_support/core_ext/benchmark.rb +++ b/activesupport/lib/active_support/core_ext/benchmark.rb @@ -1,18 +1,6 @@ require 'benchmark' class << Benchmark - # Earlier Ruby had a slower implementation. - if RUBY_VERSION < '1.8.7' - remove_method :realtime - - def realtime - r0 = Time.now - yield - r1 = Time.now - r1.to_f - r0.to_f - end - end - def ms 1000 * realtime { yield } end -- cgit v1.2.3 From 03aa7877f7b3a0eb5ed1bb48a30be74194c4177a Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Sun, 18 Apr 2010 23:01:44 -0700 Subject: MemoryStore#read_multi(*keys) for dev-mode compatibility with memcache store --- activesupport/lib/active_support/cache/memory_store.rb | 8 +++++++- activesupport/test/caching_test.rb | 7 +++++++ 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'activesupport') diff --git a/activesupport/lib/active_support/cache/memory_store.rb b/activesupport/lib/active_support/cache/memory_store.rb index e6085d97ec..379922f986 100644 --- a/activesupport/lib/active_support/cache/memory_store.rb +++ b/activesupport/lib/active_support/cache/memory_store.rb @@ -21,6 +21,12 @@ module ActiveSupport @data = {} end + def read_multi(*names) + results = {} + names.each { |n| results[n] = read(n) } + results + end + def read(name, options = nil) super do @data[name] @@ -45,7 +51,7 @@ module ActiveSupport end end - def exist?(name,options = nil) + def exist?(name, options = nil) super do @data.has_key?(name) end diff --git a/activesupport/test/caching_test.rb b/activesupport/test/caching_test.rb index d96f8e1de5..e62e7ef9aa 100644 --- a/activesupport/test/caching_test.rb +++ b/activesupport/test/caching_test.rb @@ -185,6 +185,13 @@ class MemoryStoreTest < ActiveSupport::TestCase @cache.write('foo', bar) assert_nothing_raised { bar.gsub!(/.*/, 'baz') } end + + def test_multi_get + @cache.write('foo', 1) + @cache.write('goo', 2) + result = @cache.read_multi('foo', 'goo') + assert_equal({'foo' => 1, 'goo' => 2}, result) + end end uses_memcached 'memcached backed store' do -- cgit v1.2.3 From 0f0b40d3b6ff8598624574beab92e4ac87481c1c Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Sun, 18 Apr 2010 00:05:09 +0200 Subject: revises the rdoc of String#ord --- activesupport/lib/active_support/core_ext/string/conversions.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'activesupport') diff --git a/activesupport/lib/active_support/core_ext/string/conversions.rb b/activesupport/lib/active_support/core_ext/string/conversions.rb index 52946f9037..d70f5d7241 100644 --- a/activesupport/lib/active_support/core_ext/string/conversions.rb +++ b/activesupport/lib/active_support/core_ext/string/conversions.rb @@ -3,7 +3,11 @@ require 'active_support/core_ext/time/publicize_conversion_methods' require 'active_support/core_ext/time/calculations' class String - # 'a'.ord == 'a'[0] for Ruby 1.9 forward compatibility. + # Returns the ASCII code of the first character of the string, assuming it belongs to ASCII. + # + # This method is defined for Ruby 1.9 forward compatibility on ASCII characters. + # + # See also ActiveSupport::Multibyte::Chars#ord. def ord self[0] end unless method_defined?(:ord) -- cgit v1.2.3 From bb19f2087623d2a716d0187cbc644bf606bac2db Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Sun, 18 Apr 2010 11:55:07 +0200 Subject: much complete rdoc for String#ord --- .../active_support/core_ext/string/conversions.rb | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'activesupport') diff --git a/activesupport/lib/active_support/core_ext/string/conversions.rb b/activesupport/lib/active_support/core_ext/string/conversions.rb index d70f5d7241..4cc36147f8 100644 --- a/activesupport/lib/active_support/core_ext/string/conversions.rb +++ b/activesupport/lib/active_support/core_ext/string/conversions.rb @@ -3,11 +3,27 @@ require 'active_support/core_ext/time/publicize_conversion_methods' require 'active_support/core_ext/time/calculations' class String - # Returns the ASCII code of the first character of the string, assuming it belongs to ASCII. + # Returns the codepoint of the first character of the string, assuming a + # single-byte character encoding: # - # This method is defined for Ruby 1.9 forward compatibility on ASCII characters. + # "a".ord # => 97 + # "à".ord # => 224, in ISO-8859-1 # - # See also ActiveSupport::Multibyte::Chars#ord. + # This method is defined in Ruby 1.8 for Ruby 1.9 forward compatibility on + # these character encodings. + # + # ActiveSupport::Multibyte::Chars#ord is forward compatible with + # Ruby 1.9 on UTF8 strings: + # + # "a".mb_chars.ord # => 97 + # "à".mb_chars.ord # => 224, in UTF8 + # + # Note that the 224 is different in both examples. In ISO-8859-1 "à" is + # represented as a single byte, 224. In UTF8 it is represented with two + # bytes, namely 195 and 160, but its Unicode codepoint is 224. If we + # call +ord+ on the UTF8 string "à" the return value will be 195. That is + # not an error, because UTF8 is unsupported, the call itself would be + # bogus. def ord self[0] end unless method_defined?(:ord) -- cgit v1.2.3