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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 65ac4c5d0c8151362a66c68801d1403568dc4454
4
- data.tar.gz: 845fb07403644501b4eda3ead29c93de9f4411ae
3
+ metadata.gz: 7dfd65dec2a7653b43626f176d0f0581035abc6c
4
+ data.tar.gz: f4dcb2b9dec41441888a012d4f15dc50a6c59351
5
5
  SHA512:
6
- metadata.gz: 95c3a116219fabe8632d6b4c20b22977d8a421a2dd1b5201f2614d4f9b6a3b795a6407de6bad15de8e0c70e0e783d2c87b5cc562d75420ebfeae98cd4f10e3d5
7
- data.tar.gz: a6180598c5705f28078f15a4cd360010f538f0edba0254b9d55e11be1b1a97756ad8175a784ac23628bb8531a49b11ad0f3f17ff289cdb223fe79f85dee6268f
6
+ metadata.gz: 364179505b2f416355f7c0d7b7c60d81c10069a5591bb5f156db510ddec3c9b14e321c0f4607188e91e033b6ff8030bd4a0a79e74558a4353c7075ddc5536b19
7
+ data.tar.gz: 3cf4d15b751a5ace2e1de99c063904bcc74a781e5d430e6092d8d62c1fc2cfa25258ddf18300f289c911627dd8c0e38a8c17e50a04166f228384904a14fbf89a
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format documentation
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.1.0
4
+ - 1.9.3
5
+ - jruby-19mode
6
+ - rbx-2
7
+ - ruby-head
data/README.md CHANGED
@@ -1,6 +1,15 @@
1
+ [![Build Status](https://travis-ci.org/gustly/params_parser.svg?branch=master)](https://travis-ci.org/gustly/params_parser)
2
+
1
3
  # ParamsParser
2
4
 
3
- TODO: Write a gem description
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
- TODO: Write usage instructions here
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
@@ -1 +1,6 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -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
@@ -1,3 +1,3 @@
1
1
  module ParamsParser
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -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", "todd@gust.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
@@ -1,3 +1,5 @@
1
1
  require "rspec"
2
+ require "pry"
2
3
 
3
4
  require "params_parser"
5
+
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.2
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: 2014-08-22 00:00:00.000000000 Z
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
- - todd@gust.com
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.0.3
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