sortofil 0.1.3 → 0.1.4

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 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