class ReactiveObservers::Observer::ContainerValidator
Public Class Methods
new(observer)
click to toggle source
# File lib/reactive_observers/observer/container_validator.rb, line 6 def initialize(observer) @observer = observer end
Public Instance Methods
run_validations!()
click to toggle source
# File lib/reactive_observers/observer/container_validator.rb, line 10 def run_validations! validate_observe_trigger! validate_observe_notification! validate_observe_active_record! true end
Private Instance Methods
validate_observe_active_record!()
click to toggle source
# File lib/reactive_observers/observer/container_validator.rb, line 33 def validate_observe_active_record! return if (!@observer.klass_observed? && @observer.observed.is_a?(ActiveRecord::Base)) || (@observer.klass_observed? && @observer.observed <= ActiveRecord::Base) raise ArgumentError, "Class #{@observer.observed_klass.name} is not Active Record class" end
validate_observe_notification!()
click to toggle source
# File lib/reactive_observers/observer/container_validator.rb, line 25 def validate_observe_notification! return if @observer.notify.present? || !@observer.klass_observer? @observer.observer.new rescue ArgumentError raise ArgumentError, "Notify parameter is required for observer class #{@observer.observer_klass.name} which has complex initialization" end
validate_observe_trigger!()
click to toggle source
# File lib/reactive_observers/observer/container_validator.rb, line 19 def validate_observe_trigger! return unless @observer.trigger.is_a?(Symbol) && !@observer.observer_klass.method_defined?(@observer.trigger) raise ArgumentError, "Class #{@observer.observer_klass.name} is missing required observed method #{@observer.trigger}" end