class Perus::Pinger::Option

Attributes

default[R]
name[R]
restricted[R]

Public Class Methods

new(name, settings, command) click to toggle source
# File lib/perus/pinger/command.rb, line 8
def initialize(name, settings, command)
    @name = name
    @command = command
    @default = settings[:default]
    @restricted = settings[:restricted] == true
end

Public Instance Methods

boolean?() click to toggle source
# File lib/perus/pinger/command.rb, line 15
def boolean?
    default.is_a?(TrueClass) || default.is_a?(FalseClass)
end
process(results, values) click to toggle source
# File lib/perus/pinger/command.rb, line 19
def process(results, values)
    value = values[name.to_s]
    value = value || default

    if value.nil?
        raise "#{name} is a required option"
    end

    if restricted
        allowed = Pinger.options[@command.name.demodulize][@name.to_s]
        raise "the value, #{value}, passed to #{@name} is not allowed" unless allowed.include?(value)
    end

    results[name] = value
end