Class: Factbase::WhiteList::WhiteFact
- Inherits:
-
Object
- Object
- Factbase::WhiteList::WhiteFact
- Defined in:
- lib/factbase/white_list.rb
Overview
A fact that is allows only values from the list.
Instance Method Summary collapse
-
#initialize(fact, key, list) ⇒ WhiteFact
constructor
A new instance of WhiteFact.
- #method_missing(*args) ⇒ Object
-
#respond_to?(method, include_private = false) ⇒ Boolean
rubocop:disable Style/OptionalBooleanParameter.
- #respond_to_missing?(method, include_private = false) ⇒ Boolean
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
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
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 |