diff options
Diffstat (limited to 'activesupport')
-rw-r--r-- | activesupport/activesupport.gemspec | 7 | ||||
-rw-r--r-- | activesupport/lib/active_support/core_ext/object/try.rb | 2 | ||||
-rw-r--r-- | activesupport/lib/active_support/i18n.rb | 2 | ||||
-rw-r--r-- | activesupport/lib/active_support/version.rb | 2 | ||||
-rw-r--r-- | activesupport/lib/active_support/xml_mini.rb | 6 | ||||
-rw-r--r-- | activesupport/test/core_ext/object_and_class_ext_test.rb | 8 | ||||
-rw-r--r-- | activesupport/test/dependencies_test.rb | 2 | ||||
-rw-r--r-- | activesupport/test/load_paths_test.rb | 3 | ||||
-rw-r--r-- | activesupport/test/xml_mini/jdom_engine_test.rb | 1 |
9 files changed, 23 insertions, 10 deletions
diff --git a/activesupport/activesupport.gemspec b/activesupport/activesupport.gemspec index f6eb2be5ae..738a10a18f 100644 --- a/activesupport/activesupport.gemspec +++ b/activesupport/activesupport.gemspec @@ -9,12 +9,13 @@ Gem::Specification.new do |s| s.required_ruby_version = '>= 1.8.7' - s.author = 'David Heinemeier Hansson' - s.email = 'david@loudthinking.com' - s.homepage = 'http://www.rubyonrails.org' + s.author = 'David Heinemeier Hansson' + s.email = 'david@loudthinking.com' + s.homepage = 'http://www.rubyonrails.org' s.files = Dir['CHANGELOG', 'README.rdoc', 'lib/**/*'] s.require_path = 'lib' + s.add_dependency('i18n', '~> 0.6') s.add_dependency('multi_json', '~> 1.0') end diff --git a/activesupport/lib/active_support/core_ext/object/try.rb b/activesupport/lib/active_support/core_ext/object/try.rb index e77a9da0ec..4797c93e63 100644 --- a/activesupport/lib/active_support/core_ext/object/try.rb +++ b/activesupport/lib/active_support/core_ext/object/try.rb @@ -28,6 +28,8 @@ class Object def try(*a, &b) if a.empty? && block_given? yield self + elsif !a.empty? && !respond_to?(a.first) + nil else __send__(*a, &b) end diff --git a/activesupport/lib/active_support/i18n.rb b/activesupport/lib/active_support/i18n.rb index 00ea8813dd..f9c5e5e2f8 100644 --- a/activesupport/lib/active_support/i18n.rb +++ b/activesupport/lib/active_support/i18n.rb @@ -2,7 +2,7 @@ begin require 'i18n' require 'active_support/lazy_load_hooks' rescue LoadError => e - $stderr.puts "You don't have i18n installed in your application. Please add it to your Gemfile and run bundle install" + $stderr.puts "The i18n gem is not available. Please add it to your Gemfile and run bundle install" raise e end diff --git a/activesupport/lib/active_support/version.rb b/activesupport/lib/active_support/version.rb index c2cf39e391..e135872bf6 100644 --- a/activesupport/lib/active_support/version.rb +++ b/activesupport/lib/active_support/version.rb @@ -3,7 +3,7 @@ module ActiveSupport MAJOR = 3 MINOR = 1 TINY = 0 - PRE = "beta1" + PRE = "rc1" STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.') end diff --git a/activesupport/lib/active_support/xml_mini.rb b/activesupport/lib/active_support/xml_mini.rb index 6e12404ad4..1ea9a9d7e1 100644 --- a/activesupport/lib/active_support/xml_mini.rb +++ b/activesupport/lib/active_support/xml_mini.rb @@ -1,3 +1,4 @@ +require 'time' require 'active_support/core_ext/module/delegation' require 'active_support/core_ext/string/inflections' @@ -51,13 +52,12 @@ module ActiveSupport "yaml" => Proc.new { |yaml| yaml.to_yaml } } unless defined?(FORMATTING) - # TODO: use Time.xmlschema instead of Time.parse; - # use regexp instead of Date.parse + # TODO use regexp instead of Date.parse unless defined?(PARSING) PARSING = { "symbol" => Proc.new { |symbol| symbol.to_sym }, "date" => Proc.new { |date| ::Date.parse(date) }, - "datetime" => Proc.new { |time| ::Time.parse(time).utc rescue ::DateTime.parse(time).utc }, + "datetime" => Proc.new { |time| Time.xmlschema(time).utc rescue ::DateTime.parse(time).utc }, "integer" => Proc.new { |integer| integer.to_i }, "float" => Proc.new { |float| float.to_f }, "decimal" => Proc.new { |number| BigDecimal(number) }, diff --git a/activesupport/test/core_ext/object_and_class_ext_test.rb b/activesupport/test/core_ext/object_and_class_ext_test.rb index 5d68b198f2..beb371d987 100644 --- a/activesupport/test/core_ext/object_and_class_ext_test.rb +++ b/activesupport/test/core_ext/object_and_class_ext_test.rb @@ -99,7 +99,13 @@ class ObjectTryTest < Test::Unit::TestCase def test_nonexisting_method method = :undefined_method assert !@string.respond_to?(method) - assert_raise(NoMethodError) { @string.try(method) } + assert_nil @string.try(method) + end + + def test_nonexisting_method_with_arguments + method = :undefined_method + assert !@string.respond_to?(method) + assert_nil @string.try(method, 'llo', 'y') end def test_valid_method diff --git a/activesupport/test/dependencies_test.rb b/activesupport/test/dependencies_test.rb index ef017d7436..2ddbce5150 100644 --- a/activesupport/test/dependencies_test.rb +++ b/activesupport/test/dependencies_test.rb @@ -24,11 +24,13 @@ class DependenciesTest < Test::Unit::TestCase old_mechanism, ActiveSupport::Dependencies.mechanism = ActiveSupport::Dependencies.mechanism, :load this_dir = File.dirname(__FILE__) parent_dir = File.dirname(this_dir) + path_copy = $LOAD_PATH.dup $LOAD_PATH.unshift(parent_dir) unless $LOAD_PATH.include?(parent_dir) prior_autoload_paths = ActiveSupport::Dependencies.autoload_paths ActiveSupport::Dependencies.autoload_paths = from.collect { |f| "#{this_dir}/#{f}" } yield ensure + $LOAD_PATH.replace(path_copy) ActiveSupport::Dependencies.autoload_paths = prior_autoload_paths ActiveSupport::Dependencies.mechanism = old_mechanism ActiveSupport::Dependencies.explicitly_unloadable_constants = [] diff --git a/activesupport/test/load_paths_test.rb b/activesupport/test/load_paths_test.rb index 36e3726a02..a2d8da726a 100644 --- a/activesupport/test/load_paths_test.rb +++ b/activesupport/test/load_paths_test.rb @@ -10,6 +10,7 @@ class LoadPathsTest < Test::Unit::TestCase } load_paths_count[File.expand_path('../../lib', __FILE__)] -= 1 - assert load_paths_count.select { |k, v| v > 1 }.empty?, $LOAD_PATH.inspect + filtered = load_paths_count.select { |k, v| v > 1 } + assert filtered.empty?, filtered.inspect end end diff --git a/activesupport/test/xml_mini/jdom_engine_test.rb b/activesupport/test/xml_mini/jdom_engine_test.rb index b745228994..6b1edcbc9b 100644 --- a/activesupport/test/xml_mini/jdom_engine_test.rb +++ b/activesupport/test/xml_mini/jdom_engine_test.rb @@ -1,5 +1,6 @@ require 'abstract_unit' require 'active_support/xml_mini' +require 'active_support/core_ext/hash/conversions' if RUBY_PLATFORM =~ /java/ |