minidusen 0.8.1 → 0.8.2
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/.travis.yml +5 -0
- data/gemfiles/Gemfile.4.2.pg.lock +3 -3
- data/lib/minidusen/parser.rb +1 -1
- data/lib/minidusen/version.rb +1 -1
- data/spec/minidusen/parser_spec.rb +37 -4
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 22721ff1a24bd3c0c1bcf0df5e3917f0c9b0ca35
|
|
4
|
+
data.tar.gz: 3781308c4bd9c6614e14750f0c676ac06a749cb8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ae988bf28bbe784d4665ff22fcd70d5d7965786355a36f900b38aab3ea61500d8ee9f856e1d4c383ca7fdbeb07632bfc2c49f00df0d1c25fdead7bc466718224
|
|
7
|
+
data.tar.gz: 6512014a63c286dcba862579e7a931e31d2bd261dcf1b5f960acec9ccc677294f3b4c140f0fb0ca6a38f3ee0cf17e311848a975f4cc5a59a67d2a52829eb296c
|
data/.travis.yml
CHANGED
|
@@ -26,6 +26,11 @@ notifications:
|
|
|
26
26
|
email:
|
|
27
27
|
- fail@makandra.de
|
|
28
28
|
|
|
29
|
+
install:
|
|
30
|
+
# Replace default Travis CI bundler script with a version that doesn't
|
|
31
|
+
# explode when lockfile doesn't match recently bumped version
|
|
32
|
+
- bundle install --no-deployment --jobs=3 --retry=3 --path=${BUNDLE_PATH:-vendor/bundle}
|
|
33
|
+
|
|
29
34
|
matrix:
|
|
30
35
|
exclude:
|
|
31
36
|
- rvm: 2.1.8
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: ..
|
|
3
3
|
specs:
|
|
4
|
-
|
|
4
|
+
edge_rider (0.3.1)
|
|
5
|
+
activerecord
|
|
6
|
+
minidusen (0.8.1)
|
|
5
7
|
activerecord (>= 3.2)
|
|
6
8
|
activesupport (>= 3.2)
|
|
7
9
|
edge_rider (>= 0.2.5)
|
|
@@ -27,8 +29,6 @@ GEM
|
|
|
27
29
|
byebug (9.0.5)
|
|
28
30
|
database_cleaner (1.5.3)
|
|
29
31
|
diff-lcs (1.2.5)
|
|
30
|
-
edge_rider (0.3.1)
|
|
31
|
-
activerecord
|
|
32
32
|
gemika (0.3.2)
|
|
33
33
|
i18n (0.7.0)
|
|
34
34
|
json (1.8.3)
|
data/lib/minidusen/parser.rb
CHANGED
data/lib/minidusen/version.rb
CHANGED
|
@@ -5,19 +5,28 @@ describe Minidusen::Parser do
|
|
|
5
5
|
describe 'when called with a String' do
|
|
6
6
|
|
|
7
7
|
it 'parses the given string into tokens' do
|
|
8
|
-
query = Minidusen::Parser.parse('fieldname:fieldvalue word "a phrase"')
|
|
9
|
-
query.size.should ==
|
|
8
|
+
query = Minidusen::Parser.parse('fieldname:fieldvalue word "a phrase" "deploy:rollback" -"db:seed"')
|
|
9
|
+
query.size.should == 5
|
|
10
10
|
query[0].field.should == 'fieldname'
|
|
11
11
|
query[0].value.should == 'fieldvalue'
|
|
12
|
+
query[0].exclude.should == false
|
|
12
13
|
query[1].field.should == 'text'
|
|
13
14
|
query[1].value.should == 'word'
|
|
15
|
+
query[1].exclude.should == false
|
|
14
16
|
query[2].field.should == 'text'
|
|
15
17
|
query[2].value.should == 'a phrase'
|
|
18
|
+
query[2].exclude.should == false
|
|
19
|
+
query[3].field.should == 'text'
|
|
20
|
+
query[3].value.should == 'deploy:rollback'
|
|
21
|
+
query[3].exclude.should == false
|
|
22
|
+
query[4].field.should == 'text'
|
|
23
|
+
query[4].value.should == 'db:seed'
|
|
24
|
+
query[4].exclude.should == true
|
|
16
25
|
end
|
|
17
26
|
|
|
18
27
|
it 'should parse field tokens first, because they usually give maximum filtering at little cost' do
|
|
19
|
-
query = Minidusen::Parser.parse('word1 field1:field1-value word2 field2:field2-value')
|
|
20
|
-
query.collect(&:value).should == ['field1-value', 'field2-value', 'word1', 'word2']
|
|
28
|
+
query = Minidusen::Parser.parse('word1 field1:field1-value word2 field2:field2-value "search:word"')
|
|
29
|
+
query.collect(&:value).should == ['field1-value', 'field2-value', 'word1', 'word2', 'search:word']
|
|
21
30
|
end
|
|
22
31
|
|
|
23
32
|
it 'should not consider the dash to be a word boundary' do
|
|
@@ -30,6 +39,30 @@ describe Minidusen::Parser do
|
|
|
30
39
|
query.collect(&:value).should == ['åöÙÔøüéíÁ', 'ÄüÊçñÆ ððÿáÒÉ', 'pulvérisateur', 'pędzić']
|
|
31
40
|
end
|
|
32
41
|
|
|
42
|
+
it 'should allow to search for a phrase containing a colon' do
|
|
43
|
+
query = Minidusen::Parser.parse('"deploy:rollback"')
|
|
44
|
+
query.size.should == 1
|
|
45
|
+
query[0].field.should == 'text'
|
|
46
|
+
query[0].value.should == 'deploy:rollback'
|
|
47
|
+
query[0].exclude.should == false
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
it 'should parse a field token which is at the beginning of the search string' do
|
|
51
|
+
query = Minidusen::Parser.parse('filetype:pdf word')
|
|
52
|
+
query.size.should == 2
|
|
53
|
+
query[0].field.should == 'filetype'
|
|
54
|
+
query[0].value.should == 'pdf'
|
|
55
|
+
query[0].exclude.should == false
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
it 'should parse an excluded field token which is at the beginning of the search string' do
|
|
59
|
+
query = Minidusen::Parser.parse('-filetype:docx word')
|
|
60
|
+
query.size.should == 2
|
|
61
|
+
query[0].field.should == 'filetype'
|
|
62
|
+
query[0].value.should == 'docx'
|
|
63
|
+
query[0].exclude.should == true
|
|
64
|
+
end
|
|
65
|
+
|
|
33
66
|
end
|
|
34
67
|
|
|
35
68
|
describe 'when called with a Query' do
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: minidusen
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.8.
|
|
4
|
+
version: 0.8.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Henning Koch
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2018-02-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|