url_params_manager 0.4.0 → 0.5.0

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: bf37bee0652052fef68a8af38060681bbb126918
4
- data.tar.gz: 7324ae64c1d098a22f95f0cd036eeabccf1cf694
3
+ metadata.gz: 3d2fd9f24eb02adc69e61c80d542b1c833ba3c15
4
+ data.tar.gz: fb4c94f651c2cf2700d85d9b60c83be05dd1c4bb
5
5
  SHA512:
6
- metadata.gz: d5cfbb60aef90c0f51730ce0a00b2f7ec4fb5542930ab1158abb235e04e5e2294a870cddbae126f016bafef55c7614f4f9c43646ee9a2a2fc22573977b156938
7
- data.tar.gz: 7928e4654ce2ef213de734269972a6ae87d09a9d5c6a70af1d04e3056c564068dc75ae1cd867a31c42cc38e3ef3f266e0ae0838386d16eb61dc1837054fe3ad1
6
+ metadata.gz: 1f87befa22054f408155f9ef04fb248a528f68c6bc12f0ad79d405f1a165a5ec3d574ef8e6ba1aeaabfcaaff6ad5e3cc03d1cd910d09e8e26d4eb9be0b85e080
7
+ data.tar.gz: 75d4f2a1d6dc80cb4f4936b691560a7640da24eec5f31ac18c59f12a736f67768fc4295cd000abe53bfc8e8faab4bc1cc94f7e9ef7fc1da6b016338f5ce0c046
data/README.md CHANGED
@@ -108,6 +108,10 @@ default_params = {
108
108
  The `filter_params` will be passed to that callable object before returning on `filters_from_url_params` calls
109
109
  as well as at the beginning of `url_args_from_filters` calls.
110
110
 
111
+ ### `filter_params_pretreatment`
112
+
113
+ same as `filter_params_treatment` but it's applied to the url_params at the beginning of `filters_from_url_params` calls only, right after symbolizing the keys.
114
+
111
115
  ### `always_lists_fields`
112
116
 
113
117
  `UrlParamsManager` object can receive a `always_lists_fields` option with:
@@ -288,15 +292,20 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
288
292
 
289
293
  ## Changeset
290
294
 
295
+ ### v.0.5.0
296
+
297
+ - added `filter_params_pretreatment` option.
298
+
299
+ ### v.0.4.0
300
+ - fixed typo in `position_defined_url_params` (it was position_defined_url_parms)
301
+ - added `always_lists_fields` option.
302
+
291
303
  ### v.0.2.0
292
304
 
293
305
  - added `filter_params_treatment` option.
294
306
 
307
+ ## Yanked Versions
308
+
295
309
  ### v.0.3.0: YANKED!
296
310
 
297
311
  - added `position_defined_url_params` option.
298
-
299
-
300
- ### v.0.4.0
301
- - fixed typo in `position_defined_url_params` (it was position_defined_url_parms)
302
- - added `always_lists_fields` option.
@@ -10,13 +10,15 @@ module UrlParamsManager
10
10
  default_params: {},
11
11
  always_lists_fields: {},
12
12
  position_defined_url_params: nil,
13
- filter_params_treatment: ->(filter_params) { filter_params }
13
+ filter_params_treatment: UrlParamsManager::Service::UNITY_FUNCTION,
14
+ filter_params_pretreatment: UrlParamsManager::Service::UNITY_FUNCTION
14
15
  )
15
16
  Service.new url_to_filter_params: url_to_filter_params,
16
17
  indexed_url_params_order: indexed_url_params_order,
17
18
  app_url_helpers: app_url_helpers,
18
19
  default_params: default_params,
19
20
  filter_params_treatment: filter_params_treatment,
21
+ filter_params_pretreatment: filter_params_pretreatment,
20
22
  position_defined_url_params: position_defined_url_params,
21
23
  always_lists_fields: always_lists_fields
22
24
 
@@ -4,7 +4,7 @@ module UrlParamsManager
4
4
  PREFIX_SEPARATOR = '-'.freeze
5
5
  DEFAULT_PLACEHOLDER = '_'.freeze
6
6
  DEFAULT_MULTIPLE_SEPARATOR_FOR_POSITION = '--'.freeze
7
- DEFAULT_FILTER_PARAMS_TREATMENT = ->(filter_params) { filter_params }
7
+ UNITY_FUNCTION = ->(filter_params) { filter_params }
8
8
 
9
9
  attr_reader :app_url_helpers,
10
10
  :url_to_filter_params,
@@ -13,6 +13,7 @@ module UrlParamsManager
13
13
  :default_params,
14
14
  :position_defined_url_params,
15
15
  :filter_params_treatment,
16
+ :filter_params_pretreatment,
16
17
  :always_lists_fields
17
18
 
18
19
  def initialize(url_to_filter_params: nil,
@@ -21,7 +22,8 @@ module UrlParamsManager
21
22
  default_params: {},
22
23
  always_lists_fields: {},
23
24
  position_defined_url_params: nil,
24
- filter_params_treatment: DEFAULT_FILTER_PARAMS_TREATMENT
25
+ filter_params_pretreatment: UNITY_FUNCTION,
26
+ filter_params_treatment: UNITY_FUNCTION
25
27
  )
26
28
  @url_to_filter_params = url_to_filter_params
27
29
  @filter_to_url_params = url_to_filter_params.invert
@@ -30,6 +32,7 @@ module UrlParamsManager
30
32
  @default_params = default_params
31
33
  @position_defined_url_params = position_defined_url_params.presence || {}
32
34
  @filter_params_treatment = filter_params_treatment
35
+ @filter_params_pretreatment = filter_params_pretreatment
33
36
  @always_lists_fields = prepare_always_lists_fields(always_lists_fields)
34
37
  end
35
38
 
@@ -39,9 +42,8 @@ module UrlParamsManager
39
42
  end
40
43
 
41
44
  # for filters from url/path params
42
- def filters_from_url_params(params)
43
- params = params.to_h.symbolize_keys
44
-
45
+ def filters_from_url_params(given_params)
46
+ params = filter_params_pretreatment.call given_params.to_h.symbolize_keys
45
47
  filters = unfold_filters(params)
46
48
 
47
49
  pars = filters.merge querystring_to_filters(params)
@@ -1,3 +1,3 @@
1
1
  module UrlParamsManager
2
- VERSION = '0.4.0'
2
+ VERSION = '0.5.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: url_params_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo Turiño
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2015-11-20 00:00:00.000000000 Z
12
+ date: 2015-11-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport