Class: ObjectSelector::Provider::RegexRuleList

Inherits:
Object
  • Object
show all
Defined in:
lib/object_selector/provider/regex_rule_list.rb

Instance Method Summary collapse

Constructor Details

#initialize(rules:) ⇒ RegexRuleList

Returns a new instance of RegexRuleList.

Parameters:

  • rules (Array<Hash>)

Options Hash (rules:):

  • :regex (Regex)
  • :object (Object)

Raises:

  • (ArgumentError)


12
13
14
15
# File 'lib/object_selector/provider/regex_rule_list.rb', line 12

def initialize(rules:)
  raise ArgumentError, 'Rules should be an array' if not rules.is_a?(Array)
  @rules = rules
end

Instance Method Details

#select(value) ⇒ Object

Returns selected object key in rules

Parameters:

  • value (String)

    to match against the regex key in rules

Returns:

  • (Object)

    returns selected object key in rules

Raises:



22
23
24
25
26
27
28
# File 'lib/object_selector/provider/regex_rule_list.rb', line 22

def select(value)
  object = @rules.map { |rule| 
    break rule[:object] if rule[:regex].match(value)
  } 
  raise ObjectSelector::Error::NoMatchError, 'No rules matched' if object.is_a?(Array) and object.all? &:nil?
  return object
end