Class: BiteScript::ASM::AnnotationMirror

Inherits:
Object
  • Object
show all
Defined in:
lib/bitescript/mirror.rb

Defined Under Namespace

Classes: Builder

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type, parent = nil) ⇒ AnnotationMirror

Returns a new instance of AnnotationMirror.



13
14
15
16
17
# File 'lib/bitescript/mirror.rb', line 13

def initialize(type, parent=nil)
  @type = type
  @parent = parent
  @values = {}
end

Instance Attribute Details

#parentObject (readonly)

Returns the value of attribute parent.



12
13
14
# File 'lib/bitescript/mirror.rb', line 12

def parent
  @parent
end

#typeObject (readonly)

Returns the value of attribute type.



12
13
14
# File 'lib/bitescript/mirror.rb', line 12

def type
  @type
end

Instance Method Details

#[](name) ⇒ Object



27
28
29
# File 'lib/bitescript/mirror.rb', line 27

def [](name)
  @values[name]
end

#[]=(name, value) ⇒ Object



31
32
33
# File 'lib/bitescript/mirror.rb', line 31

def []=(name, value)
  @values[name] = value
end

#inspectObject



35
36
37
38
39
40
41
42
43
44
# File 'lib/bitescript/mirror.rb', line 35

def inspect
  unless @values.empty?
    values = []
    @values.each do |k, v|
      values << "#{k}=#{inspect_value(v)}"
    end
    values = "(#{values.join ', '})"
  end
  "@#{type.class_name}#{values}\n"
end

#inspect_value(v) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/bitescript/mirror.rb', line 46

def inspect_value(v)
  case v
  when Type
    v.class_name + ".class"
  when Array
    "{#{v.map{|x| inspect_value(x)}.join(', ')}}"
  when EnumValue
    "#{v.declaring_type.class_name}.#{v.name}"
  else
    v.inspect
  end
end

#valueObject



19
20
21
# File 'lib/bitescript/mirror.rb', line 19

def value
  @values['value']
end

#value=(value) ⇒ Object



23
24
25
# File 'lib/bitescript/mirror.rb', line 23

def value=(value)
  @values['value'] = value
end