spec/support/test_model.rb in validates_timeliness-7.0.0.beta1 vs spec/support/test_model.rb in validates_timeliness-7.0.0.beta2

- old
+ new

@@ -1,61 +1,13 @@ module TestModel extend ActiveSupport::Concern - extend ActiveModel::Translation + include ActiveModel::Model + include ActiveModel::Attributes include ActiveModel::Validations - include ActiveModel::AttributeMethods + include ValidatesTimeliness::AttributeMethods + include ValidatesTimeliness::ORM::ActiveModel included do attribute_method_suffix "=" - cattr_accessor :model_attributes - end - - module ClassMethods - def attribute(name, type) - self.model_attributes ||= {} - self.model_attributes[name] = type - end - - def define_method_attribute=(attr_name, owner: nil) - generated_attribute_methods.module_eval("def #{attr_name}=(new_value); @attributes['#{attr_name}']=self.class.type_cast('#{attr_name}', new_value); end", __FILE__, __LINE__) - end - - def define_method_attribute(attr_name, owner: nil) - generated_attribute_methods.module_eval("def #{attr_name}; @attributes['#{attr_name}']; end", __FILE__, __LINE__) - end - - def type_cast(attr_name, value) - return value unless value.is_a?(String) - type_name = model_attributes[attr_name.to_sym] - type = ActiveModel::Type.lookup(type_name) - type.cast(value) - end - end - - def initialize(attributes = nil) - @attributes = self.class.model_attributes.keys.inject({}) do |hash, column| - hash[column.to_s] = nil - hash - end - self.attributes = attributes unless attributes.nil? - end - - def attributes - @attributes - end - - def attributes=(new_attributes={}) - new_attributes.each do |key, value| - send "#{key}=", value - end - end - - def method_missing(method_id, *args, &block) - if !matched_attribute_method(method_id.to_s).nil? - self.class.define_attribute_methods self.class.model_attributes.keys - send(method_id, *args, &block) - else - super - end end end