toolchain 0.1.0 → 0.1.1
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
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 42b6a53e0441d4960fdefb7aa46d2ab238d90dfd
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: d5e75f87d85cfcd542bf340f8dd0764586172bf9
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 29dbe5cce70a0fad6e192c5649a0eb4cc343f4a370f58deee48a58033fda006a034926ed514cb738e022aa1234965fdf4d34ad79130c5b5141342ce3b909d379
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 13d782b212ec1b7146b02998b6e194432c39b1f3421d10fc308009936960e7b420d6f0cf18794b630e3e9848c4600c0b83aca3d9e3659e1ebcae854610870164
         
     | 
| 
         @@ -35,9 +35,18 @@ module Toolchain::Validations 
     | 
|
| 
       35 
35 
     | 
    
         
             
                def validates(*args)
         
     | 
| 
       36 
36 
     | 
    
         
             
                  options, key_path = args.pop, args
         
     | 
| 
       37 
37 
     | 
    
         | 
| 
      
 38 
     | 
    
         
            +
                  _if = options.delete(:if)
         
     | 
| 
      
 39 
     | 
    
         
            +
                  _unless = options.delete(:unless)
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
       38 
41 
     | 
    
         
             
                  options.each do |key, data|
         
     | 
| 
       39 
42 
     | 
    
         
             
                    if validator = Helpers.find_validator(key)
         
     | 
| 
       40 
     | 
    
         
            -
                      validations.push( 
     | 
| 
      
 43 
     | 
    
         
            +
                      validations.push(
         
     | 
| 
      
 44 
     | 
    
         
            +
                        key_path: key_path,
         
     | 
| 
      
 45 
     | 
    
         
            +
                        validator: validator,
         
     | 
| 
      
 46 
     | 
    
         
            +
                        data: data,
         
     | 
| 
      
 47 
     | 
    
         
            +
                        if: _if,
         
     | 
| 
      
 48 
     | 
    
         
            +
                        unless: _unless
         
     | 
| 
      
 49 
     | 
    
         
            +
                      )
         
     | 
| 
       41 
50 
     | 
    
         
             
                    end
         
     | 
| 
       42 
51 
     | 
    
         
             
                  end
         
     | 
| 
       43 
52 
     | 
    
         
             
                end
         
     | 
| 
         @@ -75,7 +84,19 @@ module Toolchain::Validations 
     | 
|
| 
       75 
84 
     | 
    
         
             
                #
         
     | 
| 
       76 
85 
     | 
    
         
             
                def validate
         
     | 
| 
       77 
86 
     | 
    
         
             
                  Helpers.each_validation(self.class) do |v|
         
     | 
| 
       78 
     | 
    
         
            -
                     
     | 
| 
      
 87 
     | 
    
         
            +
                    validate = true
         
     | 
| 
      
 88 
     | 
    
         
            +
             
     | 
| 
      
 89 
     | 
    
         
            +
                    if v[:if].kind_of?(Proc) && v[:if].call(self) == false
         
     | 
| 
      
 90 
     | 
    
         
            +
                      validate = false
         
     | 
| 
      
 91 
     | 
    
         
            +
                    end
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
      
 93 
     | 
    
         
            +
                    if v[:unless].kind_of?(Proc) && v[:unless].call(self) == true
         
     | 
| 
      
 94 
     | 
    
         
            +
                      validate = false
         
     | 
| 
      
 95 
     | 
    
         
            +
                    end
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
      
 97 
     | 
    
         
            +
                    if validate
         
     | 
| 
      
 98 
     | 
    
         
            +
                      v[:validator].new(self, v[:key_path], v[:data]).validate
         
     | 
| 
      
 99 
     | 
    
         
            +
                    end
         
     | 
| 
       79 
100 
     | 
    
         
             
                  end
         
     | 
| 
       80 
101 
     | 
    
         | 
| 
       81 
102 
     | 
    
         
             
                  Helpers.each_validation(self.class, :custom_validations) { |v| send(v) }
         
     | 
    
        data/lib/toolchain/version.rb
    CHANGED
    
    
| 
         @@ -0,0 +1,52 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require_relative "base_helper"
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Toolchain::Validations, "Conditional" do
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              class PersonConditionalIfTrue
         
     | 
| 
      
 6 
     | 
    
         
            +
                include Toolchain::Validations
         
     | 
| 
      
 7 
     | 
    
         
            +
                validates :name, presence: true, if: ->(i){ i.new }
         
     | 
| 
      
 8 
     | 
    
         
            +
                attr_accessor :name
         
     | 
| 
      
 9 
     | 
    
         
            +
                def new; true end
         
     | 
| 
      
 10 
     | 
    
         
            +
              end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
              it "should validate" do
         
     | 
| 
      
 13 
     | 
    
         
            +
                person = PersonConditionalIfTrue.new
         
     | 
| 
      
 14 
     | 
    
         
            +
                person.should_not be_valid
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
              class PersonConditionalIfFalse
         
     | 
| 
      
 18 
     | 
    
         
            +
                include Toolchain::Validations
         
     | 
| 
      
 19 
     | 
    
         
            +
                validates :name, presence: true, if: ->(i){ i.new }
         
     | 
| 
      
 20 
     | 
    
         
            +
                attr_accessor :name
         
     | 
| 
      
 21 
     | 
    
         
            +
                def new; false end
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
              it "should not validate" do
         
     | 
| 
      
 25 
     | 
    
         
            +
                person = PersonConditionalIfFalse.new
         
     | 
| 
      
 26 
     | 
    
         
            +
                person.should be_valid
         
     | 
| 
      
 27 
     | 
    
         
            +
              end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
              class PersonConditionalUnlessTrue
         
     | 
| 
      
 30 
     | 
    
         
            +
                include Toolchain::Validations
         
     | 
| 
      
 31 
     | 
    
         
            +
                validates :name, presence: true, unless: ->(i){ i.new }
         
     | 
| 
      
 32 
     | 
    
         
            +
                attr_accessor :name
         
     | 
| 
      
 33 
     | 
    
         
            +
                def new; true end
         
     | 
| 
      
 34 
     | 
    
         
            +
              end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
              it "should not validate" do
         
     | 
| 
      
 37 
     | 
    
         
            +
                person = PersonConditionalUnlessTrue.new
         
     | 
| 
      
 38 
     | 
    
         
            +
                person.should be_valid
         
     | 
| 
      
 39 
     | 
    
         
            +
              end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
              class PersonConditionalUnlessFalse
         
     | 
| 
      
 42 
     | 
    
         
            +
                include Toolchain::Validations
         
     | 
| 
      
 43 
     | 
    
         
            +
                validates :name, presence: true, unless: ->(i){ i.new }
         
     | 
| 
      
 44 
     | 
    
         
            +
                attr_accessor :name
         
     | 
| 
      
 45 
     | 
    
         
            +
                def new; false end
         
     | 
| 
      
 46 
     | 
    
         
            +
              end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
              it "should validate" do
         
     | 
| 
      
 49 
     | 
    
         
            +
                person = PersonConditionalUnlessFalse.new
         
     | 
| 
      
 50 
     | 
    
         
            +
                person.should_not be_valid
         
     | 
| 
      
 51 
     | 
    
         
            +
              end
         
     | 
| 
      
 52 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -5,7 +5,7 @@ describe Toolchain::Validations::Validators::Inclusion do 
     | 
|
| 
       5 
5 
     | 
    
         
             
              class UserInclusion
         
     | 
| 
       6 
6 
     | 
    
         
             
                include Toolchain::Validations
         
     | 
| 
       7 
7 
     | 
    
         
             
                attr_accessor :color
         
     | 
| 
       8 
     | 
    
         
            -
                validates :color, inclusion: ["red", "green", "blue"]
         
     | 
| 
      
 8 
     | 
    
         
            +
                validates :color, inclusion: { in: ["red", "green", "blue"] }
         
     | 
| 
       9 
9 
     | 
    
         
             
              end
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
              it "should be valid if 'red'" do
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: toolchain
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Michael van Rooijen
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2014-03- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2014-03-15 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: bundler
         
     | 
| 
         @@ -90,6 +90,7 @@ files: 
     | 
|
| 
       90 
90 
     | 
    
         
             
            - spec/toolchain/attributes/include_attributes_spec.rb
         
     | 
| 
       91 
91 
     | 
    
         
             
            - spec/toolchain/attributes/initializer_spec.rb
         
     | 
| 
       92 
92 
     | 
    
         
             
            - spec/toolchain/validations/base_helper.rb
         
     | 
| 
      
 93 
     | 
    
         
            +
            - spec/toolchain/validations/conditional_spec.rb
         
     | 
| 
       93 
94 
     | 
    
         
             
            - spec/toolchain/validations/custom_validations_spec.rb
         
     | 
| 
       94 
95 
     | 
    
         
             
            - spec/toolchain/validations/delegation_spec.rb
         
     | 
| 
       95 
96 
     | 
    
         
             
            - spec/toolchain/validations/include_validations_spec.rb
         
     | 
| 
         @@ -143,6 +144,7 @@ test_files: 
     | 
|
| 
       143 
144 
     | 
    
         
             
            - spec/toolchain/attributes/include_attributes_spec.rb
         
     | 
| 
       144 
145 
     | 
    
         
             
            - spec/toolchain/attributes/initializer_spec.rb
         
     | 
| 
       145 
146 
     | 
    
         
             
            - spec/toolchain/validations/base_helper.rb
         
     | 
| 
      
 147 
     | 
    
         
            +
            - spec/toolchain/validations/conditional_spec.rb
         
     | 
| 
       146 
148 
     | 
    
         
             
            - spec/toolchain/validations/custom_validations_spec.rb
         
     | 
| 
       147 
149 
     | 
    
         
             
            - spec/toolchain/validations/delegation_spec.rb
         
     | 
| 
       148 
150 
     | 
    
         
             
            - spec/toolchain/validations/include_validations_spec.rb
         
     |