diff options
Diffstat (limited to 'activemodel/lib/active_model')
-rw-r--r-- | activemodel/lib/active_model/attribute_methods.rb | 41 | ||||
-rw-r--r-- | activemodel/lib/active_model/validations/length.rb | 11 |
2 files changed, 3 insertions, 49 deletions
diff --git a/activemodel/lib/active_model/attribute_methods.rb b/activemodel/lib/active_model/attribute_methods.rb index dba059eacd..d7ec7e6ca5 100644 --- a/activemodel/lib/active_model/attribute_methods.rb +++ b/activemodel/lib/active_model/attribute_methods.rb @@ -66,47 +66,6 @@ module ActiveModel end module ClassMethods - def define_attr_method(name, value=nil, deprecation_warning = true, &block) #:nodoc: - # This deprecation_warning param is for internal use so that we can silence - # the warning from Active Record, because we are implementing more specific - # messages there instead. - # - # It doesn't apply to the original_#{name} method as we want to warn if - # people are calling that regardless. - if deprecation_warning - ActiveSupport::Deprecation.warn("define_attr_method is deprecated and will be removed without replacement.") - end - - sing = singleton_class - sing.class_eval <<-eorb, __FILE__, __LINE__ + 1 - remove_possible_method :'original_#{name}' - remove_possible_method :'_original_#{name}' - alias_method :'_original_#{name}', :'#{name}' - define_method :'original_#{name}' do - ActiveSupport::Deprecation.warn( - "This method is generated by ActiveModel::AttributeMethods::ClassMethods#define_attr_method, " \ - "which is deprecated and will be removed." - ) - send(:'_original_#{name}') - end - eorb - if block_given? - sing.send :define_method, name, &block - else - # If we can compile the method name, do it. Otherwise use define_method. - # This is an important *optimization*, please don't change it. define_method - # has slower dispatch and consumes more memory. - if name =~ NAME_COMPILABLE_REGEXP - sing.class_eval <<-RUBY, __FILE__, __LINE__ + 1 - def #{name}; #{value.nil? ? 'nil' : value.to_s.inspect}; end - RUBY - else - value = value.to_s if value - sing.send(:define_method, name) { value } - end - end - end - # Declares a method available for all attributes with the given prefix. # Uses +method_missing+ and <tt>respond_to?</tt> to rewrite the method. # diff --git a/activemodel/lib/active_model/validations/length.rb b/activemodel/lib/active_model/validations/length.rb index a38de27b3c..0eba241333 100644 --- a/activemodel/lib/active_model/validations/length.rb +++ b/activemodel/lib/active_model/validations/length.rb @@ -13,8 +13,7 @@ module ActiveModel def initialize(options) if range = (options.delete(:in) || options.delete(:within)) raise ArgumentError, ":in and :within must be a Range" unless range.is_a?(Range) - options[:minimum], options[:maximum] = range.begin, range.end - options[:maximum] -= 1 if range.exclude_end? + options[:minimum], options[:maximum] = range.min, range.max end super @@ -57,12 +56,8 @@ module ActiveModel private def tokenize(value) - if value.kind_of?(String) - if options[:tokenizer] - options[:tokenizer].call(value) - elsif !value.encoding_aware? - value.mb_chars - end + if options[:tokenizer] && value.kind_of?(String) + options[:tokenizer].call(value) end || value end end |