Class: Seahorse::Model::Shapes::StructureShape
- Defined in:
- lib/seahorse/model/shapes.rb
Instance Attribute Summary collapse
Attributes inherited from Shape
Instance Method Summary collapse
- #add_member(name, shape_ref) ⇒ Object
-
#initialize(options = {}) ⇒ StructureShape
constructor
A new instance of StructureShape.
- #member(name) ⇒ ShapeRef
-
#member?(member_name) ⇒ Boolean
Returns ‘true` if there exists a member with the given name.
- #member_by_location_name(location_name) ⇒ Object private
- #member_names ⇒ Array<Symbol>
- #members ⇒ Enumerator<[Symbol,ShapeRef]>
Methods inherited from Shape
Constructor Details
#initialize(options = {}) ⇒ StructureShape
Returns a new instance of StructureShape.
183 184 185 186 187 188 |
# File 'lib/seahorse/model/shapes.rb', line 183 def initialize( = {}) @members = {} @members_by_location_name = {} @required = Set.new super end |
Instance Attribute Details
#required ⇒ Set<Symbol>
191 192 193 |
# File 'lib/seahorse/model/shapes.rb', line 191 def required @required end |
#struct_class ⇒ Class<Struct>
194 195 196 |
# File 'lib/seahorse/model/shapes.rb', line 194 def struct_class @struct_class end |
Instance Method Details
#add_member(name, shape_ref) ⇒ Object
198 199 200 201 202 203 |
# File 'lib/seahorse/model/shapes.rb', line 198 def add_member(name, shape_ref) name = name.to_sym @required << name if shape_ref.required @members_by_location_name[shape_ref.location_name] = [name, shape_ref] @members[name] = shape_ref end |
#member(name) ⇒ ShapeRef
224 225 226 227 228 229 230 |
# File 'lib/seahorse/model/shapes.rb', line 224 def member(name) if member?(name) @members[name.to_sym] else raise ArgumentError, "no such member #{name.inspect}" end end |
#member?(member_name) ⇒ Boolean
Returns ‘true` if there exists a member with the given name.
213 214 215 |
# File 'lib/seahorse/model/shapes.rb', line 213 def member?(member_name) @members.key?(member_name.to_sym) end |
#member_by_location_name(location_name) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
233 234 235 |
# File 'lib/seahorse/model/shapes.rb', line 233 def member_by_location_name(location_name) @members_by_location_name[location_name] end |
#member_names ⇒ Array<Symbol>
206 207 208 |
# File 'lib/seahorse/model/shapes.rb', line 206 def member_names @members.keys end |
#members ⇒ Enumerator<[Symbol,ShapeRef]>
218 219 220 |
# File 'lib/seahorse/model/shapes.rb', line 218 def members @members.to_enum end |