class RMonitor::Matcher
Public Class Methods
new(options = {})
click to toggle source
# File lib/rmonitor/matcher.rb, line 3 def initialize(options = {}) @capabilities = options[:capabilities] || Capabilities.new(options).parse end
Public Instance Methods
invokable?(profile)
click to toggle source
# File lib/rmonitor/matcher.rb, line 7 def invokable?(profile) return false if profile.has_key?(:only_if) && !profile[:only_if].call return false if profile.has_key?(:not_if) && profile[:not_if].call profile[:devices].all? do |device| has_desired_capability? device end end
Private Instance Methods
has_desired_capability?(desire)
click to toggle source
# File lib/rmonitor/matcher.rb, line 18 def has_desired_capability?(desire) @capabilities.any? do |capability| match_desire_capability?(desire, capability) end end
match_desire_capability?(desire, capability)
click to toggle source
# File lib/rmonitor/matcher.rb, line 24 def match_desire_capability?(desire, capability) return false if desire[:name] != capability[:name] return false if desire[:mode] && desire[:mode] != capability[:mode] return false if desire[:rate] && desire[:rate] != capability[:rate] true end