Hello community, here is the log from the commit of package rubygem-mustermann for openSUSE:Factory checked in at 2018-10-17 08:41:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rubygem-mustermann (Old) and /work/SRC/openSUSE:Factory/.rubygem-mustermann.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-mustermann" Wed Oct 17 08:41:27 2018 rev:4 rq:642180 version:1.0.3 Changes: -------- --- /work/SRC/openSUSE:Factory/rubygem-mustermann/rubygem-mustermann.changes 2018-02-19 13:04:16.754911858 +0100 +++ /work/SRC/openSUSE:Factory/.rubygem-mustermann.new/rubygem-mustermann.changes 2018-10-17 08:42:35.209795437 +0200 @@ -1,0 +2,6 @@ +Wed Sep 5 10:29:58 UTC 2018 - co...@suse.com + +- updated to version 1.0.3 + no changelog found + +------------------------------------------------------------------- Old: ---- mustermann-1.0.2.gem New: ---- mustermann-1.0.3.gem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rubygem-mustermann.spec ++++++ --- /var/tmp/diff_new_pack.v0WRw0/_old 2018-10-17 08:42:35.845794897 +0200 +++ /var/tmp/diff_new_pack.v0WRw0/_new 2018-10-17 08:42:35.849794893 +0200 @@ -24,7 +24,7 @@ # Name: rubygem-mustermann -Version: 1.0.2 +Version: 1.0.3 Release: 0 %define mod_name mustermann %define mod_full_name %{mod_name}-%{version} ++++++ mustermann-1.0.2.gem -> mustermann-1.0.3.gem ++++++ Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/mustermann/equality_map.rb new/lib/mustermann/equality_map.rb --- old/lib/mustermann/equality_map.rb 2018-02-16 16:20:32.000000000 +0100 +++ new/lib/mustermann/equality_map.rb 2018-08-16 18:41:42.000000000 +0200 @@ -10,7 +10,7 @@ # @map = Mustermann::EqualityMap.new # # def self.new(*args) - # @map.fetch(*args) { super } + # @map.fetch(args) { super } # end # end # @@ -27,12 +27,16 @@ @map = ObjectSpace::WeakMap.new end - # @param [Array<#hash>] key for caching + # @param [#hash] key for caching # @yield block that will be called to populate entry if missing (has to be idempotent) # @return value stored in map or result of block - def fetch(*key) + def fetch(key) identity = @keys[key.hash] - key = identity == key ? identity : key + if identity == key + key = identity + elsif key.frozen? + key = key.dup + end # it is ok that this is not thread-safe, worst case it has double cost in # generating, object equality is not guaranteed anyways diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/mustermann/pattern.rb new/lib/mustermann/pattern.rb --- old/lib/mustermann/pattern.rb 2018-02-16 16:20:32.000000000 +0100 +++ new/lib/mustermann/pattern.rb 2018-08-16 18:41:42.000000000 +0200 @@ -56,7 +56,7 @@ end @map ||= EqualityMap.new - @map.fetch(string, options) { super(string, options) { options } } + @map.fetch([string, options]) { super(string, options) { options } } end supported_options :uri_decode, :ignore_unknown_options diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/mustermann/sinatra/safe_renderer.rb new/lib/mustermann/sinatra/safe_renderer.rb --- old/lib/mustermann/sinatra/safe_renderer.rb 2018-02-16 16:20:32.000000000 +0100 +++ new/lib/mustermann/sinatra/safe_renderer.rb 2018-08-16 18:41:42.000000000 +0200 @@ -12,6 +12,7 @@ translate(:group) { "(#{t(payload)})" } translate(:union) { "(#{t(payload, join: ?|)})" } translate(:optional) { "#{t(payload)}?" } + translate(:with_look_ahead) { t([head, payload]) } translate(Array) { |join: ""| map { |e| t(e) }.join(join) } translate(:capture) do diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/mustermann/version.rb new/lib/mustermann/version.rb --- old/lib/mustermann/version.rb 2018-02-16 16:20:32.000000000 +0100 +++ new/lib/mustermann/version.rb 2018-08-16 18:41:42.000000000 +0200 @@ -1,4 +1,4 @@ # frozen_string_literal: true module Mustermann - VERSION ||= '1.0.2' + VERSION ||= '1.0.3' end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata --- old/metadata 2018-02-16 16:20:32.000000000 +0100 +++ new/metadata 2018-08-16 18:41:42.000000000 +0200 @@ -1,7 +1,7 @@ --- !ruby/object:Gem::Specification name: mustermann version: !ruby/object:Gem::Version - version: 1.0.2 + version: 1.0.3 platform: ruby authors: - Konstantin Haase @@ -9,7 +9,7 @@ autorequire: bindir: bin cert_chain: [] -date: 2018-02-16 00:00:00.000000000 Z +date: 2018-08-16 00:00:00.000000000 Z dependencies: [] description: A library implementing patterns that behave like regular expressions. email: sinatr...@googlegroups.com diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/equality_map_spec.rb new/spec/equality_map_spec.rb --- old/spec/equality_map_spec.rb 2018-02-16 16:20:32.000000000 +0100 +++ new/spec/equality_map_spec.rb 2018-08-16 18:41:42.000000000 +0200 @@ -22,5 +22,21 @@ result = subject.fetch(String.new('foo')) { "bar" } expect(result).to be == "bar" end + + specify 'allows a frozen key and value' do + next if subject.is_a? Hash + key = "foo".freeze + value = "bar".freeze + subject.fetch(key) { value } + result = subject.fetch("foo".dup) { raise "not executed" } + expect(result).to be == value + expect(result).not_to equal value + end + + specify 'allows only a single argument to be compatible with Hash#fetch' do + expect { + subject.fetch("foo", "bar", "baz") { "value" } + }.to raise_error(ArgumentError) + end end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/regular_spec.rb new/spec/regular_spec.rb --- old/spec/regular_spec.rb 2018-02-16 16:20:32.000000000 +0100 +++ new/spec/regular_spec.rb 2018-08-16 18:41:42.000000000 +0200 @@ -51,7 +51,7 @@ (.+) # match the second SHA1 }x } - example { expect { Timeout.timeout(1){ Mustermann::Regular.new(pattern) }}.not_to raise_error(Timeout::Error) } + example { expect { Timeout.timeout(1){ Mustermann::Regular.new(pattern) }}.not_to raise_error } it { expect(Mustermann::Regular.new(pattern)).to match('/compare/foo/bar..baz') } end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/sinatra_spec.rb new/spec/sinatra_spec.rb --- old/spec/sinatra_spec.rb 2018-02-16 16:20:32.000000000 +0100 +++ new/spec/sinatra_spec.rb 2018-08-16 18:41:42.000000000 +0200 @@ -826,4 +826,11 @@ its(:class) { should be == Mustermann::Composite } end end + + describe "native concatination" do + subject { Mustermann.new(prefix) + Mustermann.new(pattern) } + let(:prefix) { "/a" } + let(:pattern) { "/:b(.:c)?" } + it { should match("/a/b.json") } + end end