Class: HashFilterer

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

Overview

Can be used to check if a given hash respects a list of rules

Defined Under Namespace

Classes: Rule

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(rules) ⇒ HashFilterer

Returns a new instance of HashFilterer.



94
95
96
97
# File 'lib/hash_filterer.rb', line 94

def initialize(rules)
  @rules = []
  (rules || []).each { |r| add_rule r }
end

Instance Attribute Details

#error_messagesObject (readonly)

Returns the value of attribute error_messages.



92
93
94
# File 'lib/hash_filterer.rb', line 92

def error_messages
  @error_messages
end

Instance Method Details

#accept?(hash) ⇒ Boolean

Returns:

  • (Boolean)


99
100
101
102
103
104
105
106
# File 'lib/hash_filterer.rb', line 99

def accept?(hash)
  @error_messages = []
  @rules.all? do |rule|
    ok = rule.accept? hash
    @error_messages << rule.error_message unless ok
    ok
  end
end