merge_params 0.2.0 → 0.3.0

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
- SHA1:
3
- metadata.gz: 60f0644a975a59c156bcd0324be1f7a08e07d1bc
4
- data.tar.gz: d2bdd9e4ab258fabb6025bfd49415014a94aa818
2
+ SHA256:
3
+ metadata.gz: d02292b14bbd8378da9306edaaf9ba131f54bf7a638ce247c96db14f10ef7e80
4
+ data.tar.gz: f86ffa29a81b4d8d427f99757f18ee4b505727830c7fb8b8e3459bd8fe4e3d1b
5
5
  SHA512:
6
- metadata.gz: 575ceab7b08f14f19aa7609709f64299effeaf21925d0dc4cedbdf4a776542cc237dfacea2983864c30e98aae752825444c8a37184e7feec3033158851fb6725
7
- data.tar.gz: db13d502675945cad348f8ba5d0467c225a6abe513a8c89603ea47da9407bd2670ea2b2d81a5ada876603d5adf4da1ae5a1e39fe42f2adfb6310d925706eec17
6
+ metadata.gz: f14c18536515ec20bc11ab826acb0eabf8b417ee485a844eb3cb9fbf9e0d7ee24428e146f2f42ca79f10281cb68d12c1d0faca6159869634c65e3b9292827cac
7
+ data.tar.gz: e4c02db3a74fdb11ecc5b2ff4aa8a0ad65e0c2615af1c6338a6df4afc67e968391e1aa5a7f76b37c2f90f2b5f3e03e5aef8abe82ab8a005a53cbdea2acc0169f
@@ -0,0 +1,32 @@
1
+ # Changelog
2
+
3
+ This project follows [semver 2.0.0](http://semver.org/spec/v2.0.0.html) and the
4
+ recommendations of [keepachangelog.com](http://keepachangelog.com/).
5
+
6
+ ## (Unreleased)
7
+
8
+
9
+ ## 0.3.0 (2019-01-24)
10
+
11
+ ### Fixed
12
+ - Fix `merge_url_for` to not try to add a param as a query param if it's been recognized as a route
13
+ param (part of the route path). We don't want the same param to be passed both via the route path
14
+ *and* the query string.
15
+
16
+ ### Added
17
+ - `merge_url_for`: Allow keys that are currently in `query_params` to be deleted by setting their
18
+ value to `nil`.
19
+
20
+
21
+ ## 0.2.0 (2018-12-05)
22
+
23
+ ### Fixed
24
+ - Fix `add_params` to not inadvertently add a '?' to the end of the URI if there are no params to add
25
+
26
+ ### Added
27
+ - Add `slice_params` helper
28
+
29
+
30
+ ## 0.1.0 (2018-11-16)
31
+
32
+ Initial release
data/Readme.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # MergeParams
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/merge_params.svg)](https://badge.fury.io/rb/merge_params)
4
+
3
5
  ## Why do we need it?
4
6
 
5
7
  Have you ever wanted to take the current route and change just one parameter in the route to
@@ -79,13 +79,22 @@ module MergeParams::Helpers
79
79
 
80
80
  # Safely merges the given params with the params from the current request, then generates a route
81
81
  # from the merged params.
82
+ # You can remove a key by passing nil as the value, for example {key: nil}.
82
83
  def merge_url_for(new_params = {})
83
84
  url = url_for(merge_params(new_params))
84
85
 
85
86
  # Now pass along in the *query string* any params that we couldn't pass to url_for because they
86
87
  # were reserved options.
87
88
  query_params_already_added = parse_nested_query(URI(url).query || '')
88
- query_params_to_add = query_params.except(*query_params_already_added.keys)
89
+ # Some params from new_params (like company_id) that we pass in may be recognized by a route and
90
+ # therefore no longer be query params. We use recognize_path to find those params that ended up
91
+ # as route params instead of query_params but are nonetheless aready added to the url.
92
+ params_already_added = Rails.application.routes.recognize_path(url).merge(query_params_already_added)
93
+ keys_already_added = params_already_added.keys
94
+ # Allow keys that are currently in query_params to be deleted by setting their value to nil in
95
+ # new_params.
96
+ keys_to_delete = new_params.select {|k,v| v.nil?}.keys
97
+ query_params_to_add = query_params.except(*keys_already_added + keys_to_delete)
89
98
  add_params(query_params_to_add, url)
90
99
  end
91
100
 
@@ -1,5 +1,5 @@
1
1
  module MergeParams
2
2
  def self.version
3
- "0.2.0"
3
+ "0.3.0"
4
4
  end
5
5
  end
@@ -11,11 +11,11 @@ Gem::Specification.new do |spec|
11
11
 
12
12
  spec.summary = %q{Safely merge params for use with url_for or for the query string}
13
13
  spec.description = spec.summary
14
- spec.homepage = "http://github.com/TylerRick/merge_params"
14
+ spec.homepage = "https://github.com/TylerRick/merge_params"
15
15
 
16
16
  spec.metadata["homepage_uri"] = spec.homepage
17
17
  spec.metadata["source_code_uri"] = spec.homepage
18
- spec.metadata["changelog_uri"] = "TODO: Put your gem's Changelog.md URL here."
18
+ spec.metadata["changelog_uri"] = "#{spec.metadata["source_code_uri"]}/blob/master/Changelog.md"
19
19
 
20
20
  # Specify which files should be added to the gem when it is released.
21
21
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: merge_params
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tyler Rick
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-12-05 00:00:00.000000000 Z
11
+ date: 2019-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -102,6 +102,7 @@ files:
102
102
  - ".gitignore"
103
103
  - ".rspec"
104
104
  - ".travis.yml"
105
+ - Changelog.md
105
106
  - Gemfile
106
107
  - License
107
108
  - Rakefile
@@ -112,13 +113,13 @@ files:
112
113
  - lib/merge_params/helpers.rb
113
114
  - lib/merge_params/version.rb
114
115
  - merge_params.gemspec
115
- homepage: http://github.com/TylerRick/merge_params
116
+ homepage: https://github.com/TylerRick/merge_params
116
117
  licenses:
117
118
  - MIT
118
119
  metadata:
119
- homepage_uri: http://github.com/TylerRick/merge_params
120
- source_code_uri: http://github.com/TylerRick/merge_params
121
- changelog_uri: 'TODO: Put your gem''s Changelog.md URL here.'
120
+ homepage_uri: https://github.com/TylerRick/merge_params
121
+ source_code_uri: https://github.com/TylerRick/merge_params
122
+ changelog_uri: https://github.com/TylerRick/merge_params/blob/master/Changelog.md
122
123
  post_install_message:
123
124
  rdoc_options: []
124
125
  require_paths:
@@ -134,8 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
135
  - !ruby/object:Gem::Version
135
136
  version: '0'
136
137
  requirements: []
137
- rubyforge_project:
138
- rubygems_version: 2.6.14.3
138
+ rubygems_version: 3.0.1
139
139
  signing_key:
140
140
  specification_version: 4
141
141
  summary: Safely merge params for use with url_for or for the query string