summon 2.0.1 → 2.0.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.
@@ -0,0 +1,11 @@
1
+ rvm:
2
+ - 1.9.3
3
+ - 1.9.2
4
+ - 1.8.7
5
+ - jruby
6
+ notifications:
7
+ recipients:
8
+ - summon-ui@summon.serialssolutions.com
9
+ - mandoescamilla@gmail.com
10
+ - thatdutchguy@secretlymexico.com
11
+
@@ -1441,7 +1441,7 @@
1441
1441
  "facetValueFilters": [
1442
1442
 
1443
1443
  ],
1444
- "queryString": "s.ho=t&s.rff=PublicationDate%2C*%3A2000%2C2001%3A2001%2C2002%3A2002%2C2003%3A2003%2C2004%3A2004%2C2005%3A2005%2C2006%3A2006%2C2007%3A2007%2C2008%3A2008%2C2009%3A2009&s.ps=10&s.ff=IsScholarly%2Cor%2C1%2C2&s.ff=Language%2Cor%2C1%2C6&s.ff=ContentType%2Cor%2C1%2C6&s.ff=IsFullText%2Cor%2C1%2C2&s.ff=Library%2Cor%2C1%2C6&s.ff=SubjectTerms%2Cand%2C1%2C6",
1444
+ "queryString": "s.ho=t&s.rff=PublicationDate%2C*%3A2000%2C2001%3A2001%2C2002%3A2002%2C2003%3A2003%2C2004%3A2004%2C2005%3A2005%2C2006%3A2006%2C2007%3A2007%2C2008%3A2008%2C2009%3A2009&s.ps=10&s.ff=IsScholarly%2Cor%2C1%2C2&s.ff=Language%2Cor%2C1%2C6&s.ff=ContentType%2Cor%2C1%2C6&s.ff=IsFullText%2Cor%2C1%2C2&s.ff=Library%2Cor%2C1%2C6&s.ff=SubjectTerms%2Cand%2C1%2C6&s.q=louis%2Crmstrong&s.pn=1&s.ps=10",
1445
1445
  "facetFields": [
1446
1446
  {
1447
1447
  "pageSize": 2,
@@ -1490,7 +1490,10 @@
1490
1490
 
1491
1491
  ],
1492
1492
  "textQueries": [
1493
-
1493
+ {
1494
+ "textQuery": "louis%2Crmstrong",
1495
+ "removeCommand": "removeTextQuery(louis%2Crmstrong)"
1496
+ }
1494
1497
  ],
1495
1498
  "sort": [
1496
1499
 
@@ -1,9 +1,10 @@
1
1
 
2
2
  require 'cgi'
3
+ require 'uri'
3
4
 
4
5
  module Summon::Transport
5
6
  module Qstring
6
-
7
+
7
8
  def to_query_string(hash, urlencode = true)
8
9
  hash.reject {|k,v| v.nil? || v == ''}.inject([]) do |qs,pair|
9
10
  qs.tap do
@@ -16,21 +17,25 @@ module Summon::Transport
16
17
  qs << encode_param(k, v, urlencode)
17
18
  end
18
19
  end
19
- end.reject{|o| o.nil? || o.empty?}.sort.join('&')
20
+ end.reject{|o| o.nil? || o.empty?}.sort.join('&')
20
21
  end
21
22
 
22
23
  def urlencode(str)
23
- str.gsub(/[^a-zA-Z0-9_\.\-]/n) {|s| sprintf('%%%02x', s[0].ord) }
24
+ if URI.respond_to?(:encode_www_form_component)
25
+ URI.encode_www_form_component str
26
+ else
27
+ str.gsub(/[^a-zA-Z0-9_\.\-]/n) {|s| sprintf('%%%02x', s[0].ord) }
28
+ end
24
29
  end
25
30
 
26
31
  def urldecode(str)
27
32
  CGI.unescape(str)
28
33
  end
29
-
34
+
30
35
  def encode_param(k, v, do_urlencode)
31
36
  "#{k.to_s}=#{do_urlencode ? urlencode(v.to_s) : v.to_s}"
32
37
  end
33
-
38
+
34
39
  def from_query_string(qstr)
35
40
  qstr ||= ""
36
41
  {}.tap do |result|
@@ -42,8 +47,8 @@ module Summon::Transport
42
47
  else
43
48
  result[k] = urldecode(v)
44
49
  end
45
- end
50
+ end
46
51
  end
47
52
  end
48
- end
53
+ end
49
54
  end
@@ -1,4 +1,4 @@
1
1
 
2
2
  module Summon
3
- VERSION = "2.0.1"
3
+ VERSION = "2.0.2"
4
4
  end
@@ -1,30 +1,35 @@
1
+ # -*- encoding: utf-8 -*-
1
2
  require File.dirname(__FILE__) + '/../../spec_helper'
2
3
 
3
4
  describe Summon::Transport::Qstring do
4
5
  before(:each) do
5
6
  extend Summon::Transport::Qstring
6
7
  end
7
-
8
+
8
9
  it "can decode a query string into hash parameters" do
9
10
  from_query_string("foo=bar&baz=bang").should == {"foo" => "bar", "baz" => "bang"}
10
11
  end
11
-
12
+
12
13
  it "stuffs multiple keys into the same value as a list" do
13
14
  from_query_string("foo=bar&foo=baz&bar=bang").should == {"foo" => ["bar", "baz"], "bar" => "bang"}
14
15
  end
15
-
16
+
16
17
  it "url decodes keys and values" do
17
18
  from_query_string("foo=bar%20bar&baz=bang+bang").should == {"foo" => "bar bar", "baz" => "bang bang"}
18
19
  end
19
-
20
+
20
21
  it "returns an empty hash if the query string is blank" do
21
22
  from_query_string(nil).should be_empty
22
23
  from_query_string("").should be_empty
23
24
  end
24
-
25
+
25
26
  it "encodes strings properly" do
26
27
  to_query_string("foo" => "bar").should == "foo=bar"
27
- to_query_string("foo" => "*").should == "foo=%2a"
28
+ to_query_string("foo" => "/").downcase.should == "foo=%2f"
29
+ end
30
+
31
+ it "encodes UTF-8 strings" do
32
+ to_query_string("s.q"=> "らしさ」を失わな").downcase.should eql "s.q=%e3%82%89%e3%81%97%e3%81%95%e3%80%8d%e3%82%92%e5%a4%b1%e3%82%8f%e3%81%aa"
28
33
  end
29
-
34
+
30
35
  end
@@ -26,7 +26,8 @@ http://api.summon.serialssolutions.com
26
26
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
27
27
  s.require_paths = ["lib"]
28
28
 
29
- s.add_runtime_dependency "json", ">= 1.2.0"
30
- s.add_development_dependency "rspec", ">= 2.0.0"
29
+ s.add_runtime_dependency "json"
30
+
31
+ s.add_development_dependency "rspec", "~> 2.0"
31
32
  s.add_development_dependency "rake"
32
33
  end
metadata CHANGED
@@ -1,83 +1,63 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: summon
3
- version: !ruby/object:Gem::Version
4
- hash: 13
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.2
5
5
  prerelease:
6
- segments:
7
- - 2
8
- - 0
9
- - 1
10
- version: 2.0.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Charles Lowell
14
- - "Dani\xC3\xABl van de Burgt"
9
+ - Daniël van de Burgt
15
10
  autorequire:
16
11
  bindir: bin
17
12
  cert_chain: []
18
-
19
- date: 2011-11-06 01:00:00 -05:00
20
- default_executable:
21
- dependencies:
22
- - !ruby/object:Gem::Dependency
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 31
29
- segments:
30
- - 1
31
- - 2
32
- - 0
33
- version: 1.2.0
34
- version_requirements: *id001
13
+ date: 2011-11-17 00:00:00.000000000Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
35
16
  name: json
36
- prerelease: false
37
- type: :runtime
38
- - !ruby/object:Gem::Dependency
39
- requirement: &id002 !ruby/object:Gem::Requirement
17
+ requirement: &2154273420 !ruby/object:Gem::Requirement
40
18
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 15
45
- segments:
46
- - 2
47
- - 0
48
- - 0
49
- version: 2.0.0
50
- version_requirements: *id002
51
- name: rspec
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
52
24
  prerelease: false
53
- type: :development
54
- - !ruby/object:Gem::Dependency
55
- requirement: &id003 !ruby/object:Gem::Requirement
25
+ version_requirements: *2154273420
26
+ - !ruby/object:Gem::Dependency
27
+ name: rspec
28
+ requirement: &2154272460 !ruby/object:Gem::Requirement
56
29
  none: false
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- hash: 3
61
- segments:
62
- - 0
63
- version: "0"
64
- version_requirements: *id003
65
- name: rake
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '2.0'
34
+ type: :development
66
35
  prerelease: false
36
+ version_requirements: *2154272460
37
+ - !ruby/object:Gem::Dependency
38
+ name: rake
39
+ requirement: &2154271680 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
67
45
  type: :development
68
- description: Ruby language bindings for Serials Solutions Summon Unified Discovery Service
69
- email:
46
+ prerelease: false
47
+ version_requirements: *2154271680
48
+ description: Ruby language bindings for Serials Solutions Summon Unified Discovery
49
+ Service
50
+ email:
70
51
  - cowboyd@thefrontside.net
71
52
  - daniel.vandeburgt@serialssolutions.com
72
- executables:
53
+ executables:
73
54
  - summon
74
55
  - summonh
75
56
  extensions: []
76
-
77
57
  extra_rdoc_files: []
78
-
79
- files:
58
+ files:
80
59
  - .gitignore
60
+ - .travis.yml
81
61
  - Changelog.md
82
62
  - Gemfile
83
63
  - README.md
@@ -134,46 +114,42 @@ files:
134
114
  - spec/summon_spec.rb
135
115
  - spike.rb
136
116
  - summon.gemspec
137
- has_rdoc: true
138
117
  homepage: http://github.com/summon/summon.rb
139
118
  licenses: []
119
+ post_install_message: ! '
140
120
 
141
- post_install_message: |+
142
-
143
121
  For comprehensive documentation on Summon API options and usage visit:
144
-
122
+
123
+
145
124
  http://api.summon.serialssolutions.com
146
-
147
- rdoc_options: []
148
125
 
149
- require_paths:
126
+
127
+ '
128
+ rdoc_options: []
129
+ require_paths:
150
130
  - lib
151
- required_ruby_version: !ruby/object:Gem::Requirement
131
+ required_ruby_version: !ruby/object:Gem::Requirement
152
132
  none: false
153
- requirements:
154
- - - ">="
155
- - !ruby/object:Gem::Version
156
- hash: 3
157
- segments:
133
+ requirements:
134
+ - - ! '>='
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ segments:
158
138
  - 0
159
- version: "0"
160
- required_rubygems_version: !ruby/object:Gem::Requirement
139
+ hash: 940696890272720682
140
+ required_rubygems_version: !ruby/object:Gem::Requirement
161
141
  none: false
162
- requirements:
163
- - - ">="
164
- - !ruby/object:Gem::Version
165
- hash: 3
166
- segments:
167
- - 0
168
- version: "0"
142
+ requirements:
143
+ - - ! '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
169
146
  requirements: []
170
-
171
147
  rubyforge_project:
172
- rubygems_version: 1.6.2
148
+ rubygems_version: 1.8.10
173
149
  signing_key:
174
150
  specification_version: 3
175
151
  summary: Ruby language bindings for Serials Solutions Summon Unified Discovery Service
176
- test_files:
152
+ test_files:
177
153
  - spec/spec.opts
178
154
  - spec/spec_helper.rb
179
155
  - spec/summon/log_spec.rb