Class: RequestType::Validator::ArrayWithDefault

Inherits:
Object
  • Object
show all
Defined in:
app/models/request_type/validator.rb

Overview

Array class that lets you set a default value If first argument is an array, second argument is assumed to be default Raises exception is default is not in the array In all other cases passes argument to standard array initializer

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(array, default) ⇒ ArrayWithDefault

Returns a new instance of ArrayWithDefault.

Raises:

  • (StandardError)

41
42
43
44
45
46
# File 'app/models/request_type/validator.rb', line 41

def initialize(array, default)
  raise StandardError, 'Default is not in array' unless array.include?(default)

  @default = default
  @array = array
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args, &block) ⇒ Object


48
49
50
# File 'app/models/request_type/validator.rb', line 48

def method_missing(method, *args, &block)
  @array.send(method, *args, &block)
end

Instance Attribute Details

#defaultObject

Returns the value of attribute default


39
40
41
# File 'app/models/request_type/validator.rb', line 39

def default
  @default
end

Instance Method Details

#include?(option) ⇒ Boolean

Returns:

  • (Boolean)

52
53
54
55
# File 'app/models/request_type/validator.rb', line 52

def include?(option)
  # We have to define include specifically
  @array.include?(option)
end

#to_aObject


57
58
59
# File 'app/models/request_type/validator.rb', line 57

def to_a
  @array
end