Sha256: f42e9d37cce2cb5afa1abc79eab9ef9a6d8005a9516121c716e8996934e61441

Contents?: true

Size: 736 Bytes

Versions: 28

Compression:

Stored size: 736 Bytes

Contents

require File.expand_path("spec_helper", File.dirname(File.dirname(__FILE__)))

describe "hash_matcher plugin" do 
  it "should enable the handling of arbitrary hash keys" do
    app(:bare) do 
      plugin :hash_matcher
      hash_matcher(:foos){|v| consume(self.class.cached_matcher(:"foos-#{v}"){/((?:foo){#{v}})/})}
      route do |r|
        r.is :foos=>1 do |f|
          "1#{f}"
        end
        r.is :foos=>2 do |f|
          "2#{f}"
        end
        r.is :foos=>3 do |f|
          "3#{f}"
        end
      end
    end

    body("/foo").must_equal '1foo'
    body("/foofoo").must_equal '2foofoo'
    body("/foofoofoo").must_equal '3foofoofoo'
    status("/foofoofoofoo").must_equal 404
    status.must_equal 404
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
roda-2.9.0 spec/plugin/hash_matcher_spec.rb
roda-2.8.0 spec/plugin/hash_matcher_spec.rb
roda-2.7.0 spec/plugin/hash_matcher_spec.rb
roda-2.6.0 spec/plugin/hash_matcher_spec.rb
roda-2.5.1 spec/plugin/hash_matcher_spec.rb
roda-2.5.0 spec/plugin/hash_matcher_spec.rb
roda-2.4.0 spec/plugin/hash_matcher_spec.rb
roda-2.3.0 spec/plugin/hash_matcher_spec.rb