module Observed::Configurable::ModuleMethods

Public Instance Methods

attribute(name, options={}) click to toggle source

@param [String|Symbol] name

# File lib/observed/configurable.rb, line 66
def attribute(name, options={})
  @attributes ||= {}
  @attributes = @attributes.merge(name => options)
end
attributes() click to toggle source
# File lib/observed/configurable.rb, line 71
      def attributes
        @attributes ||
          fail(<<EOS
#{self} includes Observed::Configurable. Though, no attributes are configured for #{self}.
We don't need to include Observed::Configurable, or it might be a bug?
EOS
              )
      end
ensure_configurable(klass) click to toggle source
# File lib/observed/configurable.rb, line 88
def ensure_configurable(klass)
  unless klass.include? Configurable
    fail "The class #{klass} must include Observed::Configurable to include #{self}"
  end
end
included(klass) click to toggle source
# File lib/observed/configurable.rb, line 80
def included(klass)
  ensure_configurable klass

  attributes.each do |name, options|
    klass.attribute name, options
  end
end