hash_to_hidden_fields 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -4,13 +4,13 @@ Sometimes in your Rails app you want a user to begin an action, log in, then com
4
4
 
5
5
  Add this to your Gemfile:
6
6
 
7
- ```ruby
7
+ ``` ruby
8
8
  gem "hash_to_hidden_fields"
9
9
  ```
10
10
 
11
11
  Filter the params you want to save and turn them into hidden fields in your form:
12
12
 
13
- ```erb
13
+ ``` erb
14
14
  <%= hash_to_hidden_fields(@params_to_save) %>
15
15
  ```
16
16
 
@@ -1,3 +1,4 @@
1
+ require 'active_support/core_ext/object/to_query'
1
2
  require 'action_view'
2
3
  require 'action_view/helpers'
3
4
 
@@ -5,8 +6,8 @@ module ActionView
5
6
  module Helpers
6
7
  module HashToHiddenFields
7
8
  def hash_to_hidden_fields(hash)
8
- query_string = Rack::Utils.build_nested_query(hash)
9
- pairs = query_string.split(Rack::Utils::DEFAULT_SEP)
9
+ cleaned_hash = hash.reject { |k, v| v.nil? }
10
+ pairs = cleaned_hash.to_query.split(Rack::Utils::DEFAULT_SEP)
10
11
 
11
12
  tags = pairs.map do |pair|
12
13
  key, value = pair.split('=', 2).map { |str| Rack::Utils.unescape(str) }
@@ -17,4 +18,4 @@ module ActionView
17
18
  end
18
19
  end
19
20
  end
20
- end
21
+ end
@@ -1,3 +1,3 @@
1
1
  module HashToHiddenFields
2
- VERSION = "1.0.0"
2
+ VERSION = "2.0.0"
3
3
  end
@@ -8,8 +8,9 @@ test_hash = {
8
8
  "nested1" => "3",
9
9
  "nested2" => "4"
10
10
  },
11
+ "nil" => nil,
11
12
  "array" => [
12
- "1", "2", "3", "abc"
13
+ 1, 2, "3", "abc"
13
14
  ],
14
15
  "array of hashes" => [
15
16
  { "key 1" => "val 1" },
@@ -56,4 +57,4 @@ describe ActionView::Base do
56
57
  @hash_to_hidden_fields.size.should == expected_html_blocks.join("\n").size
57
58
  end
58
59
  end
59
- end
60
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hash_to_hidden_fields
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
- - 1
7
+ - 2
8
8
  - 0
9
9
  - 0
10
- version: 1.0.0
10
+ version: 2.0.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Brian Hempel
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-02-28 00:00:00 Z
18
+ date: 2012-05-22 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rspec
@@ -112,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
112
112
  requirements: []
113
113
 
114
114
  rubyforge_project: hash_to_hidden_fields
115
- rubygems_version: 1.8.17
115
+ rubygems_version: 1.8.21
116
116
  signing_key:
117
117
  specification_version: 3
118
118
  summary: In goes a hash, out comes hidden fields. Great for preserving Rails parameters without abusing the session.