params_parser 0.0.2 → 0.0.4

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
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