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 ADDED
@@ -0,0 +1,12 @@
1
+ .DS_Store
2
+ .yardoc/
3
+ pkg/*
4
+ apache-solr-3.3.0/
5
+ coverage/
6
+ doc/
7
+ example/
8
+
9
+ Gemfile.lock
10
+
11
+ *.gem
12
+ .bundle
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
@@ -0,0 +1,15 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
4
+
5
+ gem "builder", "~> 2.1.2"
6
+
7
+ group :development do
8
+ gem "rake", "~> 0.9.2"
9
+ gem "rdoc", "~> 3.9.4"
10
+ end
11
+
12
+ group :test do
13
+ gem "rake", "~> 0.9.2"
14
+ gem "rspec", "~> 2.6.0"
15
+ end
data/Rakefile CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'rake'
2
2
  require 'rake/testtask'
3
+ require 'bundler/gem_tasks'
3
4
 
4
5
  require 'rubygems/package_task'
5
6
 
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
@@ -0,0 +1,10 @@
1
+ namespace :rsolr do
2
+
3
+ namespace :solr do
4
+ desc "Starts the HTTP server (port 9999) used for running HTTP connection tests"
5
+ task :start do
6
+ system "cd jetty; java -jar start.jar"
7
+ end
8
+ end
9
+
10
+ end
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
- hash: 17
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
- date: 2011-11-09 00:00:00 Z
29
- dependencies:
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
- prerelease: false
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
- hash: 7
53
- segments:
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
- type: :development
62
- - !ruby/object:Gem::Dependency
63
- requirement: &id003 !ruby/object:Gem::Requirement
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
- - !ruby/object:Gem::Dependency
79
- requirement: &id004 !ruby/object:Gem::Requirement
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
- - !ruby/object:Gem::Dependency
95
- requirement: &id005 !ruby/object:Gem::Requirement
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
- hash: 15
101
- segments:
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
- type: :runtime
110
- description: RSolr aims to provide a simple and extensible library for working with Solr
111
- email: goodieboy@gmail.com
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
- extra_rdoc_files:
74
+ extra_rdoc_files: []
75
+ files:
76
+ - .gitignore
77
+ - CHANGES.txt
78
+ - Gemfile
117
79
  - LICENSE
118
80
  - README.rdoc
119
- files:
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
- - Rakefile
142
- - tasks/spec.rake
100
+ - tasks/rcov.rake
143
101
  - tasks/rdoc.rake
144
- homepage: http://github.com/mwmitchell/rsolr
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
- hash: 3
158
- segments:
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
- hash: 3
167
- segments:
168
- - 0
169
- version: "0"
118
+ requirements:
119
+ - - ! '>='
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
170
122
  requirements: []
171
-
172
- rubyforge_project:
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