Class: Tamashii::Config::Attribute

Inherits:
Object
  • Object
show all
Defined in:
lib/tamashii/config/attribute.rb

Overview

Config::Attribute

Defined Under Namespace

Classes: Reference, TypeMismatchError, Value

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, options = {}) ⇒ Attribute

Returns a new instance of Attribute.



37
38
39
40
41
42
43
44
# File 'lib/tamashii/config/attribute.rb', line 37

def initialize(name, options = {})
  @name = name.to_sym
  @type = nil
  @type = options[:as] if options[:as].is_a?(Class)
  @default = options[:default]
  @to = options[:to]
  @ref = Reference.new(@to, @name) unless @to.nil?
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



35
36
37
# File 'lib/tamashii/config/attribute.rb', line 35

def name
  @name
end

Instance Method Details

#build(value = nil) ⇒ Object



46
47
48
49
50
# File 'lib/tamashii/config/attribute.rb', line 46

def build(value = nil)
  return @ref unless @to.nil?
  validate_type_of(value)
  Value.new(self, value)
end

#defaultObject



52
53
54
55
# File 'lib/tamashii/config/attribute.rb', line 52

def default
  return @default if @to.nil?
  @ref.value
end