lsolr 0.2.2 → 0.2.3

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/lsolr.rb +29 -3
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f14beb4eb4ea605689087f9ac1d6a3e27454918c377d4f3f096a06490502b67b
4
- data.tar.gz: c49281b312fab6f80817df5d183ed90f0f635b90e3a4acb34051ff0660dd9675
3
+ metadata.gz: e4274e0bfec1e74ca2120624580aad73461057f1d5912d83ae0dba8ff82b52a5
4
+ data.tar.gz: a5cb76c8d965d86d6d6b541604fc1a8a23b6a73ba68ae566953677f68b1d95da
5
5
  SHA512:
6
- metadata.gz: 06ec0a49a25893f4febf32b175167159d8b18d7cad19aa7876fbe678905058aec45a1d34cf9544830c11cb9b42c95f881c2ef66e96de65fd97526382154a8d57
7
- data.tar.gz: 1953e59728553443cd41289392d1364f94276e4e0c9556c70822ca9ab9225237d76002e8b6477814ba2f0db6407420984703ce5b4ac0b422501d59d0dab6d77b
6
+ metadata.gz: dcd93b2d0e788cac40d2f942dd67a4245b6bd20d5dcb89d296c5d8fe29379975e8e220399f77201c3e416a9d308044f55a4f9720d5c74022df5b0aeb12adb893
7
+ data.tar.gz: 83e1c44d830e10fedf551c0fc77baf77adcc191a4da69defbfd8792a8deca754958e3c0751e7afacae73f6d7197bc02ab4942663a5636fd685152db64e8b3aae
@@ -87,10 +87,11 @@ class LSolr
87
87
  PHRASE_MATCH_DELIMITER = ' '
88
88
  MULTI_VALUE_MATCH_DELIMITER = ' '
89
89
  FUZZY_MATCH_DISTANCE_RANGE = (0.0..2.0).freeze
90
- FORMAT_DATE_TIME = '%Y-%m-%dT%H:%M:%SZ'
90
+ FORMAT_DATE_TIME = '%Y-%m-%dT%H:%M:%SZ' # rubocop:disable Style/FormatStringToken
91
91
  FORMAT_MILLISECOND_FOR_DATE_TYPE = '%Q'
92
92
  FORMAT_MILLISECOND_FOR_TIME_TYPE = '%L'
93
- FORMAT_SECOND = '%s'
93
+ FORMAT_SECOND = '%s' # rubocop:disable Style/FormatStringToken
94
+ FORMAT_INSPECT = '#<%<class>s:%<object>#018x `%<query>s`>'
94
95
 
95
96
  PARENTHESIS_LEFT = '('
96
97
  PARENTHESIS_RIGHT = ')'
@@ -107,6 +108,8 @@ class LSolr
107
108
  # @param params [Hash{Symbol => String, Symbol, Integer, Float, true, false, Range, Date, Time, Array<String, Symbol, Integer>}, String] query terms or a raw query
108
109
  #
109
110
  # @return [LSolr] a instance
111
+ #
112
+ # @raise [LSolr::ArgumentError] if specified parameters have a not supported type value
110
113
  def build(params)
111
114
  case params
112
115
  when Hash then params.map { |f, v| build_query(f, v) }.reduce { |a, e| a.and(e) }
@@ -175,6 +178,8 @@ class LSolr
175
178
  # Returns Apache Solr standard lucene type query string.
176
179
  #
177
180
  # @return [String] a stringified query
181
+ #
182
+ # @raise [LSolr::IncompleteQueryError] if the query is incompletely
178
183
  def to_s
179
184
  raise IncompleteQueryError, 'Please specify a term of search.' if blank?
180
185
 
@@ -183,6 +188,15 @@ class LSolr
183
188
 
184
189
  alias to_str to_s
185
190
 
191
+ # Returns instance information.
192
+ #
193
+ # @return [String] instance information
194
+ def inspect
195
+ format(FORMAT_INSPECT, class: self.class.name,
196
+ object: object_id << 1,
197
+ query: present? ? to_s : '')
198
+ end
199
+
186
200
  # A query is blank if term is incomplete in expression.
187
201
  #
188
202
  # @return [true, false]
@@ -203,6 +217,8 @@ class LSolr
203
217
  # @param name [String, Symbol] a field name
204
218
  #
205
219
  # @return [LSolr] self instance
220
+ #
221
+ # @raise [LSolr::ArgumentError] if specified field name is empty
206
222
  def field(name)
207
223
  raise ArgumentError, "The field name must be a not empty string value. #{name.inspect} given." unless present_string?(name)
208
224
 
@@ -215,6 +231,8 @@ class LSolr
215
231
  # @param query [String] a raw query string
216
232
  #
217
233
  # @return [LSolr] self instance
234
+ #
235
+ # @raise [LSolr::ArgumentError] if specified raw query string is empty
218
236
  def raw(query)
219
237
  raise ArgumentError, "The raw query must be a not empty string value. #{query.inspect} given." unless present_string?(query)
220
238
 
@@ -252,6 +270,8 @@ class LSolr
252
270
  # @param factor [Float] a boost factor number
253
271
  #
254
272
  # @return [LSolr] self instance
273
+ #
274
+ # @raise [LSolr::ArgumentError] if specified boost factor is invalid
255
275
  def boost(factor)
256
276
  raise ArgumentError, "The boost factor must be a positive number. #{factor.inspect} given." unless valid_boost_factor?(factor)
257
277
 
@@ -266,6 +286,8 @@ class LSolr
266
286
  # @param score [Float] a constant score
267
287
  #
268
288
  # @return [LSolr] self instance
289
+ #
290
+ # @raise [LSolr::ArgumentError] if specified score number is invalid
269
291
  def constant_score(score)
270
292
  raise ArgumentError, "The constant score must be a number. #{score.inspect} given." unless valid_score?(score)
271
293
 
@@ -294,6 +316,8 @@ class LSolr
294
316
  # @param value [Array<String, Symbol, Integer>] a search words or a filter values
295
317
  #
296
318
  # @return [LSolr] self instance
319
+ #
320
+ # @raise [LSolr::ArgumentError] if specified value is a empty array or not array
297
321
  def match_in(values)
298
322
  raise ArgumentError, "#{values.inspect} given. It must be a not empty array." unless present_array?(values)
299
323
 
@@ -351,6 +375,8 @@ class LSolr
351
375
  # @param distance [Float] a proximity distance
352
376
  #
353
377
  # @return [LSolr] self instance
378
+ #
379
+ # @raise [LSolr::RangeError] if specified distance is out of range
354
380
  def fuzzy_match(value, distance: 2.0)
355
381
  raise RangeError, "Out of #{FUZZY_MATCH_DISTANCE_RANGE}. #{distance} given." unless FUZZY_MATCH_DISTANCE_RANGE.member?(distance)
356
382
  @value = "#{clean(value).split.join}#{PROXIMITY}#{distance}"
@@ -497,7 +523,7 @@ class LSolr
497
523
 
498
524
  return date.strftime(FORMAT_DATE_TIME) if msec_str == '000'
499
525
 
500
- "#{date.strftime('%Y-%m-%dT%H:%M:%S')}.#{msec_str}Z"
526
+ "#{date.strftime('%Y-%m-%dT%H:%M:%S')}.#{msec_str}Z" # rubocop:disable Style/FormatStringToken
501
527
  end
502
528
 
503
529
  def link(another, operator)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lsolr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taishi Kasuga
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-17 00:00:00.000000000 Z
11
+ date: 2018-02-18 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: LSolr is a query builder of Apache Solr standard Lucene type query for
14
14
  Ruby.