class ReactiveObservers::Observer::ContainerComparator
Public Class Methods
new(observer)
click to toggle source
# File lib/reactive_observers/observer/container_comparator.rb, line 6 def initialize(observer) @observer = observer end
Public Instance Methods
full?(observer)
click to toggle source
# File lib/reactive_observers/observer/container_comparator.rb, line 18 def full?(observer) partial?(observer.observer, fields: observer.fields, on: observer.on, constrain: observer.constrain) && @observer.observed == observer.observed && @observer.trigger == observer.trigger && @observer.notify == observer.notify && @observer.refine == observer.refine && @observer.only == observer.only end
partial?(observer, options)
click to toggle source
# File lib/reactive_observers/observer/container_comparator.rb, line 10 def partial?(observer, options) @observer.observer == observer && array_compare_of(@observer.fields, options[:fields]) && array_compare_of(@observer.on, options[:on]) && context_compare_with(options[:context]) && constrain_compare_with(options[:constrain]) end
Private Instance Methods
array_compare_of(argument, option_value)
click to toggle source
# File lib/reactive_observers/observer/container_comparator.rb, line 29 def array_compare_of(argument, option_value) argument.blank? || option_value.blank? || (argument & Array.wrap(option_value)).length.positive? end
constrain_compare_with(value)
click to toggle source
# File lib/reactive_observers/observer/container_comparator.rb, line 33 def constrain_compare_with(value) value = Array.wrap value value.blank? || @observer.constrain == value || (@observer.constrain & value).length.positive? end
context_compare_with(value)
click to toggle source
# File lib/reactive_observers/observer/container_comparator.rb, line 38 def context_compare_with(value) value.blank? || @observer.context == value end