sinatra-my-params 0.0.1 → 0.0.2

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
  SHA256:
3
- metadata.gz: 03d95a0948071a629809d0733d17cf36ff552f451594de835cdda64670b9d32c
4
- data.tar.gz: 4d80191893aeb6a86f6bbe269fa2be607f2a0c2807e0a125fd1e9d3090ab293d
3
+ metadata.gz: '08a02ee0bcfe3f018ef811ac5ba3c1c5b53591461a4d6022714faa9ea55d57c8'
4
+ data.tar.gz: d3e4314359090e1118e7e007bf05bf9e760aaa2f43170d42dd33c7daa95714da
5
5
  SHA512:
6
- metadata.gz: bd1456d10b45d4238ac698aff9247e869e6a0a7ec01ac7e6d544b3d5f0f3449f1a3cd511167e358e98cab476383fba69c5cfbe0ef92093448ed2b61102b76dd4
7
- data.tar.gz: 8c576e0f4ae287df3a148a913ce62cc155269be7bb9b54db57138edb29b325f770e1248b1ad6dcb4ecce2fa43068e49812814b597493405bbf44c6dac85c109d
6
+ metadata.gz: a596f13ac286229ba0bb7c836e5f177716e9fc9ce25c86da25ee730ef36e6833bd0e2ae980d7ceeb0f8f0e56641799e287eeea17d7c0082be88fbfd690e9b3a3
7
+ data.tar.gz: 7daedfd337eaa9ff6320d182690b5430f943105f98c17e2a9295c971964103ed3b931fbbdc50dbeaa1e6bb2fd75b79973c1ca76ccdc48f4f5a6535e2989357a6
data/lib/permit_params.rb CHANGED
@@ -1,7 +1,14 @@
1
1
  module PermitParams
2
- def permitted_params(params, permitted)
2
+ class InvalidParameterError < StandardError
3
+ attr_accessor :param, :options
4
+ end
5
+
6
+
7
+ def permitted_params(params, permitted, strong_validation = false)
3
8
  params.select do |k,v|
4
- permitted.keys.map(&:to_s).include?(k.to_s) && !v.nil? && coerce(v, permitted[k.to_sym])
9
+ permitted.keys.map(&:to_s).include?(k.to_s) &&
10
+ !v.nil? &&
11
+ coerce(v, permitted[k.to_sym], strong_validation)
5
12
  end
6
13
  end
7
14
 
@@ -1,5 +1,7 @@
1
1
  require 'test/unit'
2
2
  require 'permit_params'
3
+ require 'rspec'
4
+ require 'rack/test'
3
5
 
4
6
  class PermitParamsTest < Test::Unit::TestCase
5
7
  include PermitParams
@@ -9,4 +11,25 @@ class PermitParamsTest < Test::Unit::TestCase
9
11
  output = { param_1: "hola" }
10
12
  assert_equal output, permitted_params( input, { param_1: String } )
11
13
  end
14
+
15
+ def test_permit_integer
16
+ input = { param_1: 1 }
17
+ output = { param_1: 1 }
18
+ assert_equal output, permitted_params( input, { param_1: Integer } )
19
+ end
20
+
21
+ def test_remove_integer
22
+ input = { param_1: "a"}
23
+ output = {}
24
+ assert_equal output, permitted_params( input, { param_1: Integer } )
25
+ end
26
+
27
+ describe 'Exception' do
28
+ describe 'raise' do
29
+ it 'should raise error when no parameters are specified' do
30
+ input = { param_1: "a"}
31
+ expect(permitted_params( input, { param_1: Integer }, true )).to raise_error InvalidParameterError
32
+ end
33
+ end
34
+ end
12
35
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra-my-params
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marco Aviles