class Mugatu::Attribute

Attributes

key[R]
type[R]
value[R]

Public Class Methods

new(key, type, options = {}) click to toggle source
# File lib/mugatu/attribute.rb, line 5
def initialize(key, type, options = {})
  @key       = key
  @type      = type
  self.value = options[:default_value] # nil when none is set.
end

Public Instance Methods

value=(new_value) click to toggle source
# File lib/mugatu/attribute.rb, line 11
def value=(new_value)
  @value = cast(new_value)
end

Private Instance Methods

cast(value) click to toggle source
# File lib/mugatu/attribute.rb, line 17
def cast(value)
  if value.is_a?(type) || value.nil?
    value
  else
    type.cast(value)
  end
end