class Sinatra::Rabbit::Param

Attributes

description[R]
klass[R]
name[R]
required[R]
values[R]

Public Class Methods

new(*args) click to toggle source
# File lib/sinatra/rabbit/param.rb, line 22
def initialize(*args)
  args.reverse!
  @name, @klass = args.pop, args.pop
  raise "DSL: You need to specify the name and param type (#{@name})" unless @name or @klass
  parse_params!(args)
  @description ||= "Description not available"
end

Public Instance Methods

enum?() click to toggle source
# File lib/sinatra/rabbit/param.rb, line 32
def enum?; !@values.nil?; end
number?() click to toggle source
# File lib/sinatra/rabbit/param.rb, line 33
def number?; [:integer, :float, :number].include?(@klass); end
optional?() click to toggle source
# File lib/sinatra/rabbit/param.rb, line 31
def optional?; !required?; end
required?() click to toggle source
# File lib/sinatra/rabbit/param.rb, line 30
def required?; @required == true; end
string?() click to toggle source
# File lib/sinatra/rabbit/param.rb, line 34
def string?; @klass == :string; end
to_s() click to toggle source
# File lib/sinatra/rabbit/param.rb, line 36
def to_s
  "#{name}:#{klass}:#{required? ? 'required' : 'optional'}"
end

Private Instance Methods

parse_params!(args) click to toggle source
# File lib/sinatra/rabbit/param.rb, line 42
def parse_params!(args)
  @values = args.pop if args.last.kind_of? Array
  @required = args.pop == :required if [:required, :optional].include? args.last
  @description = args.pop
end