ts_vector_tags 0.0.10 → 0.0.11
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 +7 -0
- data/lib/ts_vector_tags.rb +7 -3
- data/spec/ts_vector_tags_spec.rb +2 -2
- data/ts_vector_tags.gemspec +1 -1
- metadata +14 -25
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 819e4f2f8fae2424f78a6c4e25e7a39e13f7d95c
|
|
4
|
+
data.tar.gz: cadae9be07419e1bb433e1ba5744bd5fe8b3acd9
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 7bc50dfad05057849405a6c7abb75f23caa2cd4a0ca85b591907218ec2f20c0a5a1d95a7841437a87b24eb1d81ba92a76749688043eeb275e9a46028b2441510
|
|
7
|
+
data.tar.gz: 5267f62e8b2ad1642111a87600e32e082827e7d5de7a4ccd8138438a8da419e6559b90733cff15ccc736b1f1a7cc32417fe9f8573ae3c66549bd833beaf2bece
|
data/lib/ts_vector_tags.rb
CHANGED
|
@@ -21,7 +21,7 @@ module TsVectorTags
|
|
|
21
21
|
|
|
22
22
|
def self.acceptable_tsquery?(query)
|
|
23
23
|
# TODO: Check for balanced parantheses
|
|
24
|
-
query =~ TSQUERY_VALIDATOR
|
|
24
|
+
!!(query =~ TSQUERY_VALIDATOR)
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def self.included(base)
|
|
@@ -34,8 +34,12 @@ module TsVectorTags
|
|
|
34
34
|
# Accepts a proper ts_query an allows complex logical expressions like "foo & !(bar | bling)"
|
|
35
35
|
scope :with_tags_query, lambda { |query|
|
|
36
36
|
raise InvalidTsQueryError, "Invalid tag query '#{query}'" unless TsVectorTags.acceptable_tsquery?(query)
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
if query =~ /!/
|
|
38
|
+
# "!foo" will not match empty tsvectors, so we have to cheat using coalesce :-(
|
|
39
|
+
where("coalesce(tags_vector, '-invalid-tag-') @@ tsquery '#{query}'")
|
|
40
|
+
else
|
|
41
|
+
where("tags_vector @@ tsquery '#{query}'")
|
|
42
|
+
end
|
|
39
43
|
}
|
|
40
44
|
|
|
41
45
|
# Make sure empty vectors are always saved as null values
|
data/spec/ts_vector_tags_spec.rb
CHANGED
|
@@ -33,8 +33,8 @@ describe TsVectorTags do
|
|
|
33
33
|
|
|
34
34
|
describe "tsqueries" do
|
|
35
35
|
it "rejects potentially dangerous tsqueries" do
|
|
36
|
-
TsVectorTags.acceptable_tsquery?("'").
|
|
37
|
-
TsVectorTags.acceptable_tsquery?('"').
|
|
36
|
+
expect(TsVectorTags.acceptable_tsquery?("'")).to eq false
|
|
37
|
+
expect(TsVectorTags.acceptable_tsquery?('"')).to eq false
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
it "accepts plain tsqueries" do
|
data/ts_vector_tags.gemspec
CHANGED
metadata
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ts_vector_tags
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 0.0.11
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Simen Svale Skogsrud
|
|
@@ -10,38 +9,34 @@ authors:
|
|
|
10
9
|
autorequire:
|
|
11
10
|
bindir: bin
|
|
12
11
|
cert_chain: []
|
|
13
|
-
date:
|
|
12
|
+
date: 2015-08-29 00:00:00.000000000 Z
|
|
14
13
|
dependencies:
|
|
15
14
|
- !ruby/object:Gem::Dependency
|
|
16
15
|
name: rspec
|
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
|
18
|
-
none: false
|
|
19
17
|
requirements:
|
|
20
|
-
- -
|
|
18
|
+
- - ">="
|
|
21
19
|
- !ruby/object:Gem::Version
|
|
22
20
|
version: '0'
|
|
23
21
|
type: :development
|
|
24
22
|
prerelease: false
|
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
|
26
|
-
none: false
|
|
27
24
|
requirements:
|
|
28
|
-
- -
|
|
25
|
+
- - ">="
|
|
29
26
|
- !ruby/object:Gem::Version
|
|
30
27
|
version: '0'
|
|
31
28
|
- !ruby/object:Gem::Dependency
|
|
32
29
|
name: rake
|
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
|
34
|
-
none: false
|
|
35
31
|
requirements:
|
|
36
|
-
- -
|
|
32
|
+
- - ">="
|
|
37
33
|
- !ruby/object:Gem::Version
|
|
38
34
|
version: '0'
|
|
39
35
|
type: :development
|
|
40
36
|
prerelease: false
|
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
|
42
|
-
none: false
|
|
43
38
|
requirements:
|
|
44
|
-
- -
|
|
39
|
+
- - ">="
|
|
45
40
|
- !ruby/object:Gem::Version
|
|
46
41
|
version: '0'
|
|
47
42
|
description: Extremely simple, if somewhat exotic, mixin that uses the tsvector feature
|
|
@@ -53,8 +48,8 @@ executables: []
|
|
|
53
48
|
extensions: []
|
|
54
49
|
extra_rdoc_files: []
|
|
55
50
|
files:
|
|
56
|
-
- .gitignore
|
|
57
|
-
- .rspec
|
|
51
|
+
- ".gitignore"
|
|
52
|
+
- ".rspec"
|
|
58
53
|
- Gemfile
|
|
59
54
|
- README.md
|
|
60
55
|
- Rakefile
|
|
@@ -63,32 +58,26 @@ files:
|
|
|
63
58
|
- ts_vector_tags.gemspec
|
|
64
59
|
homepage: ''
|
|
65
60
|
licenses: []
|
|
61
|
+
metadata: {}
|
|
66
62
|
post_install_message:
|
|
67
63
|
rdoc_options: []
|
|
68
64
|
require_paths:
|
|
69
65
|
- lib
|
|
70
66
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
71
|
-
none: false
|
|
72
67
|
requirements:
|
|
73
|
-
- -
|
|
68
|
+
- - ">="
|
|
74
69
|
- !ruby/object:Gem::Version
|
|
75
70
|
version: '0'
|
|
76
|
-
segments:
|
|
77
|
-
- 0
|
|
78
|
-
hash: 2492043440947131244
|
|
79
71
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
80
|
-
none: false
|
|
81
72
|
requirements:
|
|
82
|
-
- -
|
|
73
|
+
- - ">="
|
|
83
74
|
- !ruby/object:Gem::Version
|
|
84
75
|
version: '0'
|
|
85
|
-
segments:
|
|
86
|
-
- 0
|
|
87
|
-
hash: 2492043440947131244
|
|
88
76
|
requirements: []
|
|
89
77
|
rubyforge_project: ts_vector_tags
|
|
90
|
-
rubygems_version:
|
|
78
|
+
rubygems_version: 2.4.6
|
|
91
79
|
signing_key:
|
|
92
|
-
specification_version:
|
|
80
|
+
specification_version: 4
|
|
93
81
|
summary: Super simple tag mixin for postgresql and activerecord
|
|
94
82
|
test_files: []
|
|
83
|
+
has_rdoc:
|