Class: CfnDsl::JSONable
- Inherits:
-
Object
- Object
- CfnDsl::JSONable
- Extended by:
- Functions
- Defined in:
- lib/cfndsl/JSONable.rb
Direct Known Subclasses
CloudFormationTemplate, Fn, MappingDefinition, MetadataDefinition, OutputDefinition, ParameterDefinition, PropertyDefinition, RefDefinition, ResourceDefinition, Types::AWSType
Instance Method Summary collapse
- #declare(&block) ⇒ Object
- #method_missing(meth, *args, &block) ⇒ Object
- #ref_children ⇒ Object
- #to_json(*a) ⇒ Object
Methods included from Functions
FnBase64, FnFindInMap, FnFormat, FnGetAZs, FnGetAtt, FnJoin, Ref
Methods included from RefCheck
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
Instance Method Details
#declare(&block) ⇒ Object
133 134 135 |
# File 'lib/cfndsl/JSONable.rb', line 133 def declare(&block) self.instance_eval &block if block_given? end |
#ref_children ⇒ Object
129 130 131 |
# File 'lib/cfndsl/JSONable.rb', line 129 def ref_children return self.instance_variables.map { |var| self.instance_variable_get var } end |
#to_json(*a) ⇒ Object
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/cfndsl/JSONable.rb', line 106 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 |