module ActiveAttr::QueryAttributes

QueryAttributes provides instance methods for querying attributes.

@example Usage

class Person
  include ActiveAttr::QueryAttributes
  attribute :name
end

person = Person.new
person.name? #=> false
person.name = "Chris Griego"
person.name? #=> true

@since 0.3.0

Public Instance Methods

query_attribute(name) click to toggle source

Test the presence of an attribute

See {Typecasting::BooleanTypecaster#call} for more details.

@example Query an attribute

person.query_attribute(:name)

@param [String, Symbol, to_s] name The name of the attribute to query

@return [true, false] The presence of the attribute

@raise [UnknownAttributeError] if the attribute is unknown

@since 0.3.0

# File lib/active_attr/query_attributes.rb, line 44
def query_attribute(name)
  if respond_to? "#{name}?"
    send "#{name}?"
  else
    raise UnknownAttributeError, "unknown attribute: #{name}"
  end
end

Private Instance Methods

attribute?(name) click to toggle source
# File lib/active_attr/query_attributes.rb, line 54
def attribute?(name)
  !!Typecasting::BooleanTypecaster.new.call(read_attribute(name))
end