algebrick 0.3.1 → 0.3.2
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 +4 -4
- data/VERSION +1 -1
- data/lib/algebrick.rb +34 -2
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 9166938f13bced97656434796a7d426cf19a7396
         | 
| 4 | 
            +
              data.tar.gz: eea50d70bef296d2d9f7ad18554ddae07d771eb8
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 7a6f6620de67a7c6dc50d28874996e2a1596fdf590bcfa71158e42fc648a2f0c70ae7e39c81b84281b0a2abe7262e33fcb88997ed78ca04321d3f66201d8f71a
         | 
| 7 | 
            +
              data.tar.gz: 466e978ff88c63b24378c42b633def34e90cd60cc6ac79938b46e705f2d4ed5ddb2b9edd6fcdd2dc3c3dabe62afdc8270fa9c78e10f15a63b00c2d69c7d5040a
         | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            0.3. | 
| 1 | 
            +
            0.3.2
         | 
    
        data/lib/algebrick.rb
    CHANGED
    
    | @@ -58,6 +58,7 @@ module Algebrick | |
| 58 58 | 
             
              end
         | 
| 59 59 |  | 
| 60 60 | 
             
              module TypeCheck
         | 
| 61 | 
            +
                # FIND: type checking of collections?
         | 
| 61 62 | 
             
                def Type?(value, *types)
         | 
| 62 63 | 
             
                  types.any? { |t| value.is_a? t }
         | 
| 63 64 | 
             
                end
         | 
| @@ -321,10 +322,41 @@ module Algebrick | |
| 321 322 | 
             
                      if type.field_names?
         | 
| 322 323 | 
             
                        type.field_names.map { |name| "#{name}: #{self[name].to_s}" }.join(', ')
         | 
| 323 324 | 
             
                      else
         | 
| 324 | 
            -
                        fields.map(&:to_s).join(',')
         | 
| 325 | 
            +
                        fields.map(&:to_s).join(', ')
         | 
| 325 326 | 
             
                      end + ']'
         | 
| 326 327 | 
             
                end
         | 
| 327 328 |  | 
| 329 | 
            +
                def pretty_print(q)
         | 
| 330 | 
            +
                  q.group(1, "#{self.class.type.name}[", ']') do
         | 
| 331 | 
            +
                    if type.field_names?
         | 
| 332 | 
            +
                      type.field_names.each_with_index do |name, i|
         | 
| 333 | 
            +
                        if i == 0
         | 
| 334 | 
            +
                          q.breakable ''
         | 
| 335 | 
            +
                        else
         | 
| 336 | 
            +
                          q.text ','
         | 
| 337 | 
            +
                          q.breakable ' '
         | 
| 338 | 
            +
                        end
         | 
| 339 | 
            +
                        q.text name.to_s
         | 
| 340 | 
            +
                        q.text ':'
         | 
| 341 | 
            +
                        q.group(1) do
         | 
| 342 | 
            +
                          q.breakable ' '
         | 
| 343 | 
            +
                          q.pp self[name]
         | 
| 344 | 
            +
                        end
         | 
| 345 | 
            +
                      end
         | 
| 346 | 
            +
                    else
         | 
| 347 | 
            +
                      fields.each_with_index do |value, i|
         | 
| 348 | 
            +
                        if i == 0
         | 
| 349 | 
            +
                          q.breakable ''
         | 
| 350 | 
            +
                        else
         | 
| 351 | 
            +
                          q.text ','
         | 
| 352 | 
            +
                          q.breakable ' '
         | 
| 353 | 
            +
                        end
         | 
| 354 | 
            +
                        q.pp value
         | 
| 355 | 
            +
                      end
         | 
| 356 | 
            +
                    end
         | 
| 357 | 
            +
                  end
         | 
| 358 | 
            +
                end
         | 
| 359 | 
            +
             | 
| 328 360 | 
             
                def to_ary
         | 
| 329 361 | 
             
                  @fields
         | 
| 330 362 | 
             
                end
         | 
| @@ -1107,7 +1139,7 @@ module Algebrick | |
| 1107 1139 | 
             
                                          raise ArgumentError, "no #{dif} fields in #{algebraic_type}"
         | 
| 1108 1140 | 
             
                                        end
         | 
| 1109 1141 | 
             
                                        algebraic_type.field_names.map do |field|
         | 
| 1110 | 
            -
                                          field_matchers[field]  | 
| 1142 | 
            +
                                          field_matchers.key?(field) ? field_matchers[field] : Algebrick.any
         | 
| 1111 1143 | 
             
                                        end
         | 
| 1112 1144 |  | 
| 1113 1145 | 
             
                                        # AProduct.(:field_name)
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: algebrick
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.3. | 
| 4 | 
            +
              version: 0.3.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Petr Chalupa
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2013-11- | 
| 11 | 
            +
            date: 2013-11-29 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: minitest
         | 
| @@ -157,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 157 157 | 
             
                  version: '0'
         | 
| 158 158 | 
             
            requirements: []
         | 
| 159 159 | 
             
            rubyforge_project: 
         | 
| 160 | 
            -
            rubygems_version: 2.0. | 
| 160 | 
            +
            rubygems_version: 2.0.3
         | 
| 161 161 | 
             
            signing_key: 
         | 
| 162 162 | 
             
            specification_version: 4
         | 
| 163 163 | 
             
            summary: Algebraic types and pattern matching for Ruby
         |