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.
@@ -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
@@ -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
- # "!foo" will not match empty tsvectors, so we have to cheat using coalesce :-(
38
- where("coalesce(tags_vector, '-invalid-tag-') @@ '#{query}'::tsquery")
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
@@ -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?("'").should be_false
37
- TsVectorTags.acceptable_tsquery?('"').should be_false
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
@@ -2,7 +2,7 @@
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  module TsVectorTags
5
- VERSION = "0.0.10"
5
+ VERSION = "0.0.11"
6
6
  end
7
7
 
8
8
  Gem::Specification.new do |s|
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.10
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: 2013-03-18 00:00:00.000000000 Z
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: 1.8.24
78
+ rubygems_version: 2.4.6
91
79
  signing_key:
92
- specification_version: 3
80
+ specification_version: 4
93
81
  summary: Super simple tag mixin for postgresql and activerecord
94
82
  test_files: []
83
+ has_rdoc: