sortofil 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a6a4dcd80595143b4fcc6e2fca54b63c4ce764e0
4
- data.tar.gz: 2b25e97c6751ebb90ce4adf95d5f2aea8d4bae0b
3
+ metadata.gz: 5d4641eae47c9f53c7d10a7418c05d561397b26d
4
+ data.tar.gz: 2281c2722d8f7df61449a4147c7bab48c7c367fd
5
5
  SHA512:
6
- metadata.gz: '09abef00e03a65ff3e6b072320d0fd240ccdc81885b27ac0244d2a6e450a8cff88cf0c9a2c042c0454877061f0888bbf3b5ee0646c14470f13e153cb42be4682'
7
- data.tar.gz: ab957f62a7c10c7c3bdb3427d68a62c5b4139b82335b3ce91d758428dbd0a01e05423e0693cf2474bf09ac4479d7f1366628bb2cb4c8d39f36a712dd327331ec
6
+ metadata.gz: 9dc7235589e180504915cb7e6bad41d5242026f6dd9bdb7399e205d18741f8101bc61597bb79a60b5bea8ad0fbe97f384c244bb5a8f52ee262a2b24ff7791d27
7
+ data.tar.gz: ad9725c04597ad954bbd920f25f5f184874f42faee159e3c5f0d253681aab00780d8885911ef52db7ab94ee32968825cc52a929d8775f039305247a4472ba047
@@ -2,47 +2,45 @@
2
2
  module Sortofilterable
3
3
  extend ActiveSupport::Concern
4
4
 
5
- included do
6
- private
7
-
8
- def filter_params
9
- []
10
- end
11
-
12
- def sort_params
13
- %i[sort_by direction]
14
- end
15
-
16
- def pagination_params
17
- %i[page]
18
- end
19
-
20
- def set_default_sort_opts
21
- set_default_sort_field
22
- set_default_sort_direction
23
- end
24
-
25
- def set_default_sort_field
26
- @default_sort_field = { nil => :id }
27
- end
28
-
29
- def set_default_sort_direction
30
- @default_sort_direction = { nil => :asc }
31
- end
32
-
33
- def sort_field(scope = nil)
34
- params.dig(scope, :sort_by) || params[:sort_by] ||
35
- @default_sort_field[scope]
36
- end
37
-
38
- def sort_direction(scope = nil)
39
- params.dig(scope, :direction) || params[:direction] ||
40
- @default_sort_direction[scope]
41
- end
42
-
43
- def permit_params
44
- @permitted_params = params.permit(sort_params, filter_params,
45
- pagination_params)
46
- end
5
+ private
6
+
7
+ def filter_params
8
+ []
9
+ end
10
+
11
+ def sort_params
12
+ %i[sort_by direction]
13
+ end
14
+
15
+ def pagination_params
16
+ %i[page]
17
+ end
18
+
19
+ def set_default_sort_opts
20
+ set_default_sort_field
21
+ set_default_sort_direction
22
+ end
23
+
24
+ def set_default_sort_field
25
+ @default_sort_field = { nil => :id }
26
+ end
27
+
28
+ def set_default_sort_direction
29
+ @default_sort_direction = { nil => :asc }
30
+ end
31
+
32
+ def sort_field(scope = nil)
33
+ params.dig(scope, :sort_by) || params[:sort_by] ||
34
+ @default_sort_field[scope]
35
+ end
36
+
37
+ def sort_direction(scope = nil)
38
+ params.dig(scope, :direction) || params[:direction] ||
39
+ @default_sort_direction[scope]
40
+ end
41
+
42
+ def permit_params
43
+ @permitted_params = params.permit(sort_params, filter_params,
44
+ pagination_params)
47
45
  end
48
46
  end
@@ -2,42 +2,39 @@
2
2
  module UrlRestorable
3
3
  extend ActiveSupport::Concern
4
4
 
5
- included do
6
- private
5
+ private
7
6
 
8
- def restore_url_params(key_prefix)
9
- key = "#{key_prefix}_url_params"
10
- if @permitted_params
11
- params_wo_paging = @permitted_params.reject do |k, _|
12
- pagination_params.include?(k.to_sym)
13
- end
7
+ def restore_url_params(key_prefix)
8
+ key = "#{key_prefix}_url_params"
9
+ if @permitted_params
10
+ params_wo_paging = @permitted_params.reject do |k, _|
11
+ pagination_params.include?(k.to_sym)
14
12
  end
15
- all_params = params_wo_paging ||
16
- params.permit(filter_params + sort_params)
13
+ end
14
+ all_params = params_wo_paging || params.permit(filter_params + sort_params)
17
15
 
18
- if params[:reset_url]
19
- if params[:reset_url] == 'all'
20
- session[key] = nil
21
- else
22
- session[key] = Rack::Utils.parse_nested_query(session[key])
23
- .except(params[:reset_url]).to_query
24
- end
25
- elsif session[key].blank?
26
- session[key] = all_params.to_h.to_query
16
+ if params[:reset_url]
17
+ if params[:reset_url] == 'all'
18
+ session[key] = nil
19
+ else
20
+ session[key] = Rack::Utils.parse_nested_query(session[key])
21
+ .except(params[:reset_url]).to_query
27
22
  end
23
+ elsif session[key].blank?
24
+ session[key] = all_params.to_h.to_query
25
+ end
28
26
 
29
- return if session[key].blank?
27
+ return if session[key].blank?
30
28
 
31
- new_params = Rack::Utils.parse_nested_query(session[key])
32
- .merge(deep_transform(all_params.to_h))
33
- session[key] = new_params.to_query
34
- params.merge!(new_params)
35
- end
29
+ new_params = Rack::Utils.parse_nested_query(session[key])
30
+ .merge(deep_transform(all_params.to_h))
31
+ session[key] = new_params.to_query
32
+ params.merge!(new_params)
33
+ end
36
34
 
37
- def deep_transform(hash)
38
- hash.transform_values do |val|
39
- val.is_a?(String) ? val : val.transform_values { |vv| vv }
40
- end
35
+ def deep_transform(hash)
36
+ hash.transform_values do |val|
37
+ val.is_a?(String) ? val : val.transform_values { |vv| vv }
41
38
  end
42
39
  end
43
40
  end
@@ -1,3 +1,3 @@
1
1
  module Sortofil
2
- VERSION = '0.1.3'.freeze
2
+ VERSION = '0.1.4'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sortofil
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rinat Garifullin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-04 00:00:00.000000000 Z
11
+ date: 2017-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails