Class: Terrafying::RootRef

Inherits:
Ref
  • Object
show all
Defined in:
lib/terrafying/generator.rb

Instance Method Summary collapse

Methods inherited from Ref

#<=>, #==, #[], #[]=, #downcase, #slice, #split, #strip, #to_str

Constructor Details

#initialize(kind: :resource, type: '', name:) ⇒ RootRef

Returns a new instance of RootRef.



73
74
75
76
77
78
79
80
81
# File 'lib/terrafying/generator.rb', line 73

def initialize(
  kind: :resource,
  type: '',
  name:
)
  @kind = kind
  @type = type
  @name = name
end

Instance Method Details

#fn_call(fn, *args) ⇒ Object



90
91
92
93
94
95
96
# File 'lib/terrafying/generator.rb', line 90

def fn_call(fn, *args)
  if @kind == :resource
    self['id'].fn_call(fn, *args)
  else
    super
  end
end

#realiseObject



83
84
85
86
87
88
# File 'lib/terrafying/generator.rb', line 83

def realise
  type = [@type]
  type = [@kind, @type] if @kind != :resource

  (type + [@name]).reject(&:empty?).join('.')
end

#to_sObject



98
99
100
101
102
103
104
# File 'lib/terrafying/generator.rb', line 98

def to_s
  if @kind == :resource
    "${#{realise}.id}"
  else
    super
  end
end