fetcha 0.2.2 → 0.2.3

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/fetcha.rb +18 -15
  3. data/lib/fetcha/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 61d61933364bc8cb1c81431a9c5ba0fc4224c670
4
- data.tar.gz: 422b38441617e39ed53166ff55f87578539dbacd
3
+ metadata.gz: 6bc945f6738e144d783205329479a73b7bcce92d
4
+ data.tar.gz: 2c5406ce136580118a7591b8d59bc08711b5bd92
5
5
  SHA512:
6
- metadata.gz: f931681d3c2bab0b4609c07f6f1abdee6ef15c62f4e31ca2a0afe8dd4aa4192eca694fa087fe68761c37916a4ce058465bcf2c6a3cae77428db01c2cbb3ad58c
7
- data.tar.gz: 47f49b64deb5b1c414c5673151a199df55ae2f69371ef885a099ab58d71aa3893bf7480efc019216f5262d145abaa8ac5b7e93e444414e5c437977a148ce8092
6
+ metadata.gz: 776cf811b5aeb285f3944dead807561e053424f04e1b35e2b3a55d26aca5337b72b155d961206184d3a641961ada7fea3ea7fe0d90cc893e5528cb2165c4c63f
7
+ data.tar.gz: 758489f31f0a8acb6b2fbb123fd148b1f758ccc1a9c7f067acd8ce8cb20d3da2fa20651d691026ec6f23afd6be94a57b6c8aba624dff621ad87b4afac74148c4
data/lib/fetcha.rb CHANGED
@@ -1,13 +1,12 @@
1
- require "fetcha/version"
2
- require "active_support/concern"
1
+ require 'fetcha/version'
2
+ require 'active_support/concern'
3
3
 
4
4
  module Fetcha
5
5
  extend ActiveSupport::Concern
6
6
 
7
7
  module ClassMethods
8
-
9
8
  def fetch(params = {})
10
- results = self.all
9
+ results = all
11
10
  query_scope = params['scope']
12
11
  filters = params['filter']
13
12
  sorting = params['sort']
@@ -28,7 +27,7 @@ module Fetcha
28
27
  end
29
28
 
30
29
  def total_count(column_name = :all, _options = nil)
31
- @total_count ||=
30
+ @total_count ||=
32
31
  begin
33
32
  c = except(:offset, :limit, :order)
34
33
  c = c.count(column_name)
@@ -49,7 +48,7 @@ module Fetcha
49
48
  {
50
49
  filtering: {},
51
50
  sorting: {},
52
- scopes: Set.new(),
51
+ scopes: Set.new,
53
52
  pagination: {
54
53
  default_size: 10,
55
54
  max_size: 50
@@ -59,7 +58,7 @@ module Fetcha
59
58
 
60
59
  def fulltext_search_on(*fields)
61
60
  include PgSearch
62
- self.pg_search_scope :search_full_text, against: fields, using: { trigram: { threshold: 0.1 }, tsearch: { prefix: true } }
61
+ pg_search_scope :search_full_text, against: fields, using: { trigram: { threshold: 0.1 }, tsearch: { prefix: true } }
63
62
  end
64
63
 
65
64
  def filterable_on(*fields)
@@ -84,7 +83,7 @@ module Fetcha
84
83
  end
85
84
 
86
85
  def process_scope(datasource, query_scope)
87
- datasource.send(query_scope) if (fetchable_opts[:scopes].include? query_scope.to_sym)
86
+ datasource.send(query_scope) if fetchable_opts[:scopes].include? query_scope.to_sym
88
87
  end
89
88
 
90
89
  def process_search(datasource, search)
@@ -93,9 +92,9 @@ module Fetcha
93
92
 
94
93
  def process_filtering(datasource, filters = {})
95
94
  filter_opts = fetchable_opts[:filtering]
96
- includes = Set.new()
97
-
98
- real_filters = filters.select do |k|
95
+ includes = Set.new
96
+
97
+ real_filters = filters.select do |k|
99
98
  next unless filter_opts.keys.include? k
100
99
  values = k.split('.')
101
100
  includes << values.first if values.second.present?
@@ -104,7 +103,12 @@ module Fetcha
104
103
  results = includes.empty? ? datasource : datasource.includes(includes.to_a)
105
104
 
106
105
  real_filters.each do |key, value|
107
- results = process_operation(results, key, value)
106
+ v = if value =~ /,/
107
+ value.split(',')
108
+ else
109
+ value
110
+ end
111
+ results = process_operation(results, key, v)
108
112
  end
109
113
  results
110
114
  end
@@ -122,7 +126,7 @@ module Fetcha
122
126
  results = send("#{operation}_filter", results, field, value)
123
127
  end
124
128
  else
125
- results = results.where({field => value})
129
+ results = results.where(field => value)
126
130
  end
127
131
  results
128
132
  end
@@ -158,7 +162,7 @@ module Fetcha
158
162
  end
159
163
 
160
164
  def method_missing(name, *args, block)
161
- raise ForbiddenError if name.match /.*_filter$/
165
+ raise ForbiddenError if name =~ /.*_filter$/
162
166
  super
163
167
  end
164
168
  end
@@ -185,6 +189,5 @@ module Fetcha
185
189
  end
186
190
  end
187
191
 
188
-
189
192
  class ForbiddenError < StandardError; end
190
193
  end
@@ -1,3 +1,3 @@
1
1
  module Fetcha
2
- VERSION = "0.2.2"
2
+ VERSION = '0.2.3'.freeze
3
3
  end
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.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vincenzo Ferrara
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-09 00:00:00.000000000 Z
11
+ date: 2017-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport