sinatra-params 1.0.1 → 1.0.2

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: 35ad664f95e8b6e7ac423d8a29363dafb883b9c0
4
- data.tar.gz: 46fb75c85452c2c193f7d13dd2c87a11c248ff73
3
+ metadata.gz: a4220d11aae943a4e7b24bf403554d749836423a
4
+ data.tar.gz: 050a991ab239f00dba247d3a3a577427889e7ac4
5
5
  SHA512:
6
- metadata.gz: bccc1e0db604f62b092b37548d3bb01207a2495499075a2dc3080bc54d121c1e71040d5c7768e9d18557d9ef51aaff1014bef3ce0cf32d082f227084dfd1563a
7
- data.tar.gz: b4cf461ae61aa3672dc6a248ab4705acf480aae5f17d1cc448137c72994d3914ad29cf3a0c337d4306a9ac3c440d79492bb2fd18ed35190d40c17f5b8963087a
6
+ metadata.gz: d92342df34606dc20f5164395a8a737e24ace64697420ebdf308c0cea357464852fd8313666f7028c16bb0692f98fdeec8d57adae22b7479aca22bc12cf90288
7
+ data.tar.gz: db4b8ce52284d5ad0b9db24edc622ed5e17ca409553132bb32b4ebe96c63222e1e70ecef3e81d93861d4a0bb193b9bd5890b7b46c9f5e80f61eeab6349a1ece3
@@ -1,33 +1,38 @@
1
1
  require 'date'
2
2
 
3
- module Sinatra
4
- module Params
5
- attr_reader :respond_as, :convert
3
+ module Conversion
4
+ attr_accessor :respond_as, :convert
5
+ extend self
6
+ end
6
7
 
7
- @respond_as = {
8
- String => :to_s,
9
- Integer => :to_i
10
- }
8
+ Conversion.respond_as = {
9
+ String => :to_s,
10
+ Integer => :to_i
11
+ }
11
12
 
12
- @convert = {
13
- String => {
14
- Array => Proc.new { |input| input.split(%r{,\s*}) },
15
- Date => Proc.new { |input| Date.parse(input) },
16
- DateTime => Proc.new { |input| DateTime.parse(input) }
17
- }
13
+ Conversion.convert = {
14
+ String => {
15
+ Array => Proc.new { |input| input.split(%r{,\s*}) },
16
+ Date => Proc.new { |input| Date.parse(input) },
17
+ DateTime => Proc.new { |input| DateTime.parse(input) }
18
18
  }
19
+ }
19
20
 
21
+ module Sinatra
22
+ module Params
20
23
  def param (name, type, args = {})
21
- raise 'Parameter {name} missing'.sub('{name}', name) unless params.key? name
24
+ raise 'Parameter {name} missing'.sub('{name}', name.to_s) unless params.key? name
25
+
26
+ params.define_singleton_method(name.to_sym) { self[name] }
22
27
 
23
- params.define_singleton_method(name) { self[name] }
28
+ p Conversion.respond_as
24
29
 
25
30
  if params[name].class == type
26
31
  # Do nothing
27
- elsif params[name].respond_to? respond_as[type]
28
- params[name] = params[name].send(respond_as[type])
29
- elsif convert[params[name].class] and convert[params[name].class].key? type
30
- params[name] = convert[params[name].class][type].call(params[name])
32
+ elsif params[name].respond_to? Conversion.respond_as[type]
33
+ params[name] = params[name].send(Conversion.respond_as[type])
34
+ elsif Conversion.convert[params[name].class] and Conversion.convert[params[name].class].key? type
35
+ params[name] = Conversion.convert[params[name].class][type].call(params[name])
31
36
  else
32
37
  raise 'Parameter {name} not found'.sub('{name}', name) unless args[:optional]
33
38
  end
@@ -1,5 +1,5 @@
1
1
  module Sinatra
2
2
  module Params
3
- VERSION = '1.0.1'
3
+ VERSION = '1.0.2'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra-params
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felipe Cabrera