rsolr 1.0.3 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
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