fetcha 0.1.1 → 0.1.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/fetcha.gemspec +1 -0
- data/lib/fetcha.rb +18 -2
- data/lib/fetcha/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ea5c94f089b86302eddd095696c7ff51108df79
|
4
|
+
data.tar.gz: ccc829a691707b987e8bea5f46dce014e8c17517
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e024c2b7dd68455f771184c8e93ed6254ecbafd5ebab15f17922913125d8348223cbcb49ae133e2531682d0eab29cfdd48929c2cfc98517cdf871f59014e7d7d
|
7
|
+
data.tar.gz: 9ddb62e973f8ec1670e7257c24b706acbd1949c74f4c6a2a391aafccc66577010f3b96ca97153f21f9bc6ca0d46fbe9f9556be5109eed03e5f3b32fcfd689148
|
data/fetcha.gemspec
CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_dependency("activesupport", ">= 3.0.0")
|
22
|
+
spec.add_dependency("pg_search")
|
22
23
|
|
23
24
|
spec.add_development_dependency "bundler", "~> 1.12"
|
24
25
|
spec.add_development_dependency "rake", "~> 10.0"
|
data/lib/fetcha.rb
CHANGED
@@ -34,6 +34,11 @@ module Fetcha
|
|
34
34
|
}
|
35
35
|
end
|
36
36
|
|
37
|
+
def fulltext_search_on(*fields)
|
38
|
+
include PgSearch
|
39
|
+
self.pg_search_scope :search_full_text, against: fields, using: { trigram: { threshold: 0.1 }, tsearch: { prefix: true } }
|
40
|
+
end
|
41
|
+
|
37
42
|
def filterable_on(*fields)
|
38
43
|
fields.each do |field|
|
39
44
|
fetchable_opts[:filtering][field.to_s] = nil
|
@@ -59,7 +64,19 @@ module Fetcha
|
|
59
64
|
datasource.send(query_scope) if (fetchable_opts[:scopes].include? query_scope.to_sym)
|
60
65
|
end
|
61
66
|
|
62
|
-
def process_filtering(datasource, filters
|
67
|
+
def process_filtering(datasource, filters)
|
68
|
+
if filters.is_a?(String)
|
69
|
+
full_text_filtering(datasource, filters)
|
70
|
+
else
|
71
|
+
hash_filtering(datasource, filters)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def full_text_filtering(datasource, filter)
|
76
|
+
datasource.search_full_text(filter)
|
77
|
+
end
|
78
|
+
|
79
|
+
def hash_filtering(datasource, filters = {})
|
63
80
|
filter_opts = fetchable_opts[:filtering]
|
64
81
|
includes = Set.new()
|
65
82
|
|
@@ -117,7 +134,6 @@ module Fetcha
|
|
117
134
|
datasource.where("#{field} ilike ?", "%#{value}%")
|
118
135
|
end
|
119
136
|
|
120
|
-
|
121
137
|
def starts_with_filter(datasource, field, value)
|
122
138
|
datasource.where("#{field} ilike ?", "#{value}%")
|
123
139
|
end
|
data/lib/fetcha/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fetcha
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vincenzo Ferrara
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 3.0.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: pg_search
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|