cuba 2.1.0 → 2.2.0.rc1
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/lib/cuba.rb +21 -24
- data/lib/cuba/version.rb +1 -1
- metadata +13 -13
    
        data/lib/cuba.rb
    CHANGED
    
    | @@ -70,15 +70,20 @@ class Cuba | |
| 70 70 | 
             
                @env = env
         | 
| 71 71 | 
             
                @req = Rack::Request.new(env)
         | 
| 72 72 | 
             
                @res = Rack::Response.new
         | 
| 73 | 
            -
                @matched = false
         | 
| 74 73 |  | 
| 75 | 
            -
                catch | 
| 74 | 
            +
                # This `catch` statement will either receive a
         | 
| 75 | 
            +
                # rack response tuple via a `halt`, or will
         | 
| 76 | 
            +
                # fall back to issuing a 404.
         | 
| 77 | 
            +
                #
         | 
| 78 | 
            +
                # When it `catch`es a throw, the return value
         | 
| 79 | 
            +
                # of this whole `_call` method will be the
         | 
| 80 | 
            +
                # rack response tuple, which is exactly what we want.
         | 
| 81 | 
            +
                catch(:halt) do
         | 
| 76 82 | 
             
                  instance_eval(&@blk)
         | 
| 77 83 |  | 
| 78 | 
            -
                   | 
| 79 | 
            -
             | 
| 80 | 
            -
             | 
| 81 | 
            -
                end.call(env)
         | 
| 84 | 
            +
                  res.status = 404
         | 
| 85 | 
            +
                  res.finish
         | 
| 86 | 
            +
                end
         | 
| 82 87 | 
             
              end
         | 
| 83 88 |  | 
| 84 89 | 
             
              # @private Used internally by #render to cache the
         | 
| @@ -131,10 +136,6 @@ class Cuba | |
| 131 136 | 
             
              #   end
         | 
| 132 137 | 
             
              #
         | 
| 133 138 | 
             
              def on(*args, &block)
         | 
| 134 | 
            -
                # No use running any other matchers if we've already found a
         | 
| 135 | 
            -
                # proper matcher.
         | 
| 136 | 
            -
                return if @matched
         | 
| 137 | 
            -
             | 
| 138 139 | 
             
                try do
         | 
| 139 140 | 
             
                  # For every block, we make sure to reset captures so that
         | 
| 140 141 | 
             
                  # nesting matchers won't mess with each other's captures.
         | 
| @@ -151,20 +152,12 @@ class Cuba | |
| 151 152 | 
             
                  #    on true, "signup"
         | 
| 152 153 | 
             
                  return unless args.all? { |arg| match(arg) }
         | 
| 153 154 |  | 
| 154 | 
            -
                   | 
| 155 | 
            -
             | 
| 156 | 
            -
             | 
| 157 | 
            -
             | 
| 158 | 
            -
                    yield *captures
         | 
| 155 | 
            +
                  # The captures we yield here were generated and assembled
         | 
| 156 | 
            +
                  # by evaluating each of the `arg`s above. Most of these
         | 
| 157 | 
            +
                  # are carried out by #consume.
         | 
| 158 | 
            +
                  yield *captures
         | 
| 159 159 |  | 
| 160 | 
            -
                   | 
| 161 | 
            -
                    # Regardless of what happens in the `yield`, we should ensure that
         | 
| 162 | 
            -
                    # we successfully set `@matched` to true.
         | 
| 163 | 
            -
             | 
| 164 | 
            -
                    # At this point, we've successfully matched with some corresponding
         | 
| 165 | 
            -
                    # matcher, so we can skip all other matchers defined.
         | 
| 166 | 
            -
                    @matched = true
         | 
| 167 | 
            -
                  end
         | 
| 160 | 
            +
                  halt res.finish
         | 
| 168 161 | 
             
                end
         | 
| 169 162 | 
             
              end
         | 
| 170 163 |  | 
| @@ -292,7 +285,11 @@ class Cuba | |
| 292 285 | 
             
              #     res.write "Super secure account info."
         | 
| 293 286 | 
             
              #   end
         | 
| 294 287 | 
             
              def run(app)
         | 
| 295 | 
            -
                 | 
| 288 | 
            +
                halt app.call(req.env)
         | 
| 289 | 
            +
              end
         | 
| 290 | 
            +
             | 
| 291 | 
            +
              def halt(response)
         | 
| 292 | 
            +
                throw :halt, response
         | 
| 296 293 | 
             
              end
         | 
| 297 294 |  | 
| 298 295 | 
             
              # In order to prevent people from overriding the standard Cuba
         | 
    
        data/lib/cuba/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,20 +1,20 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: cuba
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2. | 
| 5 | 
            -
              prerelease: 
         | 
| 4 | 
            +
              version: 2.2.0.rc1
         | 
| 5 | 
            +
              prerelease: 6
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| 8 8 | 
             
            - Michel Martens
         | 
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2011- | 
| 12 | 
            +
            date: 2011-10-19 00:00:00.000000000 -03:00
         | 
| 13 13 | 
             
            default_executable: 
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: rack
         | 
| 17 | 
            -
              requirement: & | 
| 17 | 
            +
              requirement: &2153812140 !ruby/object:Gem::Requirement
         | 
| 18 18 | 
             
                none: false
         | 
| 19 19 | 
             
                requirements:
         | 
| 20 20 | 
             
                - - ! '>='
         | 
| @@ -22,10 +22,10 @@ dependencies: | |
| 22 22 | 
             
                    version: '0'
         | 
| 23 23 | 
             
              type: :runtime
         | 
| 24 24 | 
             
              prerelease: false
         | 
| 25 | 
            -
              version_requirements: * | 
| 25 | 
            +
              version_requirements: *2153812140
         | 
| 26 26 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 27 27 | 
             
              name: tilt
         | 
| 28 | 
            -
              requirement: & | 
| 28 | 
            +
              requirement: &2153811720 !ruby/object:Gem::Requirement
         | 
| 29 29 | 
             
                none: false
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 31 | 
             
                - - ! '>='
         | 
| @@ -33,10 +33,10 @@ dependencies: | |
| 33 33 | 
             
                    version: '0'
         | 
| 34 34 | 
             
              type: :runtime
         | 
| 35 35 | 
             
              prerelease: false
         | 
| 36 | 
            -
              version_requirements: * | 
| 36 | 
            +
              version_requirements: *2153811720
         | 
| 37 37 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 38 38 | 
             
              name: cutest
         | 
| 39 | 
            -
              requirement: & | 
| 39 | 
            +
              requirement: &2153811300 !ruby/object:Gem::Requirement
         | 
| 40 40 | 
             
                none: false
         | 
| 41 41 | 
             
                requirements:
         | 
| 42 42 | 
             
                - - ! '>='
         | 
| @@ -44,10 +44,10 @@ dependencies: | |
| 44 44 | 
             
                    version: '0'
         | 
| 45 45 | 
             
              type: :development
         | 
| 46 46 | 
             
              prerelease: false
         | 
| 47 | 
            -
              version_requirements: * | 
| 47 | 
            +
              version_requirements: *2153811300
         | 
| 48 48 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 49 49 | 
             
              name: capybara
         | 
| 50 | 
            -
              requirement: & | 
| 50 | 
            +
              requirement: &2153849280 !ruby/object:Gem::Requirement
         | 
| 51 51 | 
             
                none: false
         | 
| 52 52 | 
             
                requirements:
         | 
| 53 53 | 
             
                - - ! '>='
         | 
| @@ -55,7 +55,7 @@ dependencies: | |
| 55 55 | 
             
                    version: '0'
         | 
| 56 56 | 
             
              type: :development
         | 
| 57 57 | 
             
              prerelease: false
         | 
| 58 | 
            -
              version_requirements: * | 
| 58 | 
            +
              version_requirements: *2153849280
         | 
| 59 59 | 
             
            description: Cuba is a microframework for web applications.
         | 
| 60 60 | 
             
            email:
         | 
| 61 61 | 
             
            - michel@soveran.com
         | 
| @@ -104,9 +104,9 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 104 104 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 105 105 | 
             
              none: false
         | 
| 106 106 | 
             
              requirements:
         | 
| 107 | 
            -
              - - ! ' | 
| 107 | 
            +
              - - ! '>'
         | 
| 108 108 | 
             
                - !ruby/object:Gem::Version
         | 
| 109 | 
            -
                  version:  | 
| 109 | 
            +
                  version: 1.3.1
         | 
| 110 110 | 
             
            requirements: []
         | 
| 111 111 | 
             
            rubyforge_project: 
         | 
| 112 112 | 
             
            rubygems_version: 1.6.2
         |