diff options
Diffstat (limited to 'activesupport/lib/active_support/core_ext/range/conversions.rb')
-rw-r--r-- | activesupport/lib/active_support/core_ext/range/conversions.rb | 40 |
1 files changed, 17 insertions, 23 deletions
diff --git a/activesupport/lib/active_support/core_ext/range/conversions.rb b/activesupport/lib/active_support/core_ext/range/conversions.rb index 45b0826b62..11a7ff66de 100644 --- a/activesupport/lib/active_support/core_ext/range/conversions.rb +++ b/activesupport/lib/active_support/core_ext/range/conversions.rb @@ -1,27 +1,21 @@ -module ActiveSupport #:nodoc: - module CoreExtensions #:nodoc: - module Range #:nodoc: - # Getting ranges in different convenient string representations and other objects - module Conversions - RANGE_FORMATS = { - :db => Proc.new { |start, stop| "BETWEEN '#{start.to_s(:db)}' AND '#{stop.to_s(:db)}'" } - } +class Range + RANGE_FORMATS = { + :db => Proc.new { |start, stop| "BETWEEN '#{start.to_s(:db)}' AND '#{stop.to_s(:db)}'" } + } - def self.included(base) #:nodoc: - base.class_eval do - alias_method :to_default_s, :to_s - alias_method :to_s, :to_formatted_s - end - end - # Gives a human readable format of the range. - # - # ==== Example - # - # [1..100].to_formatted_s # => "1..100" - def to_formatted_s(format = :default) - RANGE_FORMATS[format] ? RANGE_FORMATS[format].call(first, last) : to_default_s - end - end + # Gives a human readable format of the range. + # + # ==== Example + # + # [1..100].to_formatted_s # => "1..100" + def to_formatted_s(format = :default) + if formatter = RANGE_FORMATS[format] + formatter.call(first, last) + else + to_default_s end end + + alias_method :to_default_s, :to_s + alias_method :to_s, :to_formatted_s end |