params_parser 0.0.2 → 0.0.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 +4 -4
- data/.rspec +2 -0
- data/.travis.yml +7 -0
- data/README.md +34 -2
- data/Rakefile +5 -0
- data/lib/params_parser/rails_integration.rb +20 -0
- data/lib/params_parser/version.rb +1 -1
- data/params_parser.gemspec +4 -1
- data/spec/params_parser/rails_integration_spec.rb +21 -0
- data/spec/support/spec_helper.rb +2 -0
- metadata +60 -13
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7dfd65dec2a7653b43626f176d0f0581035abc6c
|
|
4
|
+
data.tar.gz: f4dcb2b9dec41441888a012d4f15dc50a6c59351
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 364179505b2f416355f7c0d7b7c60d81c10069a5591bb5f156db510ddec3c9b14e321c0f4607188e91e033b6ff8030bd4a0a79e74558a4353c7075ddc5536b19
|
|
7
|
+
data.tar.gz: 3cf4d15b751a5ace2e1de99c063904bcc74a781e5d430e6092d8d62c1fc2cfa25258ddf18300f289c911627dd8c0e38a8c17e50a04166f228384904a14fbf89a
|
data/.rspec
ADDED
data/.travis.yml
ADDED
data/README.md
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
|
+
[](https://travis-ci.org/gustly/params_parser)
|
|
2
|
+
|
|
1
3
|
# ParamsParser
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
`ParamsParser` is a simple gem to help - you guessed it - parse parameter hashes.
|
|
6
|
+
|
|
7
|
+
`ParamsParser` currently supports:
|
|
8
|
+
|
|
9
|
+
* defaults
|
|
10
|
+
* transformations
|
|
11
|
+
* mapping input keys to output keys
|
|
12
|
+
|
|
4
13
|
|
|
5
14
|
## Installation
|
|
6
15
|
|
|
@@ -18,7 +27,30 @@ Or install it yourself as:
|
|
|
18
27
|
|
|
19
28
|
## Usage
|
|
20
29
|
|
|
21
|
-
|
|
30
|
+
Create a parser with a configuration hash:
|
|
31
|
+
|
|
32
|
+
```ruby
|
|
33
|
+
parser = ParamsParser::Parser.new({
|
|
34
|
+
id: { transform: Model.public_method(:find), map_to: :model }
|
|
35
|
+
page: { default: 1, transform: :to_i.to_proc }
|
|
36
|
+
})
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Parse parameters:
|
|
40
|
+
|
|
41
|
+
```ruby
|
|
42
|
+
parser.parse({ # {
|
|
43
|
+
id: "1", # model: Model(...),
|
|
44
|
+
page: "5" # page: 5
|
|
45
|
+
}) # }
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
```ruby
|
|
49
|
+
parser.parse({ # {
|
|
50
|
+
id: "1", # model: Model(...),
|
|
51
|
+
}) # page: 1
|
|
52
|
+
# }
|
|
53
|
+
```
|
|
22
54
|
|
|
23
55
|
## Contributing
|
|
24
56
|
|
data/Rakefile
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module ParamsParser
|
|
2
|
+
module RailsIntegration
|
|
3
|
+
def parse(params)
|
|
4
|
+
permit(super(permit(params)))
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
private
|
|
8
|
+
|
|
9
|
+
def permit(params)
|
|
10
|
+
case params
|
|
11
|
+
when ActionController::Parameters
|
|
12
|
+
params.permit(config.keys)
|
|
13
|
+
else
|
|
14
|
+
params
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
Parser.prepend RailsIntegration
|
|
20
|
+
end
|
data/params_parser.gemspec
CHANGED
|
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
|
|
|
7
7
|
spec.name = "params_parser"
|
|
8
8
|
spec.version = ParamsParser::VERSION
|
|
9
9
|
spec.authors = ["Peter Swan", "Todd Mohney"]
|
|
10
|
-
spec.email = ["pdswan@gmail.com", "
|
|
10
|
+
spec.email = ["pdswan@gmail.com", "toddmohney@gmail.com"]
|
|
11
11
|
spec.summary = %q{Parse Parameters with key mapping, transformation, and defaults.}
|
|
12
12
|
spec.description = %q{Parse Parameters with key mapping, transformation, and defaults.}
|
|
13
13
|
spec.homepage = "https://github.com/gustly/params_parser"
|
|
@@ -21,4 +21,7 @@ Gem::Specification.new do |spec|
|
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.5"
|
|
22
22
|
spec.add_development_dependency "rspec", "~> 3.0"
|
|
23
23
|
spec.add_development_dependency "rake"
|
|
24
|
+
spec.add_development_dependency "actionpack", "~> 5.2.8.1"
|
|
25
|
+
spec.add_development_dependency "pry"
|
|
26
|
+
spec.add_development_dependency "pry-byebug"
|
|
24
27
|
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require "support/spec_helper"
|
|
2
|
+
|
|
3
|
+
require "params_parser/rails_integration"
|
|
4
|
+
require "active_support"
|
|
5
|
+
require "action_controller/metal/strong_parameters"
|
|
6
|
+
|
|
7
|
+
describe ParamsParser::Parser do
|
|
8
|
+
subject(:params_parser) { ParamsParser::Parser.new(config) }
|
|
9
|
+
|
|
10
|
+
describe "#parse" do
|
|
11
|
+
subject(:parsed) { params_parser.parse(parameters) }
|
|
12
|
+
|
|
13
|
+
let(:config) { { configured_key: { } } }
|
|
14
|
+
let(:parameters) { ActionController::Parameters.new(configured_key: double) }
|
|
15
|
+
|
|
16
|
+
it "returns an ActionController::Parameters with permitted keys" do
|
|
17
|
+
expect(parsed).to be_a ActionController::Parameters
|
|
18
|
+
expect(parsed).to be_permitted
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
data/spec/support/spec_helper.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: params_parser
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter Swan
|
|
@@ -9,67 +9,113 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2023-03-30 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: bundler
|
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
|
17
17
|
requirements:
|
|
18
|
-
- - ~>
|
|
18
|
+
- - "~>"
|
|
19
19
|
- !ruby/object:Gem::Version
|
|
20
20
|
version: '1.5'
|
|
21
21
|
type: :development
|
|
22
22
|
prerelease: false
|
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
|
24
24
|
requirements:
|
|
25
|
-
- - ~>
|
|
25
|
+
- - "~>"
|
|
26
26
|
- !ruby/object:Gem::Version
|
|
27
27
|
version: '1.5'
|
|
28
28
|
- !ruby/object:Gem::Dependency
|
|
29
29
|
name: rspec
|
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
|
31
31
|
requirements:
|
|
32
|
-
- - ~>
|
|
32
|
+
- - "~>"
|
|
33
33
|
- !ruby/object:Gem::Version
|
|
34
34
|
version: '3.0'
|
|
35
35
|
type: :development
|
|
36
36
|
prerelease: false
|
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
|
38
38
|
requirements:
|
|
39
|
-
- - ~>
|
|
39
|
+
- - "~>"
|
|
40
40
|
- !ruby/object:Gem::Version
|
|
41
41
|
version: '3.0'
|
|
42
42
|
- !ruby/object:Gem::Dependency
|
|
43
43
|
name: rake
|
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
|
45
45
|
requirements:
|
|
46
|
-
- -
|
|
46
|
+
- - ">="
|
|
47
47
|
- !ruby/object:Gem::Version
|
|
48
48
|
version: '0'
|
|
49
49
|
type: :development
|
|
50
50
|
prerelease: false
|
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
|
52
52
|
requirements:
|
|
53
|
-
- -
|
|
53
|
+
- - ">="
|
|
54
|
+
- !ruby/object:Gem::Version
|
|
55
|
+
version: '0'
|
|
56
|
+
- !ruby/object:Gem::Dependency
|
|
57
|
+
name: actionpack
|
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
|
59
|
+
requirements:
|
|
60
|
+
- - "~>"
|
|
61
|
+
- !ruby/object:Gem::Version
|
|
62
|
+
version: 5.2.8.1
|
|
63
|
+
type: :development
|
|
64
|
+
prerelease: false
|
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
66
|
+
requirements:
|
|
67
|
+
- - "~>"
|
|
68
|
+
- !ruby/object:Gem::Version
|
|
69
|
+
version: 5.2.8.1
|
|
70
|
+
- !ruby/object:Gem::Dependency
|
|
71
|
+
name: pry
|
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
|
73
|
+
requirements:
|
|
74
|
+
- - ">="
|
|
75
|
+
- !ruby/object:Gem::Version
|
|
76
|
+
version: '0'
|
|
77
|
+
type: :development
|
|
78
|
+
prerelease: false
|
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
80
|
+
requirements:
|
|
81
|
+
- - ">="
|
|
82
|
+
- !ruby/object:Gem::Version
|
|
83
|
+
version: '0'
|
|
84
|
+
- !ruby/object:Gem::Dependency
|
|
85
|
+
name: pry-byebug
|
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
|
87
|
+
requirements:
|
|
88
|
+
- - ">="
|
|
89
|
+
- !ruby/object:Gem::Version
|
|
90
|
+
version: '0'
|
|
91
|
+
type: :development
|
|
92
|
+
prerelease: false
|
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
94
|
+
requirements:
|
|
95
|
+
- - ">="
|
|
54
96
|
- !ruby/object:Gem::Version
|
|
55
97
|
version: '0'
|
|
56
98
|
description: Parse Parameters with key mapping, transformation, and defaults.
|
|
57
99
|
email:
|
|
58
100
|
- pdswan@gmail.com
|
|
59
|
-
-
|
|
101
|
+
- toddmohney@gmail.com
|
|
60
102
|
executables: []
|
|
61
103
|
extensions: []
|
|
62
104
|
extra_rdoc_files: []
|
|
63
105
|
files:
|
|
64
|
-
- .gitignore
|
|
106
|
+
- ".gitignore"
|
|
107
|
+
- ".rspec"
|
|
108
|
+
- ".travis.yml"
|
|
65
109
|
- Gemfile
|
|
66
110
|
- LICENSE.txt
|
|
67
111
|
- README.md
|
|
68
112
|
- Rakefile
|
|
69
113
|
- lib/params_parser.rb
|
|
114
|
+
- lib/params_parser/rails_integration.rb
|
|
70
115
|
- lib/params_parser/version.rb
|
|
71
116
|
- params_parser.gemspec
|
|
72
117
|
- spec/params_parser/parser_spec.rb
|
|
118
|
+
- spec/params_parser/rails_integration_spec.rb
|
|
73
119
|
- spec/params_parser/use_cases/nested_parsers_spec.rb
|
|
74
120
|
- spec/support/spec_helper.rb
|
|
75
121
|
homepage: https://github.com/gustly/params_parser
|
|
@@ -82,21 +128,22 @@ require_paths:
|
|
|
82
128
|
- lib
|
|
83
129
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
84
130
|
requirements:
|
|
85
|
-
- -
|
|
131
|
+
- - ">="
|
|
86
132
|
- !ruby/object:Gem::Version
|
|
87
133
|
version: '0'
|
|
88
134
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
89
135
|
requirements:
|
|
90
|
-
- -
|
|
136
|
+
- - ">="
|
|
91
137
|
- !ruby/object:Gem::Version
|
|
92
138
|
version: '0'
|
|
93
139
|
requirements: []
|
|
94
140
|
rubyforge_project:
|
|
95
|
-
rubygems_version: 2.
|
|
141
|
+
rubygems_version: 2.5.1
|
|
96
142
|
signing_key:
|
|
97
143
|
specification_version: 4
|
|
98
144
|
summary: Parse Parameters with key mapping, transformation, and defaults.
|
|
99
145
|
test_files:
|
|
100
146
|
- spec/params_parser/parser_spec.rb
|
|
147
|
+
- spec/params_parser/rails_integration_spec.rb
|
|
101
148
|
- spec/params_parser/use_cases/nested_parsers_spec.rb
|
|
102
149
|
- spec/support/spec_helper.rb
|