wgit 0.10.3 → 0.10.4
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/lib/wgit/database/database.rb +52 -0
- data/lib/wgit/document.rb +1 -1
- data/lib/wgit/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 13a092ae05f0338598d0cc26d85ed828a86d60240eb996bacdbd7511aaae25a2
|
4
|
+
data.tar.gz: 3835b8aa3c06d49c1230dd42316c30315e39b0b33f0c433ff8df60eb6be2ecaa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 41a88d424925e3ba670104e69d027a5656c66616ab59bc85c62ec3359afd78230073e5a8f50697cbfc553b8dc9a012cf2ad2f2d857f7840fc668e0e43cdbfb33
|
7
|
+
data.tar.gz: 17bd6ddaba4cb53bd5cff4f9b36d5930f4bf496ee588163d190e10274438844f1a5e764c08fc7f82dc6c5c6b2efebaa52dc624be134e38a7d9d3ff9b970d1430
|
data/CHANGELOG.md
CHANGED
@@ -9,6 +9,15 @@
|
|
9
9
|
- ...
|
10
10
|
---
|
11
11
|
|
12
|
+
## v0.10.4
|
13
|
+
### Added
|
14
|
+
- `Database#search_text` method which returns a Hash of `url => text_results` instead of `Wgit::Documents` (like `#search`).
|
15
|
+
### Changed/Removed
|
16
|
+
- ...
|
17
|
+
### Fixed
|
18
|
+
- ...
|
19
|
+
---
|
20
|
+
|
12
21
|
## v0.10.3
|
13
22
|
### Added
|
14
23
|
- ...
|
@@ -348,6 +348,58 @@ module Wgit
|
|
348
348
|
results
|
349
349
|
end
|
350
350
|
|
351
|
+
# Searches the database's Documents for the given query and then searches
|
352
|
+
# each result in turn using `doc.search`. Instead of an Array of Documents,
|
353
|
+
# this method returns a Hash of the docs url => search_results creating a
|
354
|
+
# search engine like result set for quick access to text matches.
|
355
|
+
#
|
356
|
+
# @param query [String] The text query to search with.
|
357
|
+
# @param case_sensitive [Boolean] Whether character case must match.
|
358
|
+
# @param whole_sentence [Boolean] Whether multiple words should be searched
|
359
|
+
# for separately.
|
360
|
+
# @param limit [Integer] The max number of results to return.
|
361
|
+
# @param skip [Integer] The number of results to skip.
|
362
|
+
# @param sentence_limit [Integer] The max length of each search result
|
363
|
+
# sentence.
|
364
|
+
# @param top_result_only [Boolean] Whether to return all of the documents
|
365
|
+
# search results or just the top (most relavent) result.
|
366
|
+
# @yield [doc] Given each search result (Wgit::Document) returned from the
|
367
|
+
# DB.
|
368
|
+
# @return [Hash<String, String | Array<String>>] The search results obtained
|
369
|
+
# from the DB having mapped the docs url => search_results. The format of
|
370
|
+
# search_results depends on the value of `top_result_only`.
|
371
|
+
def search_text(
|
372
|
+
query, case_sensitive: false, whole_sentence: true,
|
373
|
+
limit: 10, skip: 0, sentence_limit: 80, top_result_only: false
|
374
|
+
)
|
375
|
+
results = search(
|
376
|
+
query,
|
377
|
+
case_sensitive: case_sensitive,
|
378
|
+
whole_sentence: whole_sentence,
|
379
|
+
limit: limit,
|
380
|
+
skip: skip
|
381
|
+
)
|
382
|
+
|
383
|
+
results
|
384
|
+
.map do |doc|
|
385
|
+
yield(doc) if block_given?
|
386
|
+
|
387
|
+
results = doc.search(
|
388
|
+
query,
|
389
|
+
case_sensitive: case_sensitive,
|
390
|
+
whole_sentence: whole_sentence,
|
391
|
+
sentence_limit: sentence_limit
|
392
|
+
)
|
393
|
+
|
394
|
+
# Only return result if its text has a match - compact is called below.
|
395
|
+
next nil if results.empty?
|
396
|
+
|
397
|
+
[doc.url, (top_result_only ? results.first : results)]
|
398
|
+
end
|
399
|
+
.compact
|
400
|
+
.to_h
|
401
|
+
end
|
402
|
+
|
351
403
|
# Returns statistics about the database.
|
352
404
|
#
|
353
405
|
# @return [BSON::Document#[]#fetch] Similar to a Hash instance.
|
data/lib/wgit/document.rb
CHANGED
@@ -453,7 +453,7 @@ be relative"
|
|
453
453
|
|
454
454
|
if query.is_a?(Regexp)
|
455
455
|
regex = query
|
456
|
-
else # respond_to?
|
456
|
+
else # query.respond_to? :to_s == true
|
457
457
|
query = query.to_s
|
458
458
|
query = query.gsub(' ', '|') unless whole_sentence
|
459
459
|
regex = Regexp.new(query, !case_sensitive)
|
data/lib/wgit/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wgit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Telford
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-11-
|
11
|
+
date: 2021-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|