solr4r 0.0.5 → 0.0.6

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.
@@ -7,7 +7,7 @@
7
7
  # #
8
8
  # Copyright (C) 2014-2015 Jens Wille #
9
9
  # #
10
- # Mir is free software: you can redistribute it and/or modify it under the #
10
+ # solr4r is free software: you can redistribute it and/or modify it under the #
11
11
  # terms of the GNU Affero General Public License as published by the Free #
12
12
  # Software Foundation, either version 3 of the License, or (at your option) #
13
13
  # any later version. #
@@ -55,12 +55,13 @@ module Solr4R
55
55
 
56
56
  def query_pairs(key, value, pairs = [])
57
57
  if value.is_a?(Hash)
58
- pairs << [key, true]
58
+ kv = value.fetch(vk = :_, true)
59
+ pairs << [key, kv] unless kv.nil?
59
60
 
60
61
  value.each { |sub, val|
61
- query_pairs("#{key}.#{sub}", val, pairs) }
62
+ query_pairs("#{key}.#{sub}", val, pairs) unless sub == vk }
62
63
  else
63
- Array(value).each { |val| pairs << [key, val] }
64
+ Array(value).each { |val| pairs << [key, val] unless val.nil? }
64
65
  end
65
66
 
66
67
  pairs
@@ -4,7 +4,7 @@ module Solr4R
4
4
 
5
5
  MAJOR = 0
6
6
  MINOR = 0
7
- TINY = 5
7
+ TINY = 6
8
8
 
9
9
  class << self
10
10
 
data/lib/solr4r.rb CHANGED
@@ -5,9 +5,9 @@
5
5
  # #
6
6
  # solr4r -- A Ruby client for Apache Solr #
7
7
  # #
8
- # Copyright (C) 2014 Jens Wille #
8
+ # Copyright (C) 2014-2015 Jens Wille #
9
9
  # #
10
- # Mir is free software: you can redistribute it and/or modify it under the #
10
+ # solr4r is free software: you can redistribute it and/or modify it under the #
11
11
  # terms of the GNU Affero General Public License as published by the Free #
12
12
  # Software Foundation, either version 3 of the License, or (at your option) #
13
13
  # any later version. #
@@ -40,4 +40,5 @@ require_relative 'solr4r/logging'
40
40
  require_relative 'solr4r/builder'
41
41
  require_relative 'solr4r/request'
42
42
  require_relative 'solr4r/response'
43
+ require_relative 'solr4r/endpoints'
43
44
  require_relative 'solr4r/client'
@@ -1,13 +1,9 @@
1
1
  describe Solr4R::Builder do
2
2
 
3
- before :all do
4
- @builder = Solr4R::Builder.new
5
- end
6
-
7
3
  describe '#add' do
8
4
 
9
5
  example do
10
- @builder.add(employeeId: '05991', office: 'Bridgewater', skills: %w[Perl Java]).should == <<-EOT
6
+ expect(subject.add(employeeId: '05991', office: 'Bridgewater', skills: %w[Perl Java])).to eq(<<-EOT)
11
7
  <?xml version="1.0" encoding="UTF-8"?>
12
8
  <add>
13
9
  <doc>
@@ -21,7 +17,7 @@ describe Solr4R::Builder do
21
17
  end
22
18
 
23
19
  example do
24
- @builder.add([{ employeeId: '05992', office: 'Blackwater' }, { employeeId: '05993', skills: 'Ruby' }]).should == <<-EOT
20
+ expect(subject.add([{ employeeId: '05992', office: 'Blackwater' }, { employeeId: '05993', skills: 'Ruby' }])).to eq(<<-EOT)
25
21
  <?xml version="1.0" encoding="UTF-8"?>
26
22
  <add>
27
23
  <doc>
@@ -37,7 +33,7 @@ describe Solr4R::Builder do
37
33
  end
38
34
 
39
35
  example do
40
- @builder.add([id: 42, text: 'blah'], commitWithin: 23).should == <<-EOT
36
+ expect(subject.add([id: 42, text: 'blah'], commitWithin: 23)).to eq(<<-EOT)
41
37
  <?xml version="1.0" encoding="UTF-8"?>
42
38
  <add commitWithin="23">
43
39
  <doc>
@@ -49,7 +45,7 @@ describe Solr4R::Builder do
49
45
  end
50
46
 
51
47
  example do
52
- @builder.add([[{ id: 42, text: 'blah' }, { boost: 10.0 }]]).should == <<-EOT
48
+ expect(subject.add([[{ id: 42, text: 'blah' }, boost: 10.0]])).to eq(<<-EOT)
53
49
  <?xml version="1.0" encoding="UTF-8"?>
54
50
  <add>
55
51
  <doc boost="10.0">
@@ -61,7 +57,7 @@ describe Solr4R::Builder do
61
57
  end
62
58
 
63
59
  example do
64
- @builder.add(id: 42, text: ['blah', boost: 2.0]).should == <<-EOT
60
+ expect(subject.add(id: 42, text: ['blah', boost: 2.0])).to eq(<<-EOT)
65
61
  <?xml version="1.0" encoding="UTF-8"?>
66
62
  <add>
67
63
  <doc>
@@ -73,7 +69,7 @@ describe Solr4R::Builder do
73
69
  end
74
70
 
75
71
  example do
76
- @builder.add([[{ id: 42, text: ['blah', boost: 2.0] }, { boost: 10.0 }]], commitWithin: 23).should == <<-EOT
72
+ expect(subject.add([[{ id: 42, text: ['blah', boost: 2.0] }, boost: 10.0]], commitWithin: 23)).to eq(<<-EOT)
77
73
  <?xml version="1.0" encoding="UTF-8"?>
78
74
  <add commitWithin="23">
79
75
  <doc boost="10.0">
@@ -85,7 +81,7 @@ describe Solr4R::Builder do
85
81
  end
86
82
 
87
83
  example do
88
- @builder.add(employeeId: '05991', office: "\fBridgew\ate\r", skills: %w[Perl Java]).should == <<-EOT
84
+ expect(subject.add(employeeId: '05991', office: "\fBridgew\ate\r", skills: %w[Perl Java])).to eq(<<-EOT)
89
85
  <?xml version="1.0" encoding="UTF-8"?>
90
86
  <add>
91
87
  <doc>
@@ -103,14 +99,14 @@ describe Solr4R::Builder do
103
99
  describe '#commit' do
104
100
 
105
101
  example do
106
- @builder.commit.should == <<-EOT
102
+ expect(subject.commit).to eq(<<-EOT)
107
103
  <?xml version="1.0" encoding="UTF-8"?>
108
104
  <commit/>
109
105
  EOT
110
106
  end
111
107
 
112
108
  example do
113
- @builder.commit(softCommit: true).should == <<-EOT
109
+ expect(subject.commit(softCommit: true)).to eq(<<-EOT)
114
110
  <?xml version="1.0" encoding="UTF-8"?>
115
111
  <commit softCommit="true"/>
116
112
  EOT
@@ -121,14 +117,14 @@ describe Solr4R::Builder do
121
117
  describe '#optimize' do
122
118
 
123
119
  example do
124
- @builder.optimize.should == <<-EOT
120
+ expect(subject.optimize).to eq(<<-EOT)
125
121
  <?xml version="1.0" encoding="UTF-8"?>
126
122
  <optimize/>
127
123
  EOT
128
124
  end
129
125
 
130
126
  example do
131
- @builder.optimize(maxSegments: 42).should == <<-EOT
127
+ expect(subject.optimize(maxSegments: 42)).to eq(<<-EOT)
132
128
  <?xml version="1.0" encoding="UTF-8"?>
133
129
  <optimize maxSegments="42"/>
134
130
  EOT
@@ -139,7 +135,7 @@ describe Solr4R::Builder do
139
135
  describe '#rollback' do
140
136
 
141
137
  example do
142
- @builder.rollback.should == <<-EOT
138
+ expect(subject.rollback).to eq(<<-EOT)
143
139
  <?xml version="1.0" encoding="UTF-8"?>
144
140
  <rollback/>
145
141
  EOT
@@ -150,7 +146,7 @@ describe Solr4R::Builder do
150
146
  describe '#delete' do
151
147
 
152
148
  example do
153
- @builder.delete(id: '05991').should == <<-EOT
149
+ expect(subject.delete(id: '05991')).to eq(<<-EOT)
154
150
  <?xml version="1.0" encoding="UTF-8"?>
155
151
  <delete>
156
152
  <id>05991</id>
@@ -159,7 +155,7 @@ describe Solr4R::Builder do
159
155
  end
160
156
 
161
157
  example do
162
- @builder.delete(id: %w[05991 06000]).should == <<-EOT
158
+ expect(subject.delete(id: %w[05991 06000])).to eq(<<-EOT)
163
159
  <?xml version="1.0" encoding="UTF-8"?>
164
160
  <delete>
165
161
  <id>05991</id>
@@ -169,7 +165,7 @@ describe Solr4R::Builder do
169
165
  end
170
166
 
171
167
  example do
172
- @builder.delete(query: 'office:Bridgewater').should == <<-EOT
168
+ expect(subject.delete(query: 'office:Bridgewater')).to eq(<<-EOT)
173
169
  <?xml version="1.0" encoding="UTF-8"?>
174
170
  <delete>
175
171
  <query>office:Bridgewater</query>
@@ -178,7 +174,7 @@ describe Solr4R::Builder do
178
174
  end
179
175
 
180
176
  example do
181
- @builder.delete(query: %w[office:Bridgewater office:Osaka]).should == <<-EOT
177
+ expect(subject.delete(query: %w[office:Bridgewater office:Osaka])).to eq(<<-EOT)
182
178
  <?xml version="1.0" encoding="UTF-8"?>
183
179
  <delete>
184
180
  <query>office:Bridgewater</query>
@@ -188,39 +184,45 @@ describe Solr4R::Builder do
188
184
  end
189
185
 
190
186
  example do
191
- @builder.delete(query: { office: 'Bridgewater', skills: 'Perl' }).should == <<-EOT
187
+ expect(subject.delete(query: { office: 'Bridgewater', skills: 'Perl' })).to eq(<<-EOT)
192
188
  <?xml version="1.0" encoding="UTF-8"?>
193
189
  <delete>
194
- <query>office:Bridgewater</query>
195
- <query>skills:Perl</query>
190
+ <query>office:Bridgewater skills:Perl</query>
196
191
  </delete>
197
192
  EOT
198
193
  end
199
194
 
200
195
  example do
201
- @builder.delete(query: { office: %w[Bridgewater Osaka] }).should == <<-EOT
196
+ expect(subject.delete(query: { office: %w[Bridgewater Osaka] })).to eq(<<-EOT)
202
197
  <?xml version="1.0" encoding="UTF-8"?>
203
198
  <delete>
204
- <query>office:Bridgewater</query>
205
- <query>office:Osaka</query>
199
+ <query>office:Bridgewater office:Osaka</query>
200
+ </delete>
201
+ EOT
202
+ end
203
+
204
+ example do
205
+ expect(subject.delete(query: { office: 'Bridgewater', _: { type: :edismax } })).to eq(<<-EOT)
206
+ <?xml version="1.0" encoding="UTF-8"?>
207
+ <delete>
208
+ <query>{!type=edismax}office:Bridgewater</query>
206
209
  </delete>
207
210
  EOT
208
211
  end
209
212
 
210
213
  example do
211
- @builder.delete(id: %w[05991 06000], query: { office: %w[Bridgewater Osaka] }).should == <<-EOT
214
+ expect(subject.delete(id: %w[05991 06000], query: { office: %w[Bridgewater Osaka] })).to eq(<<-EOT)
212
215
  <?xml version="1.0" encoding="UTF-8"?>
213
216
  <delete>
214
217
  <id>05991</id>
215
218
  <id>06000</id>
216
- <query>office:Bridgewater</query>
217
- <query>office:Osaka</query>
219
+ <query>office:Bridgewater office:Osaka</query>
218
220
  </delete>
219
221
  EOT
220
222
  end
221
223
 
222
224
  example do
223
- @builder.delete(query: "office:\fBridgew\ate\r").should == <<-EOT
225
+ expect(subject.delete(query: "office:\fBridgew\ate\r")).to eq(<<-EOT)
224
226
  <?xml version="1.0" encoding="UTF-8"?>
225
227
  <delete>
226
228
  <query>office:Bridgewte&#13;</query>
@@ -228,6 +230,24 @@ describe Solr4R::Builder do
228
230
  EOT
229
231
  end
230
232
 
233
+ example do
234
+ expect(subject.delete(query: 'office:Bridge&water')).to eq(<<-EOT)
235
+ <?xml version="1.0" encoding="UTF-8"?>
236
+ <delete>
237
+ <query>office:Bridge&amp;water</query>
238
+ </delete>
239
+ EOT
240
+ end
241
+
242
+ example do
243
+ expect(subject.delete(query: { office: 'Bridge&water' })).to eq(<<-EOT)
244
+ <?xml version="1.0" encoding="UTF-8"?>
245
+ <delete>
246
+ <query>office:Bridge&amp;water</query>
247
+ </delete>
248
+ EOT
249
+ end
250
+
231
251
  end
232
252
 
233
253
  end
@@ -0,0 +1,93 @@
1
+ describe Solr4R::Client do
2
+
3
+ describe '::query_string' do
4
+
5
+ [
6
+ [nil, nil],
7
+ [nil, ''],
8
+ [nil, []],
9
+ [nil, {}],
10
+
11
+ ['title:foo', 'title:foo'],
12
+ ['title:foo%26bar', 'title:foo&bar'],
13
+ ['title:foo&bar', 'title:foo&bar', false],
14
+
15
+ ['title:foo author:bar', 'title:foo author:bar'],
16
+ ['title:foo author:(bar baz)', 'title:foo author:(bar baz)'],
17
+ ['title:foo -author:(bar baz)', 'title:foo -author:(bar baz)'],
18
+
19
+ ['title:foo', %w[title:foo]],
20
+ ['title:foo%26bar', %w[title:foo&bar]],
21
+ ['title:foo&bar', %w[title:foo&bar], false],
22
+
23
+ ['title:foo author:bar', %w[title:foo author:bar]],
24
+ ['title:foo author:bar', ['title:foo', author: 'bar']],
25
+ ['title:foo author:(bar baz)', %w[title:foo author:(bar\ baz)]],
26
+ ['title:foo -author:(bar baz)', %w[title:foo -author:(bar\ baz)]],
27
+ ['title:foo -author%26:(bar baz)', %w[title:foo -author&:(bar\ baz)]],
28
+ ['title:foo -author&:(bar baz)', %w[title:foo -author&:(bar\ baz)], false],
29
+
30
+ ['title:foo', title: 'foo'],
31
+ ['title:foo%26bar', title: 'foo&bar'],
32
+ ['title:foo&bar', { title: 'foo&bar' }, false],
33
+ ['title:foo%26bar%26baz', title: 'foo&bar&baz'],
34
+ ['title:foo&bar&baz', { title: 'foo&bar&baz' }, false],
35
+
36
+ ['title:foo author:bar', title: 'foo', author: 'bar'],
37
+ ['title:foo author:(bar baz)', title: 'foo', author: '(bar baz)'],
38
+ ['title:foo -author:(bar baz)', title: 'foo', '-author' => '(bar baz)'],
39
+ ['title:foo -author%26:(bar baz)', title: 'foo', '-author&' => '(bar baz)'],
40
+ ['title:foo -author&:(bar baz)', { title: 'foo', '-author&' => '(bar baz)' }, false],
41
+
42
+ ['title:foo author:bar author:baz', title: 'foo', author: %w[bar baz]],
43
+ ['title:foo author:bar%26baz', title: 'foo', author: %w[bar&baz]],
44
+ ['title:foo author:bar&baz', { title: 'foo', author: %w[bar&baz] }, false],
45
+ ['title:foo -author:bar -author:baz', title: 'foo', '-author' => %w[bar baz]],
46
+ ['title:foo -author%26:bar -author%26:baz', title: 'foo', '-author&' => %w[bar baz]],
47
+ ['title:foo -author&:bar -author&:baz', { title: 'foo', '-author&' => %w[bar baz] }, false],
48
+
49
+ ['{!q.op=AND}title:foo', title: 'foo', _: 'q.op=AND'],
50
+ ['{!q.op=AND}title:foo author:bar', ['title:foo', author: 'bar', _: 'q.op=AND']],
51
+ ['{!q.op=AND df=title}foo', ['foo', _: 'q.op=AND df=title']],
52
+ ['{!q.op=AND df=title}foo', ['foo', _: %w[q.op=AND df=title]]],
53
+ ['{!q.op=AND df=title}foo', ['foo', _: { 'q.op' => 'AND', df: :title }]]
54
+ ].each_with_index { |(expected, *args), index|
55
+ example(index) { expect(described_class.query_string(*args)).to eq(expected) }
56
+ }
57
+
58
+ end
59
+
60
+ describe '::local_params_string' do
61
+
62
+ [
63
+ [nil, nil],
64
+ [nil, ''],
65
+ [nil, []],
66
+ [nil, {}],
67
+
68
+ ['{!q.op=AND df=title}', 'q.op=AND df=title'],
69
+ ['{!q.op=AND df=title}', %w[q.op=AND df=title]],
70
+ ['{!q.op=AND df=title}', 'q.op' => 'AND', df: :title],
71
+
72
+ ['{!type=dismax qf="myfield yourfield"}', 'type=dismax qf="myfield yourfield"'],
73
+ ['{!type=dismax qf="myfield yourfield"}', ['type=dismax', 'qf="myfield yourfield"']],
74
+ ['{!type=dismax qf="myfield yourfield"}', type: :dismax, qf: 'myfield yourfield'],
75
+
76
+ ['{!type=dismax qf="myfield%26yourfield"}', 'type=dismax qf="myfield&yourfield"'],
77
+ ['{!type=dismax qf="myfield&yourfield"}', 'type=dismax qf="myfield&yourfield"', {}, false],
78
+ ['{!type=dismax qf="myfield%26yourfield"}', ['type=dismax', 'qf="myfield&yourfield"']],
79
+ ['{!type=dismax qf=myfield%26yourfield}', type: :dismax, qf: 'myfield&yourfield'],
80
+
81
+ ['{!type=mlt qf=$mlt.fl mintf=$mlt.mintf mindf=$mlt.mindf minwl=$mlt.minwl maxwl=$mlt.maxwl}',
82
+ 'type=mlt qf=$mlt.fl mintf=$mlt.mintf mindf=$mlt.mindf minwl=$mlt.minwl maxwl=$mlt.maxwl'],
83
+ ['{!type=mlt qf=$mlt.fl mintf=$mlt.mintf mindf=$mlt.mindf minwl=$mlt.minwl maxwl=$mlt.maxwl}',
84
+ %w[type=mlt qf=$mlt.fl mintf=$mlt.mintf mindf=$mlt.mindf minwl=$mlt.minwl maxwl=$mlt.maxwl]],
85
+ ['{!type=mlt qf=$mlt.fl mintf=$mlt.mintf mindf=$mlt.mindf minwl=$mlt.minwl maxwl=$mlt.maxwl}',
86
+ %w[mintf mindf minwl maxwl], type: :mlt, qf: '$mlt.fl']
87
+ ].each_with_index { |(expected, *args), index|
88
+ example(index) { expect(described_class.local_params_string(*args)).to eq(expected) }
89
+ }
90
+
91
+ end
92
+
93
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,3 @@
1
1
  $:.unshift('lib') unless $:.first == 'lib'
2
2
 
3
3
  require 'solr4r'
4
-
5
- RSpec.configure { |config|
6
- config.expect_with(:rspec) { |c| c.syntax = [:should, :expect] }
7
- }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solr4r
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jens Wille
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-11 00:00:00.000000000 Z
11
+ date: 2015-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -109,15 +109,19 @@ files:
109
109
  - lib/solr4r.rb
110
110
  - lib/solr4r/builder.rb
111
111
  - lib/solr4r/client.rb
112
+ - lib/solr4r/client/admin.rb
113
+ - lib/solr4r/client/query.rb
114
+ - lib/solr4r/client/update.rb
112
115
  - lib/solr4r/document.rb
116
+ - lib/solr4r/endpoints.rb
113
117
  - lib/solr4r/logging.rb
114
118
  - lib/solr4r/request.rb
115
- - lib/solr4r/request_extension.rb
116
119
  - lib/solr4r/response.rb
117
120
  - lib/solr4r/result.rb
118
121
  - lib/solr4r/uri_extension.rb
119
122
  - lib/solr4r/version.rb
120
123
  - spec/solr4r/builder_spec.rb
124
+ - spec/solr4r/client_spec.rb
121
125
  - spec/spec_helper.rb
122
126
  homepage: http://github.com/blackwinter/solr4r
123
127
  licenses:
@@ -125,18 +129,39 @@ licenses:
125
129
  metadata: {}
126
130
  post_install_message: |2+
127
131
 
128
- solr4r-0.0.5 [2015-02-11]:
132
+ solr4r-0.0.6 [2015-03-18]:
129
133
 
130
- * Fixed Solr4R::Result for unsupported types.
131
- * Extended Solr4R::Result for
132
- {facet counts}[https://wiki.apache.org/solr/SolrFacetingOverview].
133
- * Extended Solr4R::Client and Solr4R::Document for
134
- MoreLikeThis[https://wiki.apache.org/solr/MoreLikeThis] queries.
135
- * Extended Solr4R::RequestUriExtension for nested params (via hashes).
134
+ * Extracted Solr4R::Endpoints from Solr4R::Client.
135
+ * Extracted Solr4R::Client::Admin, Solr4R::Client::Query and
136
+ Solr4R::Client::Update from Solr4R::Client.
137
+ * Added core to Solr4R::Client.default_uri and adjusted
138
+ Solr4R::Client::DEFAULT_SYSTEM_PATH.
139
+ * Added Solr4R::Client::Admin#cores.
140
+ * Added Solr4R::Client::Admin#fields.
141
+ * Added Solr4R::Client::Admin#analyze_document.
142
+ * Added Solr4R::Client::Admin#analyze_field.
143
+ * Added Solr4R::Client::Query#json_document.
144
+ * Added Solr4R::Client::Query#more_like_this_h (using the {request
145
+ handler}[https://cwiki.apache.org/confluence/display/solr/MoreLikeThis]).
146
+ * Added Solr4R::Client::Query#more_like_this_q (using the {query
147
+ parser}[https://cwiki.apache.org/confluence/display/solr/Other+Parsers#OtherParsers-MoreLikeThisQueryParser]).
148
+ * Added support for {local
149
+ params}[https://cwiki.apache.org/confluence/display/solr/Local+Parameters+in+Queries]
150
+ to Solr4R::Client.query_string.
151
+ * Extended Solr4R::RequestUriExtension#query_pairs to skip +nil+ values.
152
+ * Extended Solr4R::RequestUriExtension#query_pairs to allow control over
153
+ nested key's value (via +:_+).
154
+ * Refactored Solr4R::Document#more_like_this to use
155
+ Solr4R::Client#more_like_this.
156
+ * Refactored Solr4R::Builder#delete to use Solr4R::Client.query_string for
157
+ query hashes.
158
+ * Refactored Solr4R::Request preparation; dropped
159
+ Solr4R::HTTPRequestExtension.
160
+ * Refactored Solr4R::Response initialization.
136
161
 
137
162
  rdoc_options:
138
163
  - "--title"
139
- - solr4r Application documentation (v0.0.5)
164
+ - solr4r Application documentation (v0.0.6)
140
165
  - "--charset"
141
166
  - UTF-8
142
167
  - "--line-numbers"
@@ -157,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
182
  version: '0'
158
183
  requirements: []
159
184
  rubyforge_project:
160
- rubygems_version: 2.4.5
185
+ rubygems_version: 2.4.6
161
186
  signing_key:
162
187
  specification_version: 4
163
188
  summary: A Ruby client for Apache Solr.
@@ -1,44 +0,0 @@
1
- # encoding: utf-8
2
-
3
- #--
4
- ###############################################################################
5
- # #
6
- # solr4r -- A Ruby client for Apache Solr #
7
- # #
8
- # Copyright (C) 2014 Jens Wille #
9
- # #
10
- # Mir is free software: you can redistribute it and/or modify it under the #
11
- # terms of the GNU Affero General Public License as published by the Free #
12
- # Software Foundation, either version 3 of the License, or (at your option) #
13
- # any later version. #
14
- # #
15
- # solr4r is distributed in the hope that it will be useful, but WITHOUT ANY #
16
- # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS #
17
- # FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for #
18
- # more details. #
19
- # #
20
- # You should have received a copy of the GNU Affero General Public License #
21
- # along with solr4r. If not, see <http://www.gnu.org/licenses/>. #
22
- # #
23
- ###############################################################################
24
- #++
25
-
26
- require 'cgi'
27
-
28
- module Solr4R
29
-
30
- module HTTPRequestExtension
31
-
32
- def self.extended(base)
33
- base.send(:attr_accessor, :params)
34
- end
35
-
36
- def from_uri(uri)
37
- req = new(uri)
38
- req.params = uri.params
39
- req
40
- end
41
-
42
- end
43
-
44
- end