routing-filter 0.3.1 → 0.4.0.pre
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
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            SHA1:
         | 
| 3 | 
            +
              metadata.gz: dae448fa20d77a3acbcc23bb63e5cb829b2cc3f8
         | 
| 4 | 
            +
              data.tar.gz: e067c24c3c3644b82b5d62f1a373224ae3ef2276
         | 
| 5 | 
            +
            SHA512:
         | 
| 6 | 
            +
              metadata.gz: a02a85cad0a7030297ac0db2c857d29718612b1ae8b86f055a40c98bc84e49c2006f0e6d20ce1fd09f4bbe698b391a6f70e1e5689bc1d50e0705b5d07c26cbba
         | 
| 7 | 
            +
              data.tar.gz: 5ea13645e8d27fcc89b600f2fe76c8ba2eeb08f5bb55b43bb88f5cf9b9e7cc1c8ea7007a949d17f16a6b5a2d6eca8282905b0a0e7a5b7b6c5de0ebc6417099d5
         | 
    
        data/README.markdown
    CHANGED
    
    | @@ -1,5 +1,7 @@ | |
| 1 1 | 
             
            # Routing Filter
         | 
| 2 2 |  | 
| 3 | 
            +
            [](http://travis-ci.org/svenfuchs/routing-filter)
         | 
| 4 | 
            +
             | 
| 3 5 | 
             
            Routing filters wrap around the complex beast that the Rails routing system is
         | 
| 4 6 | 
             
            to allow for unseen flexibility and power in Rails URL recognition and
         | 
| 5 7 | 
             
            generation.
         | 
| @@ -60,6 +62,17 @@ Filters can also accept options: | |
| 60 62 | 
             
                  filter :locale,    :exclude => /^\/admin/
         | 
| 61 63 | 
             
                end
         | 
| 62 64 |  | 
| 65 | 
            +
            ### Testing
         | 
| 66 | 
            +
             | 
| 67 | 
            +
            RoutingFilter should not be enabled in functional tests by default since the Rails router gets
         | 
| 68 | 
            +
            bypassed for most testcases. Having RoutingFilter enabled in this setup can cause missing parameters
         | 
| 69 | 
            +
            in the test environment. Routing tests can/should re-enable RoutingFilter since the whole routing stack
         | 
| 70 | 
            +
            gets executed for these testcases.
         | 
| 71 | 
            +
             | 
| 72 | 
            +
            To disable RoutingFilter in your test suite add the following to your test_helper.rb / spec_helper.rb:
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                RoutingFilter.active = false
         | 
| 75 | 
            +
             | 
| 63 76 | 
             
            ## Running the tests
         | 
| 64 77 |  | 
| 65 78 | 
             
            To run the tests against different dependencies [appraisal](https://github.com/thoughtbot/appraisal) is used.
         | 
| @@ -0,0 +1,44 @@ | |
| 1 | 
            +
            require 'action_dispatch'
         | 
| 2 | 
            +
            require 'active_support/core_ext/module/aliasing'
         | 
| 3 | 
            +
            require 'active_support/core_ext/hash/reverse_merge'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            mappers = [ActionDispatch::Routing::Mapper]
         | 
| 6 | 
            +
            mappers << ActionDispatch::Routing::DeprecatedMapper if defined?(ActionDispatch::Routing::DeprecatedMapper)
         | 
| 7 | 
            +
            mappers.each do |mapper|
         | 
| 8 | 
            +
              mapper.class_eval do
         | 
| 9 | 
            +
                def filter(*args)
         | 
| 10 | 
            +
                  @set.add_filters(*args)
         | 
| 11 | 
            +
                end
         | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
            end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            ActionDispatch::Routing::RouteSet.class_eval do
         | 
| 16 | 
            +
              def filters
         | 
| 17 | 
            +
                @set.filters if @set
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              def add_filters(*names)
         | 
| 21 | 
            +
                options = names.extract_options!
         | 
| 22 | 
            +
                names.each { |name| filters.unshift(RoutingFilter.build(name, options)) }
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
              def generate_with_filtering(options, recall = {})
         | 
| 26 | 
            +
                # `around_generate` is destructive method and it breaks url. To avoid this, `dup` is required.
         | 
| 27 | 
            +
                filters.run(:around_generate, options, &lambda{ generate_without_filtering(options, recall).map(&:dup) })
         | 
| 28 | 
            +
              end
         | 
| 29 | 
            +
              alias_method_chain :generate, :filtering
         | 
| 30 | 
            +
             | 
| 31 | 
            +
              def clear_with_filtering!
         | 
| 32 | 
            +
                filters.clear if filters
         | 
| 33 | 
            +
                clear_without_filtering!
         | 
| 34 | 
            +
              end
         | 
| 35 | 
            +
              alias_method_chain :clear!, :filtering
         | 
| 36 | 
            +
            end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
            ActionDispatch::Journey::Routes.class_eval do
         | 
| 39 | 
            +
              def filters
         | 
| 40 | 
            +
                @filters || RoutingFilter::Chain.new.tap { |f| @filters = f unless frozen? }
         | 
| 41 | 
            +
              end
         | 
| 42 | 
            +
            end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            require 'routing_filter/adapters/routers/journey'
         | 
| @@ -1,15 +1,21 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
             | 
| 1 | 
            +
            if defined?(ActionDispatch::Journey) # rails 4
         | 
| 2 | 
            +
              journey = ActionDispatch::Journey
         | 
| 3 | 
            +
            else # rails 3.2
         | 
| 4 | 
            +
              require 'journey/routes'
         | 
| 5 | 
            +
              require 'journey/router'
         | 
| 6 | 
            +
              journey = Journey
         | 
| 7 | 
            +
            end
         | 
| 3 8 |  | 
| 4 | 
            -
             | 
| 9 | 
            +
            journey::Routes.class_eval do
         | 
| 5 10 | 
             
              def filters
         | 
| 6 11 | 
             
                @filters || RoutingFilter::Chain.new.tap { |f| @filters = f unless frozen? }
         | 
| 7 12 | 
             
              end
         | 
| 8 13 | 
             
            end
         | 
| 9 14 |  | 
| 10 | 
            -
             | 
| 15 | 
            +
            journey::Router.class_eval do
         | 
| 11 16 | 
             
              def find_routes_with_filtering env
         | 
| 12 17 | 
             
                path, filter_parameters = env['PATH_INFO'], {}
         | 
| 18 | 
            +
                original_path = path.dup
         | 
| 13 19 |  | 
| 14 20 | 
             
                @routes.filters.run(:around_recognize, path, env) do
         | 
| 15 21 | 
             
                  filter_parameters
         | 
| @@ -17,6 +23,8 @@ Journey::Router.class_eval do | |
| 17 23 |  | 
| 18 24 | 
             
                find_routes_without_filtering(env).map do |match, parameters, route|
         | 
| 19 25 | 
             
                  [ match, parameters.merge(filter_parameters), route ]
         | 
| 26 | 
            +
                end.tap do |match, parameters, route|
         | 
| 27 | 
            +
                  env['PATH_INFO'] = original_path # restore the original path
         | 
| 20 28 | 
             
                end
         | 
| 21 29 | 
             
              end
         | 
| 22 30 | 
             
              alias_method_chain :find_routes, :filtering
         | 
    
        metadata
    CHANGED
    
    | @@ -1,60 +1,71 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: routing-filter
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 5 | 
            -
              prerelease: 
         | 
| 4 | 
            +
              version: 0.4.0.pre
         | 
| 6 5 | 
             
            platform: ruby
         | 
| 7 6 | 
             
            authors:
         | 
| 8 7 | 
             
            - Sven Fuchs
         | 
| 9 8 | 
             
            autorequire: 
         | 
| 10 9 | 
             
            bindir: bin
         | 
| 11 10 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date:  | 
| 11 | 
            +
            date: 2013-07-20 00:00:00.000000000 Z
         | 
| 13 12 | 
             
            dependencies:
         | 
| 14 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 14 | 
             
              name: actionpack
         | 
| 16 | 
            -
              requirement:  | 
| 17 | 
            -
                none: false
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 18 16 | 
             
                requirements:
         | 
| 19 | 
            -
                - -  | 
| 17 | 
            +
                - - '>='
         | 
| 20 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 21 19 | 
             
                    version: '0'
         | 
| 22 20 | 
             
              type: :runtime
         | 
| 23 21 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements:  | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 24 | 
            +
                - - '>='
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: '0'
         | 
| 25 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 26 28 | 
             
              name: appraisal
         | 
| 27 | 
            -
              requirement:  | 
| 28 | 
            -
                none: false
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 29 30 | 
             
                requirements:
         | 
| 30 | 
            -
                - -  | 
| 31 | 
            +
                - - '>='
         | 
| 31 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 32 33 | 
             
                    version: '0'
         | 
| 33 34 | 
             
              type: :development
         | 
| 34 35 | 
             
              prerelease: false
         | 
| 35 | 
            -
              version_requirements:  | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - '>='
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '0'
         | 
| 36 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 37 42 | 
             
              name: i18n
         | 
| 38 | 
            -
              requirement:  | 
| 39 | 
            -
                none: false
         | 
| 43 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 40 44 | 
             
                requirements:
         | 
| 41 | 
            -
                - -  | 
| 45 | 
            +
                - - '>='
         | 
| 42 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 43 47 | 
             
                    version: '0'
         | 
| 44 48 | 
             
              type: :development
         | 
| 45 49 | 
             
              prerelease: false
         | 
| 46 | 
            -
              version_requirements:  | 
| 50 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 | 
            +
                requirements:
         | 
| 52 | 
            +
                - - '>='
         | 
| 53 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            +
                    version: '0'
         | 
| 47 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 48 56 | 
             
              name: test_declarative
         | 
| 49 | 
            -
              requirement:  | 
| 50 | 
            -
                none: false
         | 
| 57 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 51 58 | 
             
                requirements:
         | 
| 52 | 
            -
                - -  | 
| 59 | 
            +
                - - '>='
         | 
| 53 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 61 | 
             
                    version: '0'
         | 
| 55 62 | 
             
              type: :development
         | 
| 56 63 | 
             
              prerelease: false
         | 
| 57 | 
            -
              version_requirements:  | 
| 64 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 | 
            +
                requirements:
         | 
| 66 | 
            +
                - - '>='
         | 
| 67 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            +
                    version: '0'
         | 
| 58 69 | 
             
            description: Routing filters wraps around the complex beast that the Rails routing
         | 
| 59 70 | 
             
              system is, allowing for unseen flexibility and power in Rails URL recognition and
         | 
| 60 71 | 
             
              generation.
         | 
| @@ -67,42 +78,42 @@ files: | |
| 67 78 | 
             
            - README.markdown
         | 
| 68 79 | 
             
            - MIT-LICENSE
         | 
| 69 80 | 
             
            - lib/routing/filter.rb
         | 
| 70 | 
            -
            - lib/routing-filter.rb
         | 
| 71 | 
            -
            - lib/routing_filter/adapters/rails_2.rb
         | 
| 72 | 
            -
            - lib/routing_filter/adapters/rails_3.rb
         | 
| 73 | 
            -
            - lib/routing_filter/adapters/routers/journey.rb
         | 
| 74 | 
            -
            - lib/routing_filter/adapters/routers/rack_mount.rb
         | 
| 75 81 | 
             
            - lib/routing_filter/chain.rb
         | 
| 76 | 
            -
            - lib/routing_filter/filter.rb
         | 
| 77 | 
            -
            - lib/routing_filter/filters/extension.rb
         | 
| 78 82 | 
             
            - lib/routing_filter/filters/locale.rb
         | 
| 79 | 
            -
            - lib/routing_filter/filters/pagination.rb
         | 
| 80 83 | 
             
            - lib/routing_filter/filters/uuid.rb
         | 
| 84 | 
            +
            - lib/routing_filter/filters/pagination.rb
         | 
| 85 | 
            +
            - lib/routing_filter/filters/extension.rb
         | 
| 81 86 | 
             
            - lib/routing_filter/version.rb
         | 
| 87 | 
            +
            - lib/routing_filter/filter.rb
         | 
| 88 | 
            +
            - lib/routing_filter/adapters/rails_3.rb
         | 
| 89 | 
            +
            - lib/routing_filter/adapters/rails_4.rb
         | 
| 90 | 
            +
            - lib/routing_filter/adapters/routers/journey.rb
         | 
| 91 | 
            +
            - lib/routing_filter/adapters/routers/rack_mount.rb
         | 
| 92 | 
            +
            - lib/routing_filter/adapters/rails_2.rb
         | 
| 82 93 | 
             
            - lib/routing_filter.rb
         | 
| 94 | 
            +
            - lib/routing-filter.rb
         | 
| 83 95 | 
             
            homepage: http://github.com/svenfuchs/routing-filter
         | 
| 84 96 | 
             
            licenses: []
         | 
| 97 | 
            +
            metadata: {}
         | 
| 85 98 | 
             
            post_install_message: 
         | 
| 86 99 | 
             
            rdoc_options: []
         | 
| 87 100 | 
             
            require_paths:
         | 
| 88 101 | 
             
            - lib
         | 
| 89 102 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 90 | 
            -
              none: false
         | 
| 91 103 | 
             
              requirements:
         | 
| 92 | 
            -
              - -  | 
| 104 | 
            +
              - - '>='
         | 
| 93 105 | 
             
                - !ruby/object:Gem::Version
         | 
| 94 106 | 
             
                  version: '0'
         | 
| 95 107 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 96 | 
            -
              none: false
         | 
| 97 108 | 
             
              requirements:
         | 
| 98 | 
            -
              - -  | 
| 109 | 
            +
              - - '>'
         | 
| 99 110 | 
             
                - !ruby/object:Gem::Version
         | 
| 100 | 
            -
                  version:  | 
| 111 | 
            +
                  version: 1.3.1
         | 
| 101 112 | 
             
            requirements: []
         | 
| 102 | 
            -
            rubyforge_project:  | 
| 103 | 
            -
            rubygems_version:  | 
| 113 | 
            +
            rubyforge_project: '[none]'
         | 
| 114 | 
            +
            rubygems_version: 2.0.3
         | 
| 104 115 | 
             
            signing_key: 
         | 
| 105 | 
            -
            specification_version:  | 
| 116 | 
            +
            specification_version: 4
         | 
| 106 117 | 
             
            summary: Routing filters wraps around the complex beast that the Rails routing system
         | 
| 107 118 | 
             
              is, allowing for unseen flexibility and power in Rails URL recognition and generation
         | 
| 108 119 | 
             
            test_files: []
         |