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.
170 171 172 173 174 175 |
# File 'lib/seahorse/model/shapes.rb', line 170 def initialize( = {}) @members = {} @members_by_location_name = {} @required = Set.new super() end |
Instance Attribute Details
#required ⇒ Set<Symbol>
178 179 180 |
# File 'lib/seahorse/model/shapes.rb', line 178 def required @required end |
Instance Method Details
#add_member(name, shape_ref) ⇒ Object
182 183 184 185 186 187 |
# File 'lib/seahorse/model/shapes.rb', line 182 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
208 209 210 211 212 213 214 |
# File 'lib/seahorse/model/shapes.rb', line 208 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.
197 198 199 |
# File 'lib/seahorse/model/shapes.rb', line 197 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.
217 218 219 |
# File 'lib/seahorse/model/shapes.rb', line 217 def member_by_location_name(location_name) @members_by_location_name[location_name] end |
#member_names ⇒ Array<Symbol>
190 191 192 |
# File 'lib/seahorse/model/shapes.rb', line 190 def member_names @members.keys end |
#members ⇒ Enumerator<[Symbol,ShapeRef]>
202 203 204 |
# File 'lib/seahorse/model/shapes.rb', line 202 def members @members.to_enum end |