ts_vector_tags 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: