weasel_diesel 1.2.0 → 1.2.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.
- data/CHANGELOG.md +10 -0
- data/lib/params_verification.rb +3 -1
- data/lib/weasel_diesel/version.rb +1 -1
- data/spec/params_verification_spec.rb +10 -0
- metadata +4 -4
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -3,6 +3,16 @@ | |
| 3 3 | 
             
            All changes can be seen on GitHub and git tags are used to isolate each
         | 
| 4 4 | 
             
            release.
         | 
| 5 5 |  | 
| 6 | 
            +
            *1.2.1*:
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            * Modified the way an empty string param is cast/verified. If a param is
         | 
| 9 | 
            +
            passed as an empty string but the param isn't specified as a string, the
         | 
| 10 | 
            +
            param is nullified. So if you pass `{'id' => ''}`, and `id` is set to be
         | 
| 11 | 
            +
            an integer param, the cast params will look like that: `{'id' => nil}`,
         | 
| 12 | 
            +
            however if `name` is a string param and `{'name' => ''}` is passed, the
         | 
| 13 | 
            +
            value won't be nullified.
         | 
| 14 | 
            +
             | 
| 15 | 
            +
             | 
| 6 16 | 
             
            **1.2.0**: 
         | 
| 7 17 |  | 
| 8 18 | 
             
            * All service urls are now stored with a prepended slash (if not defined
         | 
    
        data/lib/params_verification.rb
    CHANGED
    
    | @@ -165,7 +165,7 @@ module ParamsVerification | |
| 165 165 | 
             
              #
         | 
| 166 166 | 
             
              # @param [Object] param_value The value to validate and cast.
         | 
| 167 167 | 
             
              # @param [String] param_name The name of the param we are validating.
         | 
| 168 | 
            -
              # @param [Symbol]  | 
| 168 | 
            +
              # @param [Symbol] rule_type The expected object type.
         | 
| 169 169 | 
             
              # @param [Hash] params The params that might need to be updated.
         | 
| 170 170 | 
             
              # @param [String, Symbol] namespace The optional namespace used to access the `param_value`
         | 
| 171 171 | 
             
              #
         | 
| @@ -175,6 +175,8 @@ module ParamsVerification | |
| 175 175 | 
             
              def self.validate_and_cast_type(param_value, param_name, rule_type, params, namespace=nil)
         | 
| 176 176 | 
             
                # checks type & modifies params if needed
         | 
| 177 177 | 
             
                if rule_type && param_value
         | 
| 178 | 
            +
                  # nullify empty strings for any types other than string
         | 
| 179 | 
            +
                  param_value = nil if param_value == '' && rule_type != :string
         | 
| 178 180 | 
             
                  verify_cast(param_name, param_value, rule_type)
         | 
| 179 181 | 
             
                  param_value = type_cast_value(rule_type, param_value)
         | 
| 180 182 | 
             
                  # update the params hash with the type cast value
         | 
| @@ -187,4 +187,14 @@ describe ParamsVerification do | |
| 187 187 | 
             
                lambda{ ParamsVerification.validate!(params, @service.defined_params) }.should raise_exception(ParamsVerification::InvalidParamValue)
         | 
| 188 188 | 
             
              end
         | 
| 189 189 |  | 
| 190 | 
            +
              it "should allow optional null integer params" do
         | 
| 191 | 
            +
                service = WeaselDiesel.new("spec")
         | 
| 192 | 
            +
                service.params do |p|
         | 
| 193 | 
            +
                  p.integer :id, :optional => true, :null => true
         | 
| 194 | 
            +
                end
         | 
| 195 | 
            +
                params = {"id" => ""}
         | 
| 196 | 
            +
                lambda{ ParamsVerification.validate!(params, service.defined_params) }.should_not raise_exception
         | 
| 197 | 
            +
                params = {"id" => nil}
         | 
| 198 | 
            +
                lambda{ ParamsVerification.validate!(params, service.defined_params) }.should_not raise_exception
         | 
| 199 | 
            +
              end
         | 
| 190 200 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: weasel_diesel
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.2. | 
| 4 | 
            +
              version: 1.2.1
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date:  | 
| 12 | 
            +
            date: 2013-01-19 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: rspec
         | 
| @@ -146,7 +146,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 146 146 | 
             
                  version: '0'
         | 
| 147 147 | 
             
                  segments:
         | 
| 148 148 | 
             
                  - 0
         | 
| 149 | 
            -
                  hash:  | 
| 149 | 
            +
                  hash: 1325572656893606813
         | 
| 150 150 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 151 151 | 
             
              none: false
         | 
| 152 152 | 
             
              requirements:
         | 
| @@ -155,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 155 155 | 
             
                  version: '0'
         | 
| 156 156 | 
             
                  segments:
         | 
| 157 157 | 
             
                  - 0
         | 
| 158 | 
            -
                  hash:  | 
| 158 | 
            +
                  hash: 1325572656893606813
         | 
| 159 159 | 
             
            requirements: []
         | 
| 160 160 | 
             
            rubyforge_project: wsdsl
         | 
| 161 161 | 
             
            rubygems_version: 1.8.24
         |