validates_serialized 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
 - data/Gemfile.lock +2 -2
 - data/README.md +23 -1
 - data/lib/validates_serialized/validateable_array_value.rb +13 -0
 - data/lib/validates_serialized/validators/array_block_validator.rb +65 -0
 - data/lib/validates_serialized/version.rb +1 -1
 - data/lib/validates_serialized.rb +2 -1
 - data/spec/validateable_array_value_spec.rb +20 -0
 - data/spec/validators/array_block_validator_spec.rb +92 -0
 - metadata +8 -5
 - data/lib/validates_serialized/validateable_array.rb +0 -9
 - data/spec/validateable_array_spec.rb +0 -15
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,15 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            !binary "U0hBMQ==":
         
     | 
| 
       3 
3 
     | 
    
         
             
              metadata.gz: !binary |-
         
     | 
| 
       4 
     | 
    
         
            -
                 
     | 
| 
      
 4 
     | 
    
         
            +
                OTc4ZmQ5ZGFhNDlmOGEwZGI0NzI1NzA1NWQ0OTZmY2UyMTdlN2MxNA==
         
     | 
| 
       5 
5 
     | 
    
         
             
              data.tar.gz: !binary |-
         
     | 
| 
       6 
     | 
    
         
            -
                 
     | 
| 
      
 6 
     | 
    
         
            +
                Y2VlNTQ5NjViNzExZmZlZGFkNDMwNzAyZjExNjkyYTM1OTVmYWFjMw==
         
     | 
| 
       7 
7 
     | 
    
         
             
            SHA512:
         
     | 
| 
       8 
8 
     | 
    
         
             
              metadata.gz: !binary |-
         
     | 
| 
       9 
     | 
    
         
            -
                 
     | 
| 
       10 
     | 
    
         
            -
                 
     | 
| 
       11 
     | 
    
         
            -
                 
     | 
| 
      
 9 
     | 
    
         
            +
                ODM1ODIzYmIzYjIyZTVhOWU0NjJjMjkxODI0MGUxMjdmZWM2MWYzOWIyYzBl
         
     | 
| 
      
 10 
     | 
    
         
            +
                NmZhOThlN2VjZWRiNjJlMDBjYWIzYzAyMDI0MzE2ZDgwZWUwMDRkMTkxMTQw
         
     | 
| 
      
 11 
     | 
    
         
            +
                MmQzYzZmMDlmZWQ0NjIyMTBlNDhhNWQyYWUwNjkzMjZiMzM2NmI=
         
     | 
| 
       12 
12 
     | 
    
         
             
              data.tar.gz: !binary |-
         
     | 
| 
       13 
     | 
    
         
            -
                 
     | 
| 
       14 
     | 
    
         
            -
                 
     | 
| 
       15 
     | 
    
         
            -
                 
     | 
| 
      
 13 
     | 
    
         
            +
                ZmY2ZGJkMzc0MGFkOTJlYjFiMmUwNTZmNzkxMGJlM2ZjMjZhYzY0NWU0MTAw
         
     | 
| 
      
 14 
     | 
    
         
            +
                Y2JjMmIyYWM0MDUyNDkzNjdmMzI2YTYwYTM2ZWIyNmNlNGNkNzkxZTBjZTY1
         
     | 
| 
      
 15 
     | 
    
         
            +
                ZWYzZTY5NTY5ZjFkY2E5YmUwMGM0OTU2ODFhMmI4ZjYzZDk2Mzc=
         
     | 
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | 
         @@ -122,7 +122,7 @@ comment.valid? #=> false 
     | 
|
| 
       122 
122 
     | 
    
         
             
            comment.errors[:ratings] #=> ["ratings must be greater than 0"]
         
     | 
| 
       123 
123 
     | 
    
         
             
            ```
         
     | 
| 
       124 
124 
     | 
    
         | 
| 
       125 
     | 
    
         
            -
            ## Validating a serialized array
         
     | 
| 
      
 125 
     | 
    
         
            +
            ## Validating a serialized array (syntax #1)
         
     | 
| 
       126 
126 
     | 
    
         
             
            ```ruby
         
     | 
| 
       127 
127 
     | 
    
         
             
            class Comment < ActiveRecord::Base
         
     | 
| 
       128 
128 
     | 
    
         
             
              include ActiveModel
         
     | 
| 
         @@ -142,6 +142,28 @@ comment.valid? #=> false 
     | 
|
| 
       142 
142 
     | 
    
         
             
            comment.errors[:tags] #=> ["tags is too short (minimum is 4 characters)"]
         
     | 
| 
       143 
143 
     | 
    
         
             
            ```
         
     | 
| 
       144 
144 
     | 
    
         | 
| 
      
 145 
     | 
    
         
            +
            ## Validating a serialized array (syntax #2)
         
     | 
| 
      
 146 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 147 
     | 
    
         
            +
            class Comment < ActiveRecord::Base
         
     | 
| 
      
 148 
     | 
    
         
            +
              include ActiveModel
         
     | 
| 
      
 149 
     | 
    
         
            +
              ...
         
     | 
| 
      
 150 
     | 
    
         
            +
             
     | 
| 
      
 151 
     | 
    
         
            +
              serialize :tags, Array
         
     | 
| 
      
 152 
     | 
    
         
            +
              validates_each_in_array :tags do
         
     | 
| 
      
 153 
     | 
    
         
            +
                validates :value, length: { minimum: 4 } #the attribute 'value' with access each value
         
     | 
| 
      
 154 
     | 
    
         
            +
              end
         
     | 
| 
      
 155 
     | 
    
         
            +
            end
         
     | 
| 
      
 156 
     | 
    
         
            +
             
     | 
| 
      
 157 
     | 
    
         
            +
            # With valid hash
         
     | 
| 
      
 158 
     | 
    
         
            +
            comment = Comment.new(tags: ["ruby" "rails"])
         
     | 
| 
      
 159 
     | 
    
         
            +
            comment.valid? #=> true
         
     | 
| 
      
 160 
     | 
    
         
            +
             
     | 
| 
      
 161 
     | 
    
         
            +
            # With invalid hash
         
     | 
| 
      
 162 
     | 
    
         
            +
            comment = Comment.new(tags: ["ruby" "rails", "ror"])
         
     | 
| 
      
 163 
     | 
    
         
            +
            comment.valid? #=> false
         
     | 
| 
      
 164 
     | 
    
         
            +
            comment.errors[:tags] #=> ["tags is too short (minimum is 4 characters)"]
         
     | 
| 
      
 165 
     | 
    
         
            +
            ```
         
     | 
| 
      
 166 
     | 
    
         
            +
             
     | 
| 
       145 
167 
     | 
    
         
             
            ## Contributing
         
     | 
| 
       146 
168 
     | 
    
         | 
| 
       147 
169 
     | 
    
         
             
            1. Fork it
         
     | 
| 
         @@ -0,0 +1,65 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module ActiveModel
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Validations
         
     | 
| 
      
 3 
     | 
    
         
            +
                class ArrayBlockValidator < BlockValidator #:nodoc:
         
     | 
| 
      
 4 
     | 
    
         
            +
                  def initialize(options, &block)
         
     | 
| 
      
 5 
     | 
    
         
            +
                    @block = block
         
     | 
| 
      
 6 
     | 
    
         
            +
                    @options = options
         
     | 
| 
      
 7 
     | 
    
         
            +
                    super
         
     | 
| 
      
 8 
     | 
    
         
            +
                  end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                  private
         
     | 
| 
      
 11 
     | 
    
         
            +
                  def validate_each(record, attribute, array)
         
     | 
| 
      
 12 
     | 
    
         
            +
                    raise TypeError, "#{attribute} is not an Array" unless array.is_a?(Array)
         
     | 
| 
      
 13 
     | 
    
         
            +
                    errors = get_serialized_object_errors(array)
         
     | 
| 
      
 14 
     | 
    
         
            +
                    add_errors_to_record(record, attribute, errors)
         
     | 
| 
      
 15 
     | 
    
         
            +
                  end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                  def get_serialized_object_errors(array)
         
     | 
| 
      
 18 
     | 
    
         
            +
                    messages = []
         
     | 
| 
      
 19 
     | 
    
         
            +
                    array.each do |value|
         
     | 
| 
      
 20 
     | 
    
         
            +
                      serialized_object = ValidateableArrayValue.new(value)
         
     | 
| 
      
 21 
     | 
    
         
            +
                      serialized_object.class_eval &@block
         
     | 
| 
      
 22 
     | 
    
         
            +
                      serialized_object.valid?
         
     | 
| 
      
 23 
     | 
    
         
            +
                      message = serialized_object.errors.messages[:value]
         
     | 
| 
      
 24 
     | 
    
         
            +
                      messages << message unless message.blank?
         
     | 
| 
      
 25 
     | 
    
         
            +
                    end
         
     | 
| 
      
 26 
     | 
    
         
            +
                    messages
         
     | 
| 
      
 27 
     | 
    
         
            +
                  end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                  def add_errors_to_record(record, attribute, error_array)
         
     | 
| 
      
 30 
     | 
    
         
            +
                    error_array.each do |value|
         
     | 
| 
      
 31 
     | 
    
         
            +
                      text = value.join(", ")
         
     | 
| 
      
 32 
     | 
    
         
            +
                      message = "#{attribute} has a value that #{text}"
         
     | 
| 
      
 33 
     | 
    
         
            +
                      record.errors.add(attribute, message)
         
     | 
| 
      
 34 
     | 
    
         
            +
                    end
         
     | 
| 
      
 35 
     | 
    
         
            +
                    if exception = options[:strict]
         
     | 
| 
      
 36 
     | 
    
         
            +
                      exception = ActiveModel::StrictValidationFailed if exception == true
         
     | 
| 
      
 37 
     | 
    
         
            +
                      exception_message = record.errors[attribute].join(", ")
         
     | 
| 
      
 38 
     | 
    
         
            +
                      raise exception, exception_message unless exception_message.blank?
         
     | 
| 
      
 39 
     | 
    
         
            +
                    end
         
     | 
| 
      
 40 
     | 
    
         
            +
                  end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                  # def get_message_from_error_hash(error_hash)
         
     | 
| 
      
 43 
     | 
    
         
            +
                  #   message = nil
         
     | 
| 
      
 44 
     | 
    
         
            +
                  #   error_hash.each_pair do |key, array|
         
     | 
| 
      
 45 
     | 
    
         
            +
                  #     message = array.join(", ")
         
     | 
| 
      
 46 
     | 
    
         
            +
                  #   end
         
     | 
| 
      
 47 
     | 
    
         
            +
                  #   message
         
     | 
| 
      
 48 
     | 
    
         
            +
                  # end
         
     | 
| 
      
 49 
     | 
    
         
            +
                end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                module ClassMethods
         
     | 
| 
      
 52 
     | 
    
         
            +
                  # Helper to accept arguments in the style of the +validates+ class method
         
     | 
| 
      
 53 
     | 
    
         
            +
                  def validates_each_in_array(*attr_names, &block)
         
     | 
| 
      
 54 
     | 
    
         
            +
                    raise ArgumentError, "You need to supply at least one attribute" if attr_names.empty?
         
     | 
| 
      
 55 
     | 
    
         
            +
                    validates_with ArrayBlockValidator, _merge_attributes(attr_names), &block
         
     | 
| 
      
 56 
     | 
    
         
            +
                  end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                  def validates_each_in_array!(*attr_names, &block)
         
     | 
| 
      
 59 
     | 
    
         
            +
                    options = attr_names.extract_options!
         
     | 
| 
      
 60 
     | 
    
         
            +
                    options[:strict] = true
         
     | 
| 
      
 61 
     | 
    
         
            +
                    validates_each_in_array(*(attr_names << options), &block)
         
     | 
| 
      
 62 
     | 
    
         
            +
                  end
         
     | 
| 
      
 63 
     | 
    
         
            +
                end
         
     | 
| 
      
 64 
     | 
    
         
            +
              end
         
     | 
| 
      
 65 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/validates_serialized.rb
    CHANGED
    
    | 
         @@ -1,10 +1,11 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'validates_serialized/version'
         
     | 
| 
       2 
     | 
    
         
            -
            require 'validates_serialized/ 
     | 
| 
      
 2 
     | 
    
         
            +
            require 'validates_serialized/validateable_array_value'
         
     | 
| 
       3 
3 
     | 
    
         
             
            require 'validates_serialized/validateable_hash'
         
     | 
| 
       4 
4 
     | 
    
         
             
            require 'validates_serialized/validateable_object'
         
     | 
| 
       5 
5 
     | 
    
         
             
            require 'validates_serialized/each_validator'
         
     | 
| 
       6 
6 
     | 
    
         
             
            require 'validates_serialized/validators/serialized_validator'
         
     | 
| 
       7 
7 
     | 
    
         
             
            require 'validates_serialized/validators/array_validator'
         
     | 
| 
      
 8 
     | 
    
         
            +
            require 'validates_serialized/validators/array_block_validator'
         
     | 
| 
       8 
9 
     | 
    
         
             
            require 'validates_serialized/validators/hash_validator'
         
     | 
| 
       9 
10 
     | 
    
         
             
            require 'validates_serialized/validators/hash_block_validator'
         
     | 
| 
       10 
11 
     | 
    
         
             
            require 'validates_serialized/validators/object_block_validator'
         
     | 
| 
         @@ -0,0 +1,20 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe ValidateableArrayValue do
         
     | 
| 
      
 4 
     | 
    
         
            +
              let!(:array) { [1, 2, 3] }
         
     | 
| 
      
 5 
     | 
    
         
            +
              let!(:value) { array.first }
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              subject { described_class.new(value) }
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              it "responds to valid?" do
         
     | 
| 
      
 10 
     | 
    
         
            +
                subject.should be_valid
         
     | 
| 
      
 11 
     | 
    
         
            +
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
              it "responds to .errors" do
         
     | 
| 
      
 14 
     | 
    
         
            +
                subject.errors.should be_empty
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
              it "returns itself on :value method" do
         
     | 
| 
      
 18 
     | 
    
         
            +
                subject.value.should eq(1)
         
     | 
| 
      
 19 
     | 
    
         
            +
              end
         
     | 
| 
      
 20 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,92 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'ostruct'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            describe ActiveModel::Validations::ArrayBlockValidator do
         
     | 
| 
      
 5 
     | 
    
         
            +
              context "#validates_each_in_array" do
         
     | 
| 
      
 6 
     | 
    
         
            +
                class ValidatorBlockArrayTestOne
         
     | 
| 
      
 7 
     | 
    
         
            +
                  include ActiveModel::Validations
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                  def initialize(h={})
         
     | 
| 
      
 10 
     | 
    
         
            +
                    h.each {|k,v| send("#{k}=",v)}
         
     | 
| 
      
 11 
     | 
    
         
            +
                  end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  def my_attr
         
     | 
| 
      
 14 
     | 
    
         
            +
                    @my_attr ||= []
         
     | 
| 
      
 15 
     | 
    
         
            +
                  end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                  def my_attr=(val)
         
     | 
| 
      
 18 
     | 
    
         
            +
                    @my_attr = val
         
     | 
| 
      
 19 
     | 
    
         
            +
                  end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                  validates_each_in_array :my_attr do
         
     | 
| 
      
 22 
     | 
    
         
            +
                    validates :value, presence: true
         
     | 
| 
      
 23 
     | 
    
         
            +
                  end
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                it "does not raise error for valid value" do
         
     | 
| 
      
 27 
     | 
    
         
            +
                  record = ValidatorBlockArrayTestOne.new(my_attr: [2, 4])
         
     | 
| 
      
 28 
     | 
    
         
            +
                  record.valid?
         
     | 
| 
      
 29 
     | 
    
         
            +
                  record.errors[:my_attr].should eq([])
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                it "adds error for invalid value" do
         
     | 
| 
      
 33 
     | 
    
         
            +
                  record = ValidatorBlockArrayTestOne.new(my_attr: [nil, 4])
         
     | 
| 
      
 34 
     | 
    
         
            +
                  record.valid?
         
     | 
| 
      
 35 
     | 
    
         
            +
                  record.errors[:my_attr].should eq(["my_attr has a value that can't be blank"])
         
     | 
| 
      
 36 
     | 
    
         
            +
                end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                it "adds multiple errors for multiple invalid value" do
         
     | 
| 
      
 39 
     | 
    
         
            +
                  record = ValidatorBlockArrayTestOne.new(my_attr: [nil, 4, nil])
         
     | 
| 
      
 40 
     | 
    
         
            +
                  record.valid?
         
     | 
| 
      
 41 
     | 
    
         
            +
                  record.errors[:my_attr].should eq(["my_attr has a value that can't be blank", "my_attr has a value that can't be blank"])
         
     | 
| 
      
 42 
     | 
    
         
            +
                end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                it "raises error for non-array" do
         
     | 
| 
      
 45 
     | 
    
         
            +
                  record = ValidatorBlockArrayTestOne.new(my_attr: 4)
         
     | 
| 
      
 46 
     | 
    
         
            +
                  expect { record.valid? }.to raise_error(TypeError, 'my_attr is not an Array')
         
     | 
| 
      
 47 
     | 
    
         
            +
                end
         
     | 
| 
      
 48 
     | 
    
         
            +
              end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
              context "#validates_each_in_array!" do
         
     | 
| 
      
 51 
     | 
    
         
            +
                class ValidatorBlockArrayTestStrict
         
     | 
| 
      
 52 
     | 
    
         
            +
                  include ActiveModel::Validations
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                  def initialize(h={})
         
     | 
| 
      
 55 
     | 
    
         
            +
                    h.each {|k,v| send("#{k}=",v)}
         
     | 
| 
      
 56 
     | 
    
         
            +
                  end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                  def my_attr
         
     | 
| 
      
 59 
     | 
    
         
            +
                    @my_attr ||= {}
         
     | 
| 
      
 60 
     | 
    
         
            +
                  end
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                  def my_attr=(val)
         
     | 
| 
      
 63 
     | 
    
         
            +
                    @my_attr = val
         
     | 
| 
      
 64 
     | 
    
         
            +
                  end
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
                  validates_each_in_array! :my_attr do
         
     | 
| 
      
 67 
     | 
    
         
            +
                    validates :value, inclusion: { in: [1, 2, 3, 4] }
         
     | 
| 
      
 68 
     | 
    
         
            +
                  end
         
     | 
| 
      
 69 
     | 
    
         
            +
                end
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
                it "does not raise error for valid value" do
         
     | 
| 
      
 72 
     | 
    
         
            +
                  record = ValidatorBlockArrayTestStrict.new(my_attr: [2, 3])
         
     | 
| 
      
 73 
     | 
    
         
            +
                  record.valid?
         
     | 
| 
      
 74 
     | 
    
         
            +
                  record.errors[:my_attr].should eq([])
         
     | 
| 
      
 75 
     | 
    
         
            +
                end
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
                it "raises error for invalid value" do
         
     | 
| 
      
 78 
     | 
    
         
            +
                  record = ValidatorBlockArrayTestStrict.new(my_attr: [2, 5])
         
     | 
| 
      
 79 
     | 
    
         
            +
                  expect { record.valid? }.to raise_error(ActiveModel::StrictValidationFailed, 'my_attr has a value that is not included in the list')
         
     | 
| 
      
 80 
     | 
    
         
            +
                end
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
      
 82 
     | 
    
         
            +
                it "raises error for multiple invalid value" do
         
     | 
| 
      
 83 
     | 
    
         
            +
                  record = ValidatorBlockArrayTestStrict.new(my_attr: [nil, 9])
         
     | 
| 
      
 84 
     | 
    
         
            +
                  expect { record.valid? }.to raise_error(ActiveModel::StrictValidationFailed, "my_attr has a value that is not included in the list, my_attr has a value that is not included in the list")
         
     | 
| 
      
 85 
     | 
    
         
            +
                end
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
                it "raises error for non-array" do
         
     | 
| 
      
 88 
     | 
    
         
            +
                  record = ValidatorBlockArrayTestStrict.new(my_attr: 4)
         
     | 
| 
      
 89 
     | 
    
         
            +
                  expect { record.valid? }.to raise_error(TypeError, 'my_attr is not an Array')
         
     | 
| 
      
 90 
     | 
    
         
            +
                end
         
     | 
| 
      
 91 
     | 
    
         
            +
              end
         
     | 
| 
      
 92 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: validates_serialized
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.3
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - brycesenz
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2015-01- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2015-01-06 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: activemodel
         
     | 
| 
         @@ -101,9 +101,10 @@ files: 
     | 
|
| 
       101 
101 
     | 
    
         
             
            - README.md
         
     | 
| 
       102 
102 
     | 
    
         
             
            - lib/validates_serialized.rb
         
     | 
| 
       103 
103 
     | 
    
         
             
            - lib/validates_serialized/each_validator.rb
         
     | 
| 
       104 
     | 
    
         
            -
            - lib/validates_serialized/ 
     | 
| 
      
 104 
     | 
    
         
            +
            - lib/validates_serialized/validateable_array_value.rb
         
     | 
| 
       105 
105 
     | 
    
         
             
            - lib/validates_serialized/validateable_hash.rb
         
     | 
| 
       106 
106 
     | 
    
         
             
            - lib/validates_serialized/validateable_object.rb
         
     | 
| 
      
 107 
     | 
    
         
            +
            - lib/validates_serialized/validators/array_block_validator.rb
         
     | 
| 
       107 
108 
     | 
    
         
             
            - lib/validates_serialized/validators/array_validator.rb
         
     | 
| 
       108 
109 
     | 
    
         
             
            - lib/validates_serialized/validators/hash_block_validator.rb
         
     | 
| 
       109 
110 
     | 
    
         
             
            - lib/validates_serialized/validators/hash_validator.rb
         
     | 
| 
         @@ -114,9 +115,10 @@ files: 
     | 
|
| 
       114 
115 
     | 
    
         
             
            - spec/acceptance_spec.rb
         
     | 
| 
       115 
116 
     | 
    
         
             
            - spec/each_validator_spec.rb
         
     | 
| 
       116 
117 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
       117 
     | 
    
         
            -
            - spec/ 
     | 
| 
      
 118 
     | 
    
         
            +
            - spec/validateable_array_value_spec.rb
         
     | 
| 
       118 
119 
     | 
    
         
             
            - spec/validateable_hash_spec.rb
         
     | 
| 
       119 
120 
     | 
    
         
             
            - spec/validateable_object_spec.rb
         
     | 
| 
      
 121 
     | 
    
         
            +
            - spec/validators/array_block_validator_spec.rb
         
     | 
| 
       120 
122 
     | 
    
         
             
            - spec/validators/array_validator_spec.rb
         
     | 
| 
       121 
123 
     | 
    
         
             
            - spec/validators/hash_block_validator_spec.rb
         
     | 
| 
       122 
124 
     | 
    
         
             
            - spec/validators/hash_validator_spec.rb
         
     | 
| 
         @@ -151,9 +153,10 @@ test_files: 
     | 
|
| 
       151 
153 
     | 
    
         
             
            - spec/acceptance_spec.rb
         
     | 
| 
       152 
154 
     | 
    
         
             
            - spec/each_validator_spec.rb
         
     | 
| 
       153 
155 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
       154 
     | 
    
         
            -
            - spec/ 
     | 
| 
      
 156 
     | 
    
         
            +
            - spec/validateable_array_value_spec.rb
         
     | 
| 
       155 
157 
     | 
    
         
             
            - spec/validateable_hash_spec.rb
         
     | 
| 
       156 
158 
     | 
    
         
             
            - spec/validateable_object_spec.rb
         
     | 
| 
      
 159 
     | 
    
         
            +
            - spec/validators/array_block_validator_spec.rb
         
     | 
| 
       157 
160 
     | 
    
         
             
            - spec/validators/array_validator_spec.rb
         
     | 
| 
       158 
161 
     | 
    
         
             
            - spec/validators/hash_block_validator_spec.rb
         
     | 
| 
       159 
162 
     | 
    
         
             
            - spec/validators/hash_validator_spec.rb
         
     | 
| 
         @@ -1,15 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'spec_helper'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            describe ValidateableArray do
         
     | 
| 
       4 
     | 
    
         
            -
              let!(:array) { Array.new }
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
              subject { described_class.new(array) }
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
              it "responds to valid?" do
         
     | 
| 
       9 
     | 
    
         
            -
                subject.should be_valid
         
     | 
| 
       10 
     | 
    
         
            -
              end
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
              it "responds to .errors" do
         
     | 
| 
       13 
     | 
    
         
            -
                subject.errors.should be_empty
         
     | 
| 
       14 
     | 
    
         
            -
              end
         
     | 
| 
       15 
     | 
    
         
            -
            end
         
     |