ar-tsvectors 0.0.2 → 1.0.0
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.
- data/Gemfile +1 -1
- data/README.md +1 -1
- data/lib/ts_vectors/attribute.rb +3 -0
- data/lib/ts_vectors/version.rb +1 -1
- data/spec/ts_vectors_spec.rb +4 -2
- metadata +4 -3
data/Gemfile
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
source
|
1
|
+
source 'https://rubygems.org/'
|
2
2
|
gemspec
|
data/README.md
CHANGED
@@ -42,7 +42,7 @@ For queries to perform well, you must add an index on the column. This is slight
|
|
42
42
|
|
43
43
|
The `ts_vector` mixin takes the following options:
|
44
44
|
|
45
|
-
* `:
|
45
|
+
* `:configuration` - the name of the PostgreSQL text configuration to use. Defaults to `simple`, which is appropriate for keyword-type indexing.
|
46
46
|
* `:format` - the format of the column, must be either `:text` (the default) or `:tsvector`.
|
47
47
|
* `:normalize` - a proc that overrides the default normalization. It must take a single string and return a normalized copy of the string.
|
48
48
|
|
data/lib/ts_vectors/attribute.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
module TsVectors
|
2
2
|
|
3
3
|
class Attribute
|
4
|
+
FORMATS = [:text, :tsvector]
|
5
|
+
|
4
6
|
def initialize(name, options = {})
|
5
7
|
options.assert_valid_keys(:normalize, :configuration, :format)
|
6
8
|
@name, @options = name, options
|
@@ -10,6 +12,7 @@ module TsVectors
|
|
10
12
|
@configuration = 'simple'
|
11
13
|
end
|
12
14
|
if (format = @options[:format])
|
15
|
+
raise ArgumentError, "Unsupported format #{format.inspect}" unless FORMATS.include?(format)
|
13
16
|
@format = format.to_sym
|
14
17
|
else
|
15
18
|
@format = :text
|
data/lib/ts_vectors/version.rb
CHANGED
data/spec/ts_vectors_spec.rb
CHANGED
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
class ModelUsingTsVectorFormat < ActiveRecord::Base
|
4
4
|
self.table_name = 'models_with_tsvector_format'
|
5
5
|
FORMAT = 'tsvector'
|
6
|
-
ts_vector :tags
|
6
|
+
ts_vector :tags, :format => :tsvector
|
7
7
|
end
|
8
8
|
|
9
9
|
class ModelUsingTextFormat < ActiveRecord::Base
|
@@ -14,7 +14,9 @@ end
|
|
14
14
|
|
15
15
|
class ModelWithNormalization < ActiveRecord::Base
|
16
16
|
self.table_name = 'models_with_tsvector_format'
|
17
|
-
ts_vector :tags,
|
17
|
+
ts_vector :tags,
|
18
|
+
:format => :tsvector,
|
19
|
+
:normalize => lambda { |v| v.downcase.gsub(/\d/, '') }
|
18
20
|
end
|
19
21
|
|
20
22
|
describe TsVectors::Model do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ar-tsvectors
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-03-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -115,8 +115,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
115
115
|
version: '0'
|
116
116
|
requirements: []
|
117
117
|
rubyforge_project: ar-tsvectors
|
118
|
-
rubygems_version: 1.8.
|
118
|
+
rubygems_version: 1.8.23
|
119
119
|
signing_key:
|
120
120
|
specification_version: 3
|
121
121
|
summary: Support for PostgreSQL's ts_vector data type in ActiveRecord
|
122
122
|
test_files: []
|
123
|
+
has_rdoc:
|