diff options
-rw-r--r-- | activerecord/test/fixtures/pirates.yml | 4 | ||||
-rw-r--r-- | activesupport/CHANGELOG | 3 | ||||
-rw-r--r-- | activesupport/lib/active_support/core_ext/object/blank.rb | 8 | ||||
-rw-r--r-- | activesupport/test/core_ext/string_ext_test.rb | 2 | ||||
-rw-r--r-- | railties/guides/rails_guides/generator.rb | 5 | ||||
-rw-r--r-- | railties/guides/rails_guides/textile_extensions.rb | 5 | ||||
-rw-r--r-- | railties/guides/source/active_support_core_extensions.textile | 4 |
7 files changed, 22 insertions, 9 deletions
diff --git a/activerecord/test/fixtures/pirates.yml b/activerecord/test/fixtures/pirates.yml index abb91101da..a47d894249 100644 --- a/activerecord/test/fixtures/pirates.yml +++ b/activerecord/test/fixtures/pirates.yml @@ -5,5 +5,5 @@ blackbeard: redbeard: catchphrase: "Avast!" parrot: louis - created_on: <%= 2.weeks.ago.to_s(:db) %> - updated_on: <%= 2.weeks.ago.to_s(:db) %> + created_on: <%= 2.weeks.ago.utc.to_s(:db) %> + updated_on: <%= 2.weeks.ago.utc.to_s(:db) %> diff --git a/activesupport/CHANGELOG b/activesupport/CHANGELOG index 034d03533f..a25720adbf 100644 --- a/activesupport/CHANGELOG +++ b/activesupport/CHANGELOG @@ -1,5 +1,8 @@ *Rails 3.2.0 (unreleased)* +* The definition of blank string for Ruby 1.9 has been extended to Unicode whitespace. +Also, in 1.8 the ideographic space U+3000 is considered to be whitespace. [Akira Matsuda, Damien Mathieu] + * The inflector understands acronyms. [dlee] * Deprecated ActiveSupport::Memoizable in favor of Ruby memoization pattern [José Valim] diff --git a/activesupport/lib/active_support/core_ext/object/blank.rb b/activesupport/lib/active_support/core_ext/object/blank.rb index d060ac04d8..fe27f45295 100644 --- a/activesupport/lib/active_support/core_ext/object/blank.rb +++ b/activesupport/lib/active_support/core_ext/object/blank.rb @@ -1,4 +1,5 @@ # encoding: utf-8 +require 'active_support/core_ext/string/encoding' class Object # An object is blank if it's false, empty, or a whitespace string. @@ -99,7 +100,12 @@ class String # " something here ".blank? # => false # def blank? - self !~ NON_WHITESPACE_REGEXP + # 1.8 does not takes [:space:] properly + if encoding_aware? + self !~ /[^[:space:]]/ + else + self !~ NON_WHITESPACE_REGEXP + end end end diff --git a/activesupport/test/core_ext/string_ext_test.rb b/activesupport/test/core_ext/string_ext_test.rb index 4000cc913a..18a86e08f5 100644 --- a/activesupport/test/core_ext/string_ext_test.rb +++ b/activesupport/test/core_ext/string_ext_test.rb @@ -158,7 +158,7 @@ class StringInflectionsTest < Test::Unit::TestCase assert_equal Time.local(2005, 2, 27, 23, 50, 19, 275038), "2005-02-27T23:50:19.275038".to_time(:local) assert_equal DateTime.civil(2039, 2, 27, 23, 50), "2039-02-27 23:50".to_time assert_equal Time.local_time(2039, 2, 27, 23, 50), "2039-02-27 23:50".to_time(:local) - assert_equal Time.utc(2039, 2, 27, 23, 50), "2039-02-27 22:50 -0100".to_time + assert_equal Time.utc(2011, 2, 27, 23, 50), "2011-02-27 22:50 -0100".to_time assert_nil "".to_time end diff --git a/railties/guides/rails_guides/generator.rb b/railties/guides/rails_guides/generator.rb index 14d671c8f3..2219fcea66 100644 --- a/railties/guides/rails_guides/generator.rb +++ b/railties/guides/rails_guides/generator.rb @@ -227,13 +227,13 @@ module RailsGuides end code_blocks.push(<<HTML) -<notextile> +<notextile> <div class="code_container"> <pre class="brush: #{brush}; gutter: false; toolbar: false"> #{ERB::Util.h($2).strip} </pre> </div> -</notextile> +</notextile> HTML "\ndirty_workaround_for_notextile_#{code_blocks.size - 1}\n" end @@ -280,3 +280,4 @@ HTML end end end + diff --git a/railties/guides/rails_guides/textile_extensions.rb b/railties/guides/rails_guides/textile_extensions.rb index 352c5e91dd..dd51e0d66b 100644 --- a/railties/guides/rails_guides/textile_extensions.rb +++ b/railties/guides/rails_guides/textile_extensions.rb @@ -25,7 +25,7 @@ module RailsGuides def plusplus(body) body.gsub!(/\+(.*?)\+/) do |m| - "<notextile><tt>#{$1}</tt></notextile>" + "<notextile><tt>#{$1}</tt></notextile>" end # The real plus sign @@ -36,8 +36,9 @@ module RailsGuides body.gsub!(%r{<(yaml|shell|ruby|erb|html|sql|plain)>(.*?)</\1>}m) do |m| es = ERB::Util.h($2) css_class = $1.in?(['erb', 'shell']) ? 'html' : $1 - %{<notextile><div class="code_container"><code class="#{css_class}">#{es}</code></div></notextile>} + %{<notextile><div class="code_container"><code class="#{css_class}">#{es}</code></div></notextile>} end end end end + diff --git a/railties/guides/source/active_support_core_extensions.textile b/railties/guides/source/active_support_core_extensions.textile index a0ed85cf01..b35e04d7e1 100644 --- a/railties/guides/source/active_support_core_extensions.textile +++ b/railties/guides/source/active_support_core_extensions.textile @@ -78,12 +78,14 @@ The following values are considered to be blank in a Rails application: * +nil+ and +false+, -* strings composed only of whitespace, i.e. matching +/\A\s*\z/+, +* strings composed only of whitespace (see note below), * empty arrays and hashes, and * any other object that responds to +empty?+ and it is empty. +INFO: In Ruby 1.9 the predicate for strings uses the Unicode-aware character class <tt>[:space:]</tt>, so for example U+2029 (paragraph separator) is considered to be whitespace. In Ruby 1.8 whitespace is considered to be <tt>\s</tt> together with the ideographic space U+3000. + WARNING: Note that numbers are not mentioned, in particular 0 and 0.0 are *not* blank. For example, this method from +ActionDispatch::Session::AbstractStore+ uses +blank?+ for checking whether a session key is present: |