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)

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

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


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

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

Instance Attribute Details

#defaultObject

Returns the value of attribute default.


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

def default
  @default
end

Instance Method Details

#include?(option) ⇒ Boolean

Returns:

  • (Boolean)

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

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

#to_aObject


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

def to_a
  @array
end