Class: Goliath::Rack::Validation::BooleanValue
- Inherits:
-
Object
- Object
- Goliath::Rack::Validation::BooleanValue
- Defined in:
- lib/goliath/rack/validation/boolean_value.rb
Overview
A middleware to validate a given value is boolean. This will attempt to do the following conversions:
true = 'true' | 't' | 1
false = 'false' | 'f' | 0
If the parameter is not provided the :default is used.
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, opts = {}) ⇒ Goliath::Rack::Validation::BooleanValue
constructor
Called by the framework to create the validator.
Constructor Details
#initialize(app, opts = {}) ⇒ Goliath::Rack::Validation::BooleanValue
Called by the framework to create the validator
22 23 24 25 26 27 28 |
# File 'lib/goliath/rack/validation/boolean_value.rb', line 22 def initialize(app, opts = {}) @app = app @key = opts[:key] raise Exception.new("BooleanValue key required") if @key.nil? @default = opts[:default] end |
Instance Method Details
#call(env) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/goliath/rack/validation/boolean_value.rb', line 30 def call(env) if !env['params'].has_key?(@key) || env['params'][@key].nil? || env['params'][@key] == '' env['params'][@key] = @default else if env['params'][@key].instance_of?(Array) env['params'][@key] = env['params'][@key].first end if env['params'][@key].downcase == 'true' || env['params'][@key].downcase == 't' || env['params'][@key].to_i == 1 env['params'][@key] = true elsif env['params'][@key].downcase == 'false' || env['params'][@key].downcase == 'f' || env['params'][@key].to_i == 0 env['params'][@key] = false else env['params'][@key] = @default end end @app.call(env) end |