rsolr 1.0.10 → 1.0.11
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 +4 -4
- data/.travis.yml +1 -0
- data/CHANGES.txt +14 -0
- data/Gemfile +1 -11
- data/README.rdoc +18 -15
- data/Rakefile +1 -10
- data/lib/rsolr/char.rb +3 -0
- data/lib/rsolr/client.rb +9 -12
- data/lib/rsolr/error.rb +2 -2
- data/lib/rsolr/response.rb +45 -15
- data/lib/rsolr/uri.rb +44 -27
- data/lib/rsolr/version.rb +1 -1
- data/lib/rsolr.rb +15 -8
- data/rsolr.gemspec +6 -4
- data/spec/api/char_spec.rb +8 -3
- data/spec/api/client_spec.rb +37 -38
- data/spec/api/connection_spec.rb +32 -30
- data/spec/api/error_spec.rb +6 -6
- data/spec/api/pagination_spec.rb +5 -5
- data/spec/api/rsolr_spec.rb +28 -8
- data/spec/api/uri_spec.rb +108 -50
- data/spec/api/xml_spec.rb +33 -34
- data/spec/spec_helper.rb +6 -1
- data/tasks/spec.rake +1 -38
- metadata +13 -13
- data/tasks/rcov.rake +0 -25
data/spec/api/xml_spec.rb
CHANGED
@@ -4,12 +4,11 @@ require 'nokogiri'
|
|
4
4
|
describe "RSolr::Xml" do
|
5
5
|
|
6
6
|
let(:generator){ RSolr::Xml::Generator.new }
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
end
|
7
|
+
|
8
|
+
builder_engines = {
|
9
|
+
:builder => { :val => false, :class => Builder::XmlMarkup, :engine => Builder::XmlMarkup.new(:indent => 0, :margin => 0, :encoding => 'UTF-8') },
|
10
|
+
:nokogiri => { :val => true, :class => Nokogiri::XML::Builder, :engine => Nokogiri::XML::Builder.new }
|
11
|
+
}
|
13
12
|
|
14
13
|
[:builder,:nokogiri].each do |engine_name|
|
15
14
|
describe engine_name do
|
@@ -25,13 +24,13 @@ describe "RSolr::Xml" do
|
|
25
24
|
|
26
25
|
before :each do
|
27
26
|
builder_engines.each_pair do |name,spec|
|
28
|
-
spec[:class].
|
27
|
+
expect(spec[:class]).not_to receive(:new) unless name == engine_name
|
29
28
|
end
|
30
29
|
end
|
31
30
|
|
32
31
|
context :xml_engine do
|
33
32
|
it "should use #{engine_name}" do
|
34
|
-
@engine[:class].
|
33
|
+
expect(@engine[:class]).to receive(:new).and_return(@engine[:engine])
|
35
34
|
generator.send(:commit)
|
36
35
|
end
|
37
36
|
end
|
@@ -42,7 +41,7 @@ describe "RSolr::Xml" do
|
|
42
41
|
[:optimize, :rollback, :commit].each do |meth|
|
43
42
|
it "#{meth} should generator xml" do
|
44
43
|
result = generator.send(meth)
|
45
|
-
result.
|
44
|
+
expect(result).to eq("<?xml version=\"1.0\" encoding=\"UTF-8\"?><#{meth}/>")
|
46
45
|
end
|
47
46
|
end
|
48
47
|
|
@@ -53,14 +52,14 @@ describe "RSolr::Xml" do
|
|
53
52
|
add_attrs = {:boost=>200.00}
|
54
53
|
result = generator.add(documents, add_attrs) do |doc|
|
55
54
|
doc.field_by_name(:name).attrs[:boost] = 10
|
56
|
-
doc.fields.size.
|
57
|
-
doc.fields_by_name(:cat).size.
|
55
|
+
expect(doc.fields.size).to eq(4)
|
56
|
+
expect(doc.fields_by_name(:cat).size).to eq(2)
|
58
57
|
end
|
59
|
-
result.
|
60
|
-
result.
|
61
|
-
result.
|
62
|
-
result.
|
63
|
-
result.
|
58
|
+
expect(result).to match(%r(name="cat">cat 1</field>))
|
59
|
+
expect(result).to match(%r(name="cat">cat 2</field>))
|
60
|
+
expect(result).to match(%r(<add boost="200.0">))
|
61
|
+
expect(result).to match(%r(boost="10"))
|
62
|
+
expect(result).to match(%r(<field name="id">1</field>))
|
64
63
|
end
|
65
64
|
|
66
65
|
# add a single hash ("doc")
|
@@ -70,8 +69,8 @@ describe "RSolr::Xml" do
|
|
70
69
|
:name=>'matt'
|
71
70
|
}
|
72
71
|
result = generator.add(data)
|
73
|
-
result.
|
74
|
-
result.
|
72
|
+
expect(result).to match(/<field name="name">matt<\/field>/)
|
73
|
+
expect(result).to match(/<field name="id">1<\/field>/)
|
75
74
|
end
|
76
75
|
|
77
76
|
# add an array of hashes
|
@@ -88,8 +87,8 @@ describe "RSolr::Xml" do
|
|
88
87
|
]
|
89
88
|
message = generator.add(data)
|
90
89
|
expected = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><add><doc><field name=\"id\">1</field><field name=\"name\">matt</field></doc><doc><field name=\"id\">2</field><field name=\"name\">sam</field></doc></add>"
|
91
|
-
message.
|
92
|
-
message.
|
90
|
+
expect(message).to match(/<field name="name">matt<\/field>/)
|
91
|
+
expect(message).to match(/<field name="name">sam<\/field>/)
|
93
92
|
end
|
94
93
|
|
95
94
|
# multiValue field support test, thanks to Fouad Mardini!
|
@@ -99,8 +98,8 @@ describe "RSolr::Xml" do
|
|
99
98
|
:name => ['matt1', 'matt2']
|
100
99
|
}
|
101
100
|
result = generator.add(data)
|
102
|
-
result.
|
103
|
-
result.
|
101
|
+
expect(result).to match(/<field name="name">matt1<\/field>/)
|
102
|
+
expect(result).to match(/<field name="name">matt2<\/field>/)
|
104
103
|
end
|
105
104
|
|
106
105
|
it 'should create an add from a single Message::Document' do
|
@@ -108,11 +107,11 @@ describe "RSolr::Xml" do
|
|
108
107
|
document.add_field('id', 1)
|
109
108
|
document.add_field('name', 'matt', :boost => 2.0)
|
110
109
|
result = generator.add(document)
|
111
|
-
result.
|
112
|
-
result.
|
113
|
-
result.
|
114
|
-
result.
|
115
|
-
result.
|
110
|
+
expect(result).to match(Regexp.escape('<?xml version="1.0" encoding="UTF-8"?>'))
|
111
|
+
expect(result).to match(/<field name="id">1<\/field>/)
|
112
|
+
expect(result).to match Regexp.escape('boost="2.0"')
|
113
|
+
expect(result).to match Regexp.escape('name="name"')
|
114
|
+
expect(result).to match Regexp.escape('matt</field>')
|
116
115
|
end
|
117
116
|
|
118
117
|
it 'should create adds from multiple Message::Documents' do
|
@@ -123,8 +122,8 @@ describe "RSolr::Xml" do
|
|
123
122
|
doc
|
124
123
|
end
|
125
124
|
result = generator.add(documents)
|
126
|
-
result.
|
127
|
-
result.
|
125
|
+
expect(result).to match(/<field name="name">matt1<\/field>/)
|
126
|
+
expect(result).to match(/<field name="name">matt2<\/field>/)
|
128
127
|
end
|
129
128
|
|
130
129
|
end
|
@@ -132,26 +131,26 @@ describe "RSolr::Xml" do
|
|
132
131
|
context :delete_by_id do
|
133
132
|
|
134
133
|
it 'should create a doc id delete' do
|
135
|
-
generator.delete_by_id(10).
|
134
|
+
expect(generator.delete_by_id(10)).to eq("<?xml version=\"1.0\" encoding=\"UTF-8\"?><delete><id>10</id></delete>")
|
136
135
|
end
|
137
136
|
|
138
137
|
it 'should create many doc id deletes' do
|
139
|
-
generator.delete_by_id([1, 2, 3]).
|
138
|
+
expect(generator.delete_by_id([1, 2, 3])).to eq("<?xml version=\"1.0\" encoding=\"UTF-8\"?><delete><id>1</id><id>2</id><id>3</id></delete>")
|
140
139
|
end
|
141
140
|
|
142
141
|
end
|
143
142
|
|
144
143
|
context :delete_by_query do
|
145
144
|
it 'should create a query delete' do
|
146
|
-
generator.delete_by_query('status:"LOST"').
|
145
|
+
expect(generator.delete_by_query('status:"LOST"')).to eq("<?xml version=\"1.0\" encoding=\"UTF-8\"?><delete><query>status:\"LOST\"</query></delete>")
|
147
146
|
end
|
148
147
|
|
149
148
|
it 'should create many query deletes' do
|
150
|
-
generator.delete_by_query(['status:"LOST"', 'quantity:0']).
|
149
|
+
expect(generator.delete_by_query(['status:"LOST"', 'quantity:0'])).to eq("<?xml version=\"1.0\" encoding=\"UTF-8\"?><delete><query>status:\"LOST\"</query><query>quantity:0</query></delete>")
|
151
150
|
end
|
152
151
|
end
|
153
152
|
|
154
153
|
end
|
155
154
|
end
|
156
155
|
|
157
|
-
end
|
156
|
+
end
|
data/spec/spec_helper.rb
CHANGED
data/tasks/spec.rake
CHANGED
@@ -1,39 +1,2 @@
|
|
1
|
-
require "rubygems"
|
2
|
-
require 'rspec'
|
3
1
|
require 'rspec/core/rake_task'
|
4
|
-
|
5
|
-
namespace :spec do
|
6
|
-
|
7
|
-
namespace :ruby do
|
8
|
-
desc 'run api specs through the Ruby implementations'
|
9
|
-
task :api do
|
10
|
-
puts "Ruby 1.8.7"
|
11
|
-
puts `rake spec:api`
|
12
|
-
puts "Ruby 1.9"
|
13
|
-
puts `rake1.9 spec:api`
|
14
|
-
puts "JRuby"
|
15
|
-
puts `jruby -S rake spec:api`
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
desc 'run api specs (mock out Solr dependency)'
|
20
|
-
RSpec::Core::RakeTask.new(:api) do |t|
|
21
|
-
|
22
|
-
t.pattern = [File.join('spec', 'spec_helper.rb')]
|
23
|
-
t.pattern += FileList[File.join('spec', 'api', '**', '*_spec.rb')]
|
24
|
-
|
25
|
-
t.verbose = true
|
26
|
-
t.rspec_opts = ['--color']
|
27
|
-
end
|
28
|
-
|
29
|
-
desc 'run integration specs'
|
30
|
-
RSpec::Core::RakeTask.new(:integration) do |t|
|
31
|
-
|
32
|
-
t.pattern = [File.join('spec', 'spec_helper.rb')]
|
33
|
-
t.pattern += FileList[File.join('spec', 'integration', '**', '*_spec.rb')]
|
34
|
-
|
35
|
-
t.verbose = true
|
36
|
-
t.rspec_opts = ['--color']
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
2
|
+
RSpec::Core::RakeTask.new(:spec)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rsolr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Antoine Latter
|
@@ -24,11 +24,12 @@ authors:
|
|
24
24
|
- Fouad Mardini
|
25
25
|
- Jeremy Hinegardner
|
26
26
|
- Nathan Witmer
|
27
|
+
- Naomi Dushay
|
27
28
|
- '"shima"'
|
28
29
|
autorequire:
|
29
30
|
bindir: bin
|
30
31
|
cert_chain: []
|
31
|
-
date:
|
32
|
+
date: 2015-02-26 00:00:00.000000000 Z
|
32
33
|
dependencies:
|
33
34
|
- !ruby/object:Gem::Dependency
|
34
35
|
name: builder
|
@@ -78,42 +79,42 @@ dependencies:
|
|
78
79
|
requirements:
|
79
80
|
- - "~>"
|
80
81
|
- !ruby/object:Gem::Version
|
81
|
-
version: 0
|
82
|
+
version: '10.0'
|
82
83
|
type: :development
|
83
84
|
prerelease: false
|
84
85
|
version_requirements: !ruby/object:Gem::Requirement
|
85
86
|
requirements:
|
86
87
|
- - "~>"
|
87
88
|
- !ruby/object:Gem::Version
|
88
|
-
version: 0
|
89
|
+
version: '10.0'
|
89
90
|
- !ruby/object:Gem::Dependency
|
90
91
|
name: rdoc
|
91
92
|
requirement: !ruby/object:Gem::Requirement
|
92
93
|
requirements:
|
93
94
|
- - "~>"
|
94
95
|
- !ruby/object:Gem::Version
|
95
|
-
version:
|
96
|
+
version: '4.0'
|
96
97
|
type: :development
|
97
98
|
prerelease: false
|
98
99
|
version_requirements: !ruby/object:Gem::Requirement
|
99
100
|
requirements:
|
100
101
|
- - "~>"
|
101
102
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
103
|
+
version: '4.0'
|
103
104
|
- !ruby/object:Gem::Dependency
|
104
105
|
name: rspec
|
105
106
|
requirement: !ruby/object:Gem::Requirement
|
106
107
|
requirements:
|
107
108
|
- - "~>"
|
108
109
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
110
|
+
version: '3.0'
|
110
111
|
type: :development
|
111
112
|
prerelease: false
|
112
113
|
version_requirements: !ruby/object:Gem::Requirement
|
113
114
|
requirements:
|
114
115
|
- - "~>"
|
115
116
|
- !ruby/object:Gem::Version
|
116
|
-
version:
|
117
|
+
version: '3.0'
|
117
118
|
description: RSolr aims to provide a simple and extensible library for working with
|
118
119
|
Solr
|
119
120
|
email:
|
@@ -148,12 +149,12 @@ files:
|
|
148
149
|
- spec/api/uri_spec.rb
|
149
150
|
- spec/api/xml_spec.rb
|
150
151
|
- spec/spec_helper.rb
|
151
|
-
- tasks/rcov.rake
|
152
152
|
- tasks/rdoc.rake
|
153
153
|
- tasks/rsolr.rake
|
154
154
|
- tasks/spec.rake
|
155
|
-
homepage: https://github.com/
|
156
|
-
licenses:
|
155
|
+
homepage: https://github.com/rsolr/rsolr
|
156
|
+
licenses:
|
157
|
+
- Apache-2.0
|
157
158
|
metadata: {}
|
158
159
|
post_install_message:
|
159
160
|
rdoc_options: []
|
@@ -171,9 +172,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
171
172
|
version: '0'
|
172
173
|
requirements: []
|
173
174
|
rubyforge_project: rsolr
|
174
|
-
rubygems_version: 2.
|
175
|
+
rubygems_version: 2.4.3
|
175
176
|
signing_key:
|
176
177
|
specification_version: 4
|
177
178
|
summary: A Ruby client for Apache Solr
|
178
179
|
test_files: []
|
179
|
-
has_rdoc:
|
data/tasks/rcov.rake
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
# require 'rake'
|
2
|
-
# require 'spec/rake/spectask'
|
3
|
-
#
|
4
|
-
# desc 'run specs with rcov'
|
5
|
-
# Spec::Rake::SpecTask.new('rcov') do |t|
|
6
|
-
# t.spec_files = FileList['spec/**/*_spec.rb']
|
7
|
-
# t.rcov = true
|
8
|
-
# t.rcov_dir = File.join('coverage', 'all')
|
9
|
-
# # --only-uncovered
|
10
|
-
# t.rcov_opts.concat(['--exclude', 'spec', '--sort', 'coverage'])
|
11
|
-
# end
|
12
|
-
#
|
13
|
-
# namespace :rcov do
|
14
|
-
# desc 'run api specs with rcov'
|
15
|
-
# Spec::Rake::SpecTask.new('api') do |t|
|
16
|
-
# rm_f "coverage"
|
17
|
-
# rm_f "coverage.data"
|
18
|
-
# t.spec_files = FileList['spec/spec_helper.rb', 'spec/api/**/*_spec.rb']
|
19
|
-
# t.rcov = true
|
20
|
-
# t.rcov_dir = File.join('coverage', 'api')
|
21
|
-
# # --only-uncovered
|
22
|
-
# t.rcov_opts.concat(['--exclude', 'spec', '--sort', 'coverage'])
|
23
|
-
# end
|
24
|
-
#
|
25
|
-
# end
|