fetcha 0.2.2 → 0.2.3

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