Class: CfnDsl::JSONable
- Inherits:
-
Object
- Object
- CfnDsl::JSONable
- Extended by:
- Functions
- Defined in:
- lib/cfndsl/JSONable.rb
Direct Known Subclasses
AWSTypes::AWSType, ConditionDefinition, Fn, MappingDefinition, MetadataDefinition, OSTypes::OSType, OrchestrationTemplate, OutputDefinition, ParameterDefinition, PropertyDefinition, RefDefinition, ResourceDefinition, UpdatePolicyDefinition
Instance Method Summary collapse
- #declare(&block) ⇒ Object
- #method_missing(meth, *args, &block) ⇒ Object
- #ref_children ⇒ Object
- #to_json(*a) ⇒ Object
Methods included from Functions
FnAnd, FnBase64, FnEquals, FnFindInMap, FnFormat, FnGetAZs, FnGetAtt, FnIf, FnJoin, FnNot, FnOr, FnSelect, Ref
Methods included from RefCheck
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
Instance Method Details
#declare(&block) ⇒ Object
175 176 177 |
# File 'lib/cfndsl/JSONable.rb', line 175 def declare(&block) self.instance_eval &block if block_given? end |
#ref_children ⇒ Object
171 172 173 |
# File 'lib/cfndsl/JSONable.rb', line 171 def ref_children return self.instance_variables.map { |var| self.instance_variable_get var } end |
#to_json(*a) ⇒ Object
148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 |
# File 'lib/cfndsl/JSONable.rb', line 148 def to_json(*a) ## # 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. hash = {} self.instance_variables.each do |var| name = var[1..-1] if( name =~ /^__/ ) then # if a variable starts with double underscore, strip one off name = name[1..-1] elsif( name =~ /^_/ ) then # Hide variables that start with single underscore name = nil end hash[name] = self.instance_variable_get var if name end hash.to_json(*a) end |