Class: Lacerda::Conversion::DataStructure::Member
- Inherits:
-
Object
- Object
- Lacerda::Conversion::DataStructure::Member
- Defined in:
- lib/lacerda/conversion/data_structure/member.rb,
lib/lacerda/conversion/data_structure/member/type.rb
Defined Under Namespace
Classes: Type
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(member, scope) ⇒ Member
constructor
A new instance of Member.
- #required? ⇒ Boolean
- #spec ⇒ Object
Constructor Details
#initialize(member, scope) ⇒ Member
Returns a new instance of Member.
22 23 24 25 26 27 28 29 30 |
# File 'lib/lacerda/conversion/data_structure/member.rb', line 22 def initialize(member, scope) @description = member.dig('meta', 'description') @content = member['content'] @name = Lacerda.underscore(@content['key']['content']) @attributes = member.dig('attributes', 'typeAttributes') || [] @is_required = @attributes.include?('required') @type = Type.new(@content['value'], @is_required, @scope) @scope = scope end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
7 8 9 |
# File 'lib/lacerda/conversion/data_structure/member.rb', line 7 def name @name end |
Class Method Details
.from_data_structure_content(data_structure_content, scope) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/lacerda/conversion/data_structure/member.rb', line 9 def self.from_data_structure_content(data_structure_content, scope) return [] if data_structure_content.nil? # In the case that you create a nested data structure when type == 'object', # the possible_members can be just a Hash, instead of an array if data_structure_content.is_a?(Hash) data_structure_content = [data_structure_content] end members = data_structure_content.select do |d| d['element'] == 'member' end members.map { |member| Member.new(member, scope) } end |
Instance Method Details
#required? ⇒ Boolean
32 33 34 |
# File 'lib/lacerda/conversion/data_structure/member.rb', line 32 def required? @is_required end |
#spec ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/lacerda/conversion/data_structure/member.rb', line 36 def spec spec = {} # We might have a description spec['description'] = @description spec.merge!(@type.to_hash) # Add the type of the array objects (if it is an array) spec['items'] = @type.array_type # If it's an object, we need recursion if @type.object? data_structure = DataStructure.new('tmp', [@content['value']], @scope).to_json spec['properties'] = data_structure['properties'] end spec end |