xapian-full-alaveteli 1.2.9.5 → 1.4.18.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 02c1290790f5a41e7a2e5a65a09518446cd913c1e19a4deccbfaccd990e8e00b
4
+ data.tar.gz: 98764e20b7e188648330772069a595bcb51ab03771384dab12383bd3e5a3e3cb
5
+ SHA512:
6
+ metadata.gz: 03c228c5463c8807b578d86e74e127c4ed564419c67b751ae5892d488bb78dd7de2986b417a57ee9a27b4cc7592f04d82108618062a7a9008605d0703ac240d7
7
+ data.tar.gz: ca8c2179f614c78a38190855a1bba3d2e74671504731489f842e65f6e2a899ef9299d320865b7082e8048d2bfa3038e381c96a54d73ca812f03eec1b71a60bf1
data/Rakefile CHANGED
@@ -1,5 +1,5 @@
1
1
  require 'rbconfig'
2
- c = Config::CONFIG
2
+ c = RbConfig::CONFIG
3
3
 
4
4
  begin
5
5
  require 'bundler'
@@ -13,13 +13,14 @@ def system!(cmd)
13
13
  system(cmd) or raise
14
14
  end
15
15
 
16
- ver = '1.2.9'
16
+ ver = '1.4.18'
17
+ iter = '1'
17
18
  core = "xapian-core-#{ver}"
18
19
  bindings = "xapian-bindings-#{ver}"
19
20
 
20
21
  task :default do
21
22
  [core,bindings].each do |x|
22
- system! "tar -xzvf #{x}.tar.gz"
23
+ system! "tar -xJvf #{x}.tar.xz"
23
24
  end
24
25
 
25
26
  prefix = Dir.pwd
@@ -37,7 +38,7 @@ task :default do
37
38
  if have_bundler
38
39
  # Maybe Bundler is building us in a temporary directory, and will move us to
39
40
  # the system ruby gems directory once built.
40
- system! "make clean all LDFLAGS='-R#{Bundler.rubygems.gem_dir}/gems/xapian-full-alaveteli-1.2.9.5/lib'"
41
+ system! "make clean all LDFLAGS='-R#{Bundler.rubygems.gem_dir}/gems/xapian-full-alaveteli-#{ver}.#{iter}/lib'"
41
42
  else
42
43
  system! "make clean all"
43
44
  end
data/lib/xapian.rb CHANGED
@@ -4,7 +4,8 @@
4
4
  # Original version by Paul Legato (plegato@nks.net), 4/20/06.
5
5
  #
6
6
  # Copyright (C) 2006 Networked Knowledge Systems, Inc.
7
- # Copyright (C) 2008 Olly Betts
7
+ # Copyright (C) 2008,2011,2019 Olly Betts
8
+ # Copyright (C) 2010 Richard Boulton
8
9
  #
9
10
  # This program is free software; you can redistribute it and/or
10
11
  # modify it under the terms of the GNU General Public License as
@@ -43,25 +44,27 @@ module Xapian
43
44
 
44
45
  # iterate over two dangerous iterators (i.e. those that can cause segfaults
45
46
  # if used improperly.)
46
- # Return the results as an Array.
47
+ # If block_given? then the results are fed to it one by one, otherwise the
48
+ # results are returned as an Array.
47
49
  # Users should never need to use this method.
48
50
  #
49
- # Takes a block that returns some appropriate Ruby object to wrap the
50
- # underlying Iterator
51
- def _safelyIterate(dangerousStart, dangerousEnd) #:nodoc:
52
- retval = Array.new
53
-
51
+ # wrapper is a lambda that returns some appropriate Ruby object to wrap the
52
+ # results from the underlying Iterator
53
+ def _safelyIterate(dangerousStart, dangerousEnd, wrapper) #:nodoc:
54
54
  item = dangerousStart
55
- lastTerm = dangerousEnd
56
-
57
- return retval if dangerousStart.equals(dangerousEnd)
58
-
59
- begin
60
- retval.push(yield(item))
61
- item.next()
62
- end while not item.equals(lastTerm) # must use primitive C++ comparator
63
-
64
- return retval
55
+ if block_given?
56
+ while not item.equals(dangerousEnd) do
57
+ yield wrapper.call(item)
58
+ item.next()
59
+ end
60
+ else
61
+ retval = Array.new
62
+ while not item.equals(dangerousEnd) do
63
+ retval.push(wrapper.call(item))
64
+ item.next()
65
+ end
66
+ return retval
67
+ end
65
68
  end # _safelyIterate
66
69
  module_function :_safelyIterate
67
70
 
@@ -86,7 +89,7 @@ module Xapian
86
89
  # non-iterative data.
87
90
  # (MSetIterator is not dangerous, but it is inconvenient to use from a Ruby
88
91
  # idiom, so we wrap it..)
89
- class Xapian::Match
92
+ class Xapian::Match
90
93
  attr_accessor :docid, :document, :rank, :weight, :collapse_count, :percent
91
94
 
92
95
  def initialize(docid, document, rank, weight, collapse_count, percent)
@@ -99,10 +102,9 @@ module Xapian
99
102
  end # initialize
100
103
 
101
104
  def ==(other)
102
- return other.is_a?(Xapian::Match) && other.docid == @docid && other.rank == @rank &&
105
+ return other.is_a?(Xapian::Match) && other.docid == @docid && other.rank == @rank &&
103
106
  other.weight == @weight && other.collapse_count == @collapse_count && other.percent == @percent
104
107
  end
105
-
106
108
  end # class Xapian::Match
107
109
 
108
110
  # Ruby wrapper for an ExpandTerm, i.e. a Xapian::ESetIterator in C++
@@ -124,82 +126,119 @@ module Xapian
124
126
 
125
127
  # Ruby wrapper for Xapian::ValueIterator
126
128
  class Xapian::Value
127
- attr_accessor :value, :valueno
128
-
129
- def initialize(value, valueno)
129
+ attr_accessor :value, :valueno, :docid
130
+
131
+ def initialize(value, valueno, docid)
130
132
  @value = value
131
133
  @valueno = valueno
134
+ @docid = docid
132
135
  end # initialize
133
136
 
134
137
  def ==(other)
135
- return other.is_a?(Xapian::Value) && other.value == @value && other.valueno == @valueno
138
+ return other.is_a?(Xapian::Value) && other.value == @value && other.valueno == @valueno && other.docid == @docid
136
139
  end
137
140
  end # Xapian::Value
138
141
 
142
+ # Refer to the
143
+ # {Xapian::Document C++ API documentation}[https://xapian.org/docs/apidoc/html/classXapian_1_1Document.html]
144
+ # for methods not specific to Ruby.
139
145
  #--
140
146
  # Extend Xapian::Document with a nice wrapper for its nasty input_iterators
141
147
  class Xapian::Document
142
- def terms
143
- Xapian._safelyIterate(self._dangerous_termlist_begin(), self._dangerous_termlist_end()) { |item|
144
- Xapian::Term.new(item.term, item.wdf)
145
- }
148
+ def terms(&block)
149
+ Xapian._safelyIterate(self._dangerous_termlist_begin(),
150
+ self._dangerous_termlist_end(),
151
+ lambda {
152
+ |item| Xapian::Term.new(item.term, item.wdf)
153
+ },
154
+ &block)
146
155
  end # terms
147
156
 
148
- def values
149
- Xapian._safelyIterate(self._dangerous_values_begin(), self._dangerous_values_end()) { |item|
150
- Xapian::Value.new(item.value, item.valueno)
151
- }
152
- end # terms
157
+ def values(&block)
158
+ Xapian._safelyIterate(self._dangerous_values_begin(),
159
+ self._dangerous_values_end(),
160
+ lambda {
161
+ |item| Xapian::Value.new(item.value,
162
+ item.valueno,
163
+ 0)
164
+ },
165
+ &block)
166
+ end # values
153
167
 
154
168
  end # class Xapian::Document
155
169
 
170
+ # Refer to the
171
+ # {Xapian::Query C++ API documentation}[https://xapian.org/docs/apidoc/html/classXapian_1_1Query.html]
172
+ # for methods not specific to Ruby.
156
173
  #--
157
174
  # Extend Xapian::Query with a nice wrapper for its dangerous iterators
158
175
  class Xapian::Query
159
- def terms
160
- Xapian._safelyIterate(self._dangerous_terms_begin(), self._dangerous_terms_end()) { |item|
161
- Xapian::Term.new(item.term, item.wdf)
162
- # termfreq is not supported by TermIterators from Queries
163
- }
164
- end
176
+ def terms(&block)
177
+ # termfreq is not supported by TermIterators from Queries
178
+ Xapian._safelyIterate(self._dangerous_terms_begin(),
179
+ self._dangerous_terms_end(),
180
+ lambda {
181
+ |item| Xapian::Term.new(item.term, item.wdf)
182
+ },
183
+ &block)
184
+ end # terms
185
+
186
+ def unique_terms(&block)
187
+ # termfreq is not supported by TermIterators from Queries
188
+ Xapian._safelyIterate(self._dangerous_unique_terms_begin(),
189
+ self._dangerous_unique_terms_end(),
190
+ lambda {
191
+ |item| Xapian::Term.new(item.term, item.wdf)
192
+ },
193
+ &block)
194
+ end # unique_terms
165
195
  end # Xapian::Query
166
196
 
197
+ # Refer to the
198
+ # {Xapian::Enquire C++ API documentation}[https://xapian.org/docs/apidoc/html/classXapian_1_1Enquire.html]
199
+ # for methods not specific to Ruby.
167
200
  #--
168
201
  # Extend Xapian::Enquire with a nice wrapper for its dangerous iterators
169
202
  class Xapian::Enquire
170
203
  # Get matching terms for some document.
171
204
  # document can be either a Xapian::DocID or a Xapian::MSetIterator
172
- def matching_terms(document)
173
- Xapian._safelyIterate(self._dangerous_matching_terms_begin(document),
174
- self._dangerous_matching_terms_end(document)) { |item|
175
- Xapian::Term.new(item.term, item.wdf)
176
- }
177
- end
205
+ def matching_terms(document, &block)
206
+ Xapian._safelyIterate(self._dangerous_matching_terms_begin(document),
207
+ self._dangerous_matching_terms_end(document),
208
+ lambda { |item| Xapian::Term.new(item.term, item.wdf) },
209
+ &block)
210
+ end # matching_terms
178
211
  end # Xapian::Enquire
179
212
 
213
+ # Refer to the
214
+ # {Xapian::MSet C++ API documentation}[https://xapian.org/docs/apidoc/html/classXapian_1_1MSet.html]
215
+ # for methods not specific to Ruby.
216
+ #--
180
217
  # MSetIterators are not dangerous, just inconvenient to use within a Ruby
181
218
  # programming idiom. So we wrap them.
182
219
  class Xapian::MSet
183
- def matches
184
- Xapian._safelyIterate(self._begin(),
185
- self._end()) { |item|
186
- Xapian::Match.new(item.docid, item.document, item.rank, item.weight, item.collapse_count, item.percent)
187
- }
188
-
220
+ def matches(&block)
221
+ Xapian._safelyIterate(self._begin(),
222
+ self._end(),
223
+ lambda { |item| Xapian::Match.new(item.docid, item.document, item.rank, item.weight, item.collapse_count, item.percent) },
224
+ &block)
189
225
  end # matches
190
226
  end # Xapian::MSet
191
227
 
228
+ # Refer to the
229
+ # {Xapian::ESet C++ API documentation}[https://xapian.org/docs/apidoc/html/classXapian_1_1ESet.html]
230
+ # for methods not specific to Ruby.
231
+ #--
192
232
  # ESetIterators are not dangerous, just inconvenient to use within a Ruby
193
233
  # programming idiom. So we wrap them.
194
234
  class Xapian::ESet
195
- def terms
196
- Xapian._safelyIterate(self._begin(),
197
- self._end()) { |item|
198
- # note: in the ExpandTerm wrapper, we implicitly rename
199
- # ESetIterator#term() (defined in xapian.i) to ExpandTerm#term()
200
- Xapian::ExpandTerm.new(item.term, item.weight)
201
- }
202
-
235
+ def terms(&block)
236
+ # note: in the ExpandTerm wrapper, we implicitly rename
237
+ # ESetIterator#term() (defined in xapian-headers.i) to ExpandTerm#term()
238
+ Xapian._safelyIterate(self._begin(),
239
+ self._end(),
240
+ lambda { |item| Xapian::ExpandTerm.new(item.term, item.weight) },
241
+ &block)
203
242
  end # terms
204
243
  end # Xapian::ESet
205
244
 
@@ -221,45 +260,148 @@ module Xapian
221
260
  end
222
261
  end # Xapian::Posting
223
262
 
263
+ # Refer to the
264
+ # {Xapian::Database C++ API documentation}[https://xapian.org/docs/apidoc/html/classXapian_1_1Database.html]
265
+ # for methods not specific to Ruby.
224
266
  #--
225
- # Wrap some dangerous iterators..
267
+ # Wrap some dangerous iterators.
226
268
  class Xapian::Database
227
269
  # Returns an Array of all Xapian::Terms for this database.
228
- def allterms
229
- Xapian._safelyIterate(self._dangerous_allterms_begin(),
230
- self._dangerous_allterms_end()) { |item|
231
- Xapian::Term.new(item.term, 0, item.termfreq)
232
- }
270
+ def allterms(pref = '', &block)
271
+ Xapian._safelyIterate(self._dangerous_allterms_begin(pref),
272
+ self._dangerous_allterms_end(pref),
273
+ lambda { |item| Xapian::Term.new(item.term, 0, item.termfreq) },
274
+ &block)
233
275
  end # allterms
234
276
 
277
+ # Returns an Array of all metadata keys for this database.
278
+ def metadata_keys(pref = '', &block)
279
+ Xapian._safelyIterate(self._dangerous_metadata_keys_begin(pref),
280
+ self._dangerous_metadata_keys_end(pref),
281
+ lambda { |item| item.term },
282
+ &block)
283
+ end # metadata_keys
284
+
235
285
  # Returns an Array of Xapian::Postings for the given term.
236
286
  # term is a string.
237
- def postlist(term)
238
- Xapian._safelyIterate(self._dangerous_postlist_begin(term),
239
- self._dangerous_postlist_end(term)) { |item|
240
- Xapian::Posting.new(item.docid, item.doclength, item.wdf)
241
- }
287
+ def postlist(term, &block)
288
+ Xapian._safelyIterate(self._dangerous_postlist_begin(term),
289
+ self._dangerous_postlist_end(term),
290
+ lambda { |item| Xapian::Posting.new(item.docid, item.doclength, item.wdf) },
291
+ &block)
242
292
  end # postlist(term)
243
293
 
244
294
  # Returns an Array of Terms for the given docid.
245
- def termlist(docid)
295
+ def termlist(docid, &block)
246
296
  Xapian._safelyIterate(self._dangerous_termlist_begin(docid),
247
- self._dangerous_termlist_end(docid)) { |item|
248
- Xapian::Term.new(item.term, item.wdf, item.termfreq)
249
- }
297
+ self._dangerous_termlist_end(docid),
298
+ lambda { |item| Xapian::Term.new(item.term, item.wdf, item.termfreq) },
299
+ &block)
250
300
  end # termlist(docid)
251
-
252
301
 
253
- # Returns an Array of Xapian::Termpos objects for the given term (a String)
302
+ # Returns an Array of term positions for the given term (a String)
254
303
  # in the given docid.
255
- def positionlist(docid, term)
304
+ def positionlist(docid, term, &block)
256
305
  Xapian._safelyIterate(self._dangerous_positionlist_begin(docid, term),
257
- self._dangerous_positionlist_end(docid, term)) { |item|
258
- item.termpos
259
- }
306
+ self._dangerous_positionlist_end(docid, term),
307
+ lambda { |item| item.termpos },
308
+ &block)
260
309
  end # positionlist
261
310
 
311
+ # Returns an Array of Xapian::Value objects for the given slot in the
312
+ # database.
313
+ def valuestream(slot, &block)
314
+ Xapian._safelyIterate(self._dangerous_valuestream_begin(slot),
315
+ self._dangerous_valuestream_end(slot),
316
+ lambda { |item| Xapian::Value.new(item.value, slot, item.docid) },
317
+ &block)
318
+ end # valuestream(slot)
319
+
320
+ # Returns an Array of Xapian::Term objects for the spelling dictionary.
321
+ def spellings(&block)
322
+ Xapian._safelyIterate(self._dangerous_spellings_begin(),
323
+ self._dangerous_spellings_end(),
324
+ lambda { |item| Xapian::Term.new(item.term, 0, item.termfreq) },
325
+ &block)
326
+ end # spellings
327
+
328
+ # Returns an Array of synonyms of the given term.
329
+ def synonyms(term, &block)
330
+ Xapian._safelyIterate(self._dangerous_synonyms_begin(term),
331
+ self._dangerous_synonyms_end(term),
332
+ lambda { |item| item.term },
333
+ &block)
334
+ end # synonyms
335
+
336
+ # Returns an Array of terms with synonyms.
337
+ def synonym_keys(&block)
338
+ Xapian._safelyIterate(self._dangerous_synonym_keys_begin(),
339
+ self._dangerous_synonym_keys_end(),
340
+ lambda { |item| item.term },
341
+ &block)
342
+ end # synonym_keys
262
343
  end # Xapian::Database
263
344
 
345
+ # Refer to the
346
+ # {Xapian::ValueCountMatchSpy C++ API documentation}[https://xapian.org/docs/apidoc/html/classXapian_1_1ValueCountMatchSpy.html]
347
+ # for methods not specific to Ruby.
348
+ #--
349
+ # Wrap some dangerous iterators.
350
+ class Xapian::ValueCountMatchSpy
351
+ # Returns an Array of all the values seen, in alphabetical order
352
+ def values(&block)
353
+ Xapian._safelyIterate(self._dangerous_values_begin(),
354
+ self._dangerous_values_end(),
355
+ lambda { |item| Xapian::Term.new(item.term, 0, item.termfreq) },
356
+ &block)
357
+ end # values
358
+
359
+ # Returns an Array of the top values seen, by frequency
360
+ def top_values(maxvalues, &block)
361
+ Xapian._safelyIterate(self._dangerous_top_values_begin(maxvalues),
362
+ self._dangerous_top_values_end(maxvalues),
363
+ lambda { |item| Xapian::Term.new(item.term, 0, item.termfreq) },
364
+ &block)
365
+ end # top_values
366
+ end # Xapian::Database
367
+
368
+ # Refer to the
369
+ # {Xapian::LatLongCoords C++ API documentation}[https://xapian.org/docs/apidoc/html/classXapian_1_1LatLongCoords.html]
370
+ # for methods not specific to Ruby.
371
+ #--
372
+ # Wrap some dangerous iterators.
373
+ class Xapian::LatLongCoords
374
+ # Returns an Array of all the values seen, in alphabetical order
375
+ def all(&block)
376
+ Xapian._safelyIterate(self._begin(),
377
+ self._end(),
378
+ lambda { |item| item.get_coord() },
379
+ &block)
380
+ end # allterms
381
+ end # Xapian::LatLongCoords
382
+
383
+ class Xapian::QueryParser
384
+ # Returns an Array of all words in the query ignored as stopwords.
385
+ def stoplist(&block)
386
+ Xapian._safelyIterate(self._dangerous_stoplist_begin(),
387
+ self._dangerous_stoplist_end(),
388
+ lambda { |item| item.term },
389
+ &block)
390
+ end # stoplist
391
+
392
+ # Returns an Array of all words in the query which stem to a given term.
393
+ def unstem(term, &block)
394
+ Xapian._safelyIterate(self._dangerous_unstem_begin(term),
395
+ self._dangerous_unstem_end(term),
396
+ lambda { |item| item.term },
397
+ &block)
398
+ end # unstem
399
+ end # Xapian::QueryParser
400
+
401
+ # Compatibility wrapping for Xapian::BAD_VALUENO (wrapped as a constant since
402
+ # xapian-bindings 1.4.10).
403
+ def Xapian::BAD_VALUENO()
404
+ return Xapian::BAD_VALUENO
405
+ end
264
406
 
265
407
  end # Xapian module
Binary file
Binary file
data/xapian-full.gemspec CHANGED
@@ -2,33 +2,30 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{xapian-full-alaveteli}
5
- s.version = "1.2.9.5"
5
+ s.version = "1.4.18.1"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Tom Adams", "Rich Lane", "Seb Bacon"]
9
- s.date = %q{2012-06-01}
8
+ s.authors = ["Tom Adams", "Rich Lane", "Seb Bacon", "Alexey Pisarenko", "Louise Crow", "Ian Chard", "Sam Pearson"]
9
+ s.homepage = %q{https://github.com/mysociety/xapian-full}
10
+ s.date = %q{2021-02-10}
10
11
  s.description = %q{Xapian bindings for Ruby without dependency on system Xapian library}
11
- s.email = %q{rlane@club.cc.cmu.edu}
12
+ s.email = %q{mysociety@alaveteli.org}
12
13
  s.extensions = ["Rakefile"]
13
14
  s.files = [
14
15
  "lib/xapian.rb",
15
16
  "Rakefile",
16
- "xapian-bindings-1.2.9.tar.gz",
17
- "xapian-core-1.2.9.tar.gz",
17
+ "xapian-bindings-1.4.18.tar.xz",
18
+ "xapian-core-1.4.18.tar.xz",
18
19
  "xapian-full.gemspec",
19
20
  ]
20
21
  s.rdoc_options = ["--charset=UTF-8"]
21
22
  s.require_paths = ["lib"]
22
- s.rubygems_version = %q{1.3.3}
23
+ s.required_ruby_version = ">= 2.1.0"
23
24
  s.summary = %q{xapian-core + Ruby xapian-bindings}
24
25
 
25
26
  if s.respond_to? :specification_version then
26
27
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
27
28
  s.specification_version = 3
28
-
29
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
30
- else
31
- end
32
29
  else
33
30
  end
34
31
  end
metadata CHANGED
@@ -1,74 +1,54 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: xapian-full-alaveteli
3
- version: !ruby/object:Gem::Version
4
- hash: 97
5
- prerelease:
6
- segments:
7
- - 1
8
- - 2
9
- - 9
10
- - 5
11
- version: 1.2.9.5
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.4.18.1
12
5
  platform: ruby
13
- authors:
6
+ authors:
14
7
  - Tom Adams
15
8
  - Rich Lane
16
9
  - Seb Bacon
10
+ - Alexey Pisarenko
11
+ - Louise Crow
12
+ - Ian Chard
13
+ - Sam Pearson
17
14
  autorequire:
18
15
  bindir: bin
19
16
  cert_chain: []
20
-
21
- date: 2012-06-01 00:00:00 +01:00
22
- default_executable:
17
+ date: 2021-02-10 00:00:00.000000000 Z
23
18
  dependencies: []
24
-
25
19
  description: Xapian bindings for Ruby without dependency on system Xapian library
26
- email: rlane@club.cc.cmu.edu
20
+ email: mysociety@alaveteli.org
27
21
  executables: []
28
-
29
- extensions:
22
+ extensions:
30
23
  - Rakefile
31
24
  extra_rdoc_files: []
32
-
33
- files:
34
- - lib/xapian.rb
25
+ files:
35
26
  - Rakefile
36
- - xapian-bindings-1.2.9.tar.gz
37
- - xapian-core-1.2.9.tar.gz
27
+ - lib/xapian.rb
28
+ - xapian-bindings-1.4.18.tar.xz
29
+ - xapian-core-1.4.18.tar.xz
38
30
  - xapian-full.gemspec
39
- has_rdoc: true
40
- homepage:
31
+ homepage: https://github.com/mysociety/xapian-full
41
32
  licenses: []
42
-
33
+ metadata: {}
43
34
  post_install_message:
44
- rdoc_options:
45
- - --charset=UTF-8
46
- require_paths:
35
+ rdoc_options:
36
+ - "--charset=UTF-8"
37
+ require_paths:
47
38
  - lib
48
- required_ruby_version: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
39
+ required_ruby_version: !ruby/object:Gem::Requirement
40
+ requirements:
51
41
  - - ">="
52
- - !ruby/object:Gem::Version
53
- hash: 3
54
- segments:
55
- - 0
56
- version: "0"
57
- required_rubygems_version: !ruby/object:Gem::Requirement
58
- none: false
59
- requirements:
42
+ - !ruby/object:Gem::Version
43
+ version: 2.1.0
44
+ required_rubygems_version: !ruby/object:Gem::Requirement
45
+ requirements:
60
46
  - - ">="
61
- - !ruby/object:Gem::Version
62
- hash: 3
63
- segments:
64
- - 0
65
- version: "0"
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
66
49
  requirements: []
67
-
68
- rubyforge_project:
69
- rubygems_version: 1.6.2
50
+ rubygems_version: 3.1.2
70
51
  signing_key:
71
52
  specification_version: 3
72
53
  summary: xapian-core + Ruby xapian-bindings
73
54
  test_files: []
74
-
Binary file
Binary file