Class: Factbase::WhiteList::WhiteFact

Inherits:
Object
  • Object
show all
Defined in:
lib/factbase/white_list.rb

Overview

A fact that is allows only values from the list.

Instance Method Summary collapse

Constructor Details

#initialize(fact, key, list) ⇒ WhiteFact

Returns a new instance of WhiteFact.



58
59
60
61
62
# File 'lib/factbase/white_list.rb', line 58

def initialize(fact, key, list)
  @fact = fact
  @key = key
  @allowed = list
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(*args) ⇒ Object



64
65
66
67
# File 'lib/factbase/white_list.rb', line 64

def method_missing(*args)
  raise "#{args[0]} '#{args[1]}' not allowed" if args[0].to_s == "#{@key}=" && !@allowed.include?(args[1])
  @fact.method_missing(*args)
end

Instance Method Details

#respond_to?(method, include_private = false) ⇒ Boolean

rubocop:disable Style/OptionalBooleanParameter

Returns:

  • (Boolean)


70
71
72
73
# File 'lib/factbase/white_list.rb', line 70

def respond_to?(method, include_private = false)
  # rubocop:enable Style/OptionalBooleanParameter
  @fact.respond_to?(method, include_private)
end

#respond_to_missing?(method, include_private = false) ⇒ Boolean

Returns:

  • (Boolean)


75
76
77
# File 'lib/factbase/white_list.rb', line 75

def respond_to_missing?(method, include_private = false)
  @fact.respond_to_missing?(method, include_private)
end