Class: CfnDsl::JSONable
Overview
This is the base class for just about everything useful in the DSL. It knows how to turn DSL Objects into the corresponding json, and it lets you create new built in function objects from inside the context of a dsl object.
Direct Known Subclasses
AWS::Types::Type, ConditionDefinition, CreationPolicyDefinition, Fn, GenerateTypes::Type, MappingDefinition, MetadataDefinition, OS::Types::Type, OrchestrationTemplate, OutputDefinition, ParameterDefinition, PropertyDefinition, RefDefinition, ResourceDefinition, UpdatePolicyDefinition
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Functions
FnAnd, FnBase64, FnEquals, FnFindInMap, FnFormat, FnGetAZs, FnGetAtt, FnIf, FnJoin, FnNot, FnOr, FnSelect, Ref
Methods included from RefCheck
#build_references
Class Method Details
.external_parameters ⇒ Object
Instance Method Details
#as_json(_options = {}) ⇒ Object
Use instance variables to build a json object. Instance variables that begin with a single underscore are elided. Instance variables that begin with two underscores have one of them removed.
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
# File 'lib/cfndsl/jsonable.rb', line 146
def as_json(_options = {})
hash = {}
instance_variables.each do |var|
name = var[1..-1]
if name =~ /^__/
name = name[1..-1]
elsif name =~ /^_/
name = nil
end
hash[name] = instance_variable_get(var) if name
end
hash
end
|
#declare(&block) ⇒ Object
172
173
174
|
# File 'lib/cfndsl/jsonable.rb', line 172
def declare(&block)
instance_eval(&block) if block_given?
end
|
#external_parameters ⇒ Object
138
139
140
|
# File 'lib/cfndsl/jsonable.rb', line 138
def external_parameters
self.class.external_parameters
end
|
#ref_children ⇒ Object
168
169
170
|
# File 'lib/cfndsl/jsonable.rb', line 168
def ref_children
instance_variables.map { |var| instance_variable_get(var) }
end
|
#to_json(*a) ⇒ Object
164
165
166
|
# File 'lib/cfndsl/jsonable.rb', line 164
def to_json(*a)
as_json.to_json(*a)
end
|