rsolr 1.0.3 → 1.0.5
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.
- data/.gitignore +12 -0
- data/CHANGES.txt +8 -0
- data/Gemfile +15 -0
- data/Rakefile +1 -0
- data/lib/rsolr.rb +1 -3
- data/rsolr.gemspec +24 -0
- data/tasks/rcov.rake +25 -0
- data/tasks/rsolr.rake +10 -0
- metadata +68 -129
- data/VERSION +0 -1
- data/lib/rsolr-direct.rb +0 -111
data/.gitignore
ADDED
data/CHANGES.txt
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
1.0.4
|
2
|
+
- The "builder" gem dependency is less strict: ~> 2.1.2
|
3
|
+
- RSolr.version is no longer read from a file
|
4
|
+
- Gemspec updated -- less strict dev/test versions
|
5
|
+
- Jeweler is no longer used for building the gemspec
|
6
|
+
1.0.3
|
7
|
+
- Proper encodings in Ruby 1.9
|
8
|
+
- Applied pull request from https://github.com/mwmitchell/rsolr/pull/20
|
data/Gemfile
ADDED
data/Rakefile
CHANGED
data/lib/rsolr.rb
CHANGED
@@ -6,9 +6,7 @@ module RSolr
|
|
6
6
|
|
7
7
|
%W(Response Char Client Error Connection Uri Xml).each{|n|autoload n.to_sym, "rsolr/#{n.downcase}"}
|
8
8
|
|
9
|
-
def self.version
|
10
|
-
@version ||= File.read(File.join(File.dirname(__FILE__), '..', 'VERSION')).chomp
|
11
|
-
end
|
9
|
+
def self.version; "1.0.5" end
|
12
10
|
|
13
11
|
VERSION = self.version
|
14
12
|
|
data/rsolr.gemspec
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
|
4
|
+
require "rsolr"
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "rsolr"
|
8
|
+
s.summary = "A Ruby client for Apache Solr"
|
9
|
+
s.description = %q{RSolr aims to provide a simple and extensible library for working with Solr}
|
10
|
+
s.version = RSolr.version
|
11
|
+
s.authors = ["Matt Mitchell", "Jeremy Hinegardner", "Mat Brown", "Mike Perham", "Nathan Witmer", "Peter Kieltyka", "Randy Souza", "shairon toledo", "shima", "Chris Beer", "Jonathan Rochkind"]
|
12
|
+
s.email = ["goodieboy@gmail.com"]
|
13
|
+
s.homepage = "https://github.com/mwmitchell/rsolr"
|
14
|
+
s.rubyforge_project = "rsolr"
|
15
|
+
s.files = `git ls-files`.split("\n")
|
16
|
+
s.test_files = `git ls-files -- {spec}/*`.split("\n")
|
17
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
18
|
+
s.require_paths = ["lib"]
|
19
|
+
|
20
|
+
s.add_dependency 'builder', '~>2.1.2'
|
21
|
+
s.add_development_dependency 'rake', '~>0.9.2'
|
22
|
+
s.add_development_dependency 'rdoc', '~>3.9.4'
|
23
|
+
s.add_development_dependency 'rspec', '~>2.6.0'
|
24
|
+
end
|
data/tasks/rcov.rake
ADDED
@@ -0,0 +1,25 @@
|
|
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
|
data/tasks/rsolr.rake
ADDED
metadata
CHANGED
@@ -1,15 +1,10 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: rsolr
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.5
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- 3
|
10
|
-
version: 1.0.3
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Matt Mitchell
|
14
9
|
- Jeremy Hinegardner
|
15
10
|
- Mat Brown
|
@@ -24,103 +19,66 @@ authors:
|
|
24
19
|
autorequire:
|
25
20
|
bindir: bin
|
26
21
|
cert_chain: []
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
32
|
-
none: false
|
33
|
-
requirements:
|
34
|
-
- - "="
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
hash: 7
|
37
|
-
segments:
|
38
|
-
- 3
|
39
|
-
- 0
|
40
|
-
- 0
|
41
|
-
version: 3.0.0
|
42
|
-
version_requirements: *id001
|
22
|
+
date: 2011-11-26 00:00:00.000000000Z
|
23
|
+
dependencies:
|
24
|
+
- !ruby/object:Gem::Dependency
|
43
25
|
name: builder
|
44
|
-
|
45
|
-
type: :runtime
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
26
|
+
requirement: &70183668711840 !ruby/object:Gem::Requirement
|
48
27
|
none: false
|
49
|
-
requirements:
|
50
|
-
- -
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
|
53
|
-
|
54
|
-
- 1
|
55
|
-
- 6
|
56
|
-
- 4
|
57
|
-
version: 1.6.4
|
58
|
-
version_requirements: *id002
|
59
|
-
name: jeweler
|
28
|
+
requirements:
|
29
|
+
- - ~>
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: 2.1.2
|
32
|
+
type: :runtime
|
60
33
|
prerelease: false
|
61
|
-
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
|
34
|
+
version_requirements: *70183668711840
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: rake
|
37
|
+
requirement: &70183668711040 !ruby/object:Gem::Requirement
|
64
38
|
none: false
|
65
|
-
requirements:
|
66
|
-
- -
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
hash: 63
|
69
|
-
segments:
|
70
|
-
- 0
|
71
|
-
- 9
|
72
|
-
- 2
|
39
|
+
requirements:
|
40
|
+
- - ~>
|
41
|
+
- !ruby/object:Gem::Version
|
73
42
|
version: 0.9.2
|
74
|
-
version_requirements: *id003
|
75
|
-
name: rake
|
76
|
-
prerelease: false
|
77
43
|
type: :development
|
78
|
-
|
79
|
-
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: *70183668711040
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rdoc
|
48
|
+
requirement: &70183668710060 !ruby/object:Gem::Requirement
|
80
49
|
none: false
|
81
|
-
requirements:
|
82
|
-
- -
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
hash: 43
|
85
|
-
segments:
|
86
|
-
- 3
|
87
|
-
- 9
|
88
|
-
- 4
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
89
53
|
version: 3.9.4
|
90
|
-
version_requirements: *id004
|
91
|
-
name: rdoc
|
92
|
-
prerelease: false
|
93
54
|
type: :development
|
94
|
-
|
95
|
-
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: *70183668710060
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: rspec
|
59
|
+
requirement: &70183668709340 !ruby/object:Gem::Requirement
|
96
60
|
none: false
|
97
|
-
requirements:
|
98
|
-
- -
|
99
|
-
- !ruby/object:Gem::Version
|
100
|
-
|
101
|
-
|
102
|
-
- 2
|
103
|
-
- 1
|
104
|
-
- 2
|
105
|
-
version: 2.1.2
|
106
|
-
version_requirements: *id005
|
107
|
-
name: builder
|
61
|
+
requirements:
|
62
|
+
- - ~>
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: 2.6.0
|
65
|
+
type: :development
|
108
66
|
prerelease: false
|
109
|
-
|
110
|
-
description: RSolr aims to provide a simple and extensible library for working with
|
111
|
-
|
67
|
+
version_requirements: *70183668709340
|
68
|
+
description: RSolr aims to provide a simple and extensible library for working with
|
69
|
+
Solr
|
70
|
+
email:
|
71
|
+
- goodieboy@gmail.com
|
112
72
|
executables: []
|
113
|
-
|
114
73
|
extensions: []
|
115
|
-
|
116
|
-
|
74
|
+
extra_rdoc_files: []
|
75
|
+
files:
|
76
|
+
- .gitignore
|
77
|
+
- CHANGES.txt
|
78
|
+
- Gemfile
|
117
79
|
- LICENSE
|
118
80
|
- README.rdoc
|
119
|
-
|
120
|
-
- LICENSE
|
121
|
-
- README.rdoc
|
122
|
-
- VERSION
|
123
|
-
- lib/rsolr-direct.rb
|
81
|
+
- Rakefile
|
124
82
|
- lib/rsolr.rb
|
125
83
|
- lib/rsolr/char.rb
|
126
84
|
- lib/rsolr/client.rb
|
@@ -129,6 +87,7 @@ files:
|
|
129
87
|
- lib/rsolr/response.rb
|
130
88
|
- lib/rsolr/uri.rb
|
131
89
|
- lib/rsolr/xml.rb
|
90
|
+
- rsolr.gemspec
|
132
91
|
- spec/api/char_spec.rb
|
133
92
|
- spec/api/client_spec.rb
|
134
93
|
- spec/api/connection_spec.rb
|
@@ -138,52 +97,32 @@ files:
|
|
138
97
|
- spec/api/uri_spec.rb
|
139
98
|
- spec/api/xml_spec.rb
|
140
99
|
- spec/spec_helper.rb
|
141
|
-
-
|
142
|
-
- tasks/spec.rake
|
100
|
+
- tasks/rcov.rake
|
143
101
|
- tasks/rdoc.rake
|
144
|
-
|
102
|
+
- tasks/rsolr.rake
|
103
|
+
- tasks/spec.rake
|
104
|
+
homepage: https://github.com/mwmitchell/rsolr
|
145
105
|
licenses: []
|
146
|
-
|
147
106
|
post_install_message:
|
148
107
|
rdoc_options: []
|
149
|
-
|
150
|
-
require_paths:
|
108
|
+
require_paths:
|
151
109
|
- lib
|
152
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
110
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
153
111
|
none: false
|
154
|
-
requirements:
|
155
|
-
- -
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
|
158
|
-
|
159
|
-
- 0
|
160
|
-
version: "0"
|
161
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
|
+
requirements:
|
113
|
+
- - ! '>='
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: '0'
|
116
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
162
117
|
none: false
|
163
|
-
requirements:
|
164
|
-
- -
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
|
167
|
-
segments:
|
168
|
-
- 0
|
169
|
-
version: "0"
|
118
|
+
requirements:
|
119
|
+
- - ! '>='
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '0'
|
170
122
|
requirements: []
|
171
|
-
|
172
|
-
|
173
|
-
rubygems_version: 1.8.10
|
123
|
+
rubyforge_project: rsolr
|
124
|
+
rubygems_version: 1.8.11
|
174
125
|
signing_key:
|
175
126
|
specification_version: 3
|
176
127
|
summary: A Ruby client for Apache Solr
|
177
|
-
test_files:
|
178
|
-
- spec/api/char_spec.rb
|
179
|
-
- spec/api/client_spec.rb
|
180
|
-
- spec/api/connection_spec.rb
|
181
|
-
- spec/api/error_spec.rb
|
182
|
-
- spec/api/pagination_spec.rb
|
183
|
-
- spec/api/rsolr_spec.rb
|
184
|
-
- spec/api/uri_spec.rb
|
185
|
-
- spec/api/xml_spec.rb
|
186
|
-
- spec/spec_helper.rb
|
187
|
-
- Rakefile
|
188
|
-
- tasks/spec.rake
|
189
|
-
- tasks/rdoc.rake
|
128
|
+
test_files: []
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
1.0.3
|
data/lib/rsolr-direct.rb
DELETED
@@ -1,111 +0,0 @@
|
|
1
|
-
require 'java'
|
2
|
-
require 'rubygems'
|
3
|
-
require 'rsolr'
|
4
|
-
|
5
|
-
#
|
6
|
-
# Connection for JRuby + DirectSolrConnection
|
7
|
-
#
|
8
|
-
module RSolr::Direct
|
9
|
-
|
10
|
-
# load the java libs that ship with rsolr-direct
|
11
|
-
# RSolr.load_java_libs
|
12
|
-
# rsolr = RSolr.connect :direct, :solr_home => ''
|
13
|
-
def self.load_java_libs apache_solr_dir
|
14
|
-
@java_libs_loaded ||= (
|
15
|
-
base_dir = File.expand_path(apache_solr_dir)
|
16
|
-
['lib', 'dist'].each do |sub|
|
17
|
-
Dir[File.join(base_dir, sub, '*.jar')].each do |jar|
|
18
|
-
require jar
|
19
|
-
end
|
20
|
-
end
|
21
|
-
true
|
22
|
-
)
|
23
|
-
end
|
24
|
-
|
25
|
-
RSolr.class_eval do
|
26
|
-
# RSolr.direct_connect :solr_home => 'apache-solr/example/solr'
|
27
|
-
# RSolr.direct_connect java_solr_core
|
28
|
-
# RSolr.direct_connect java_direct_solr_connection
|
29
|
-
def self.direct_connect *args, &blk
|
30
|
-
client = RSolr::Client.new RSolr::Direct::Connection.new(*args), {:url => false}
|
31
|
-
if block_given?
|
32
|
-
yield client
|
33
|
-
client.connection.close
|
34
|
-
nil
|
35
|
-
else
|
36
|
-
client
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
class Connection
|
42
|
-
|
43
|
-
attr_accessor :opts
|
44
|
-
|
45
|
-
class MissingRequiredJavaLibs < RuntimeError
|
46
|
-
end
|
47
|
-
|
48
|
-
class InvalidSolrHome < RuntimeError
|
49
|
-
end
|
50
|
-
|
51
|
-
# opts can be an instance of org.apache.solr.servlet.DirectSolrConnection
|
52
|
-
# if opts is NOT an instance of org.apache.solr.servlet.DirectSolrConnection
|
53
|
-
# then...
|
54
|
-
# required: opts[:solr_home] is absolute path to solr home (the directory with "data", "config" etc.)
|
55
|
-
def initialize opts
|
56
|
-
begin
|
57
|
-
org.apache.solr.servlet.DirectSolrConnection
|
58
|
-
rescue NameError
|
59
|
-
raise MissingRequiredJavaLibs
|
60
|
-
end
|
61
|
-
if opts.is_a?(Hash) and opts[:solr_home]
|
62
|
-
raise InvalidSolrHome unless File.exists?(opts[:solr_home])
|
63
|
-
opts[:data_dir] ||= File.join(opts[:solr_home], 'data')
|
64
|
-
@opts = opts
|
65
|
-
elsif opts.class.to_s == "Java::OrgApacheSolrCore::SolrCore"
|
66
|
-
@direct = org.apache.solr.servlet.DirectSolrConnection.new(opts)
|
67
|
-
elsif opts.class.to_s == "Java::OrgApacheSolrServlet::DirectSolrConnection"
|
68
|
-
@direct = opts
|
69
|
-
end
|
70
|
-
opts[:auto_connect] = true unless opts.key?(:auto_connect)
|
71
|
-
self.direct if opts[:auto_connect]
|
72
|
-
end
|
73
|
-
|
74
|
-
# sets the @direct instance variable if it has not yet been set
|
75
|
-
def direct
|
76
|
-
@direct ||= org.apache.solr.servlet.DirectSolrConnection.new(opts[:solr_home], @opts[:data_dir], nil)
|
77
|
-
end
|
78
|
-
|
79
|
-
# rsolr.connection.open
|
80
|
-
alias_method :open, :direct
|
81
|
-
|
82
|
-
def close
|
83
|
-
if @direct
|
84
|
-
@direct.close
|
85
|
-
@direct = nil
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
# send a request to the connection
|
90
|
-
def execute client, request_context
|
91
|
-
#data = request_context[:data]
|
92
|
-
#data = data.to_xml if data.respond_to?(:to_xml)
|
93
|
-
url = [request_context[:path], request_context[:query]].join("?")
|
94
|
-
url = "/" + url unless url[0].chr == "/"
|
95
|
-
begin
|
96
|
-
body = direct.request(url, request_context[:data])
|
97
|
-
rescue
|
98
|
-
$!.extend RSolr::Error::SolrContext
|
99
|
-
$!.request = request_context
|
100
|
-
raise $!
|
101
|
-
end
|
102
|
-
{
|
103
|
-
:status => 200,
|
104
|
-
:body => body,
|
105
|
-
:headers => {}
|
106
|
-
}
|
107
|
-
end
|
108
|
-
|
109
|
-
end
|
110
|
-
|
111
|
-
end
|