class Everett::Observer

Public Class Methods

new() click to toggle source
# File lib/everett/observer.rb, line 20
def initialize
  @observed_classes = ::Set.new
end

Private Class Methods

observe(*models) click to toggle source
# File lib/everett/observer.rb, line 15
def observe(*models)
  instance.observe(*models)
end

Public Instance Methods

observe(*models) click to toggle source
# File lib/everett/observer.rb, line 24
def observe(*models)
  models.map! { |model| constantize(model) }.compact!
  !!@observed_classes.merge(models)
end
observed_classes() click to toggle source
# File lib/everett/observer.rb, line 29
def observed_classes
  @observed_classes.empty? ? Array(default_class) : @observed_classes.to_a
end

Private Instance Methods

default_class() click to toggle source
# File lib/everett/observer.rb, line 35
def default_class
  md = /\A(?<class_name>.*)Observer\z/.match(self.class.name)
  md[:class_name].constantize if md
rescue ::NameError
  nil
end