Class: FriendlyRoutes::Params::BooleanParams

Inherits:
Base
  • Object
show all
Defined in:
lib/friendly_routes/params/boolean_params.rb

Instance Attribute Summary collapse

Attributes inherited from Base

#name, #type

Instance Method Summary collapse

Methods inherited from Base

#optional?, #refused?, #required?

Constructor Details

#initialize(name, options, optional: true) ⇒ BooleanParams

Returns a new instance of BooleanParams.



10
11
12
13
14
15
# File 'lib/friendly_routes/params/boolean_params.rb', line 10

def initialize(name, options, optional: true)
  check_params(options)
  super(:boolean, name, optional)
  @true = options[:true]
  @false = options[:false]
end

Instance Attribute Details

#falseString

value for matching false

Returns:

  • (String)

    the current value of false



7
8
9
# File 'lib/friendly_routes/params/boolean_params.rb', line 7

def false
  @false
end

#trueString

value for matching true

Returns:

  • (String)

    the current value of true



7
8
9
# File 'lib/friendly_routes/params/boolean_params.rb', line 7

def true
  @true
end

Instance Method Details

#allowed?(value) ⇒ Boolean

Check if value can be composed

Parameters:

  • value (Boolean, String)

    boolean, or “True”/“False” strings

Returns:

  • (Boolean)


38
39
40
# File 'lib/friendly_routes/params/boolean_params.rb', line 38

def allowed?(value)
  [true, false, 'true', 'false'].include? value
end

#compose(value) ⇒ String

Generate request value from params

Inverse of #parse

Parameters:

  • value (Boolean, String)

    boolean, or “True”/“False” strings

Returns:

  • (String)

    request value



31
32
33
# File 'lib/friendly_routes/params/boolean_params.rb', line 31

def compose(value)
  value == true || value == 'true' ? @true : @false
end

#constraintsObject



17
18
19
# File 'lib/friendly_routes/params/boolean_params.rb', line 17

def constraints
  Regexp.new "#{@true}|#{@false}"
end

#parse(value) ⇒ Boolean

Parse values from request

Inverse of #compose

Parameters:

  • value (String)

    request value

Returns:

  • (Boolean)


24
25
26
# File 'lib/friendly_routes/params/boolean_params.rb', line 24

def parse(value)
  (value == @true).to_s
end