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.



76
77
78
79
80
81
82
83
84
# File 'lib/terrafying/generator.rb', line 76

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

Instance Method Details

#fn_call(fn, *args) ⇒ Object



95
96
97
98
99
100
101
# File 'lib/terrafying/generator.rb', line 95

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

#realiseObject



86
87
88
89
90
91
92
93
# File 'lib/terrafying/generator.rb', line 86

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

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

#to_sObject



103
104
105
106
107
108
109
# File 'lib/terrafying/generator.rb', line 103

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