Module: OpenApi::Objects::Controller::ClassMethods
- Defined in:
- lib/open-api/objects.rb
Instance Method Summary collapse
- #expand_nested_object_metadata(metadata) ⇒ Object
- #expand_nested_object_property(name, property, required_attrs) ⇒ Object
- #open_api_object(object_key, metadata = nil) ⇒ Object
- #open_api_object_metadata(object_key, opts = {}) ⇒ Object
- #open_api_objects(metadata = nil) ⇒ Object
Instance Method Details
#expand_nested_object_metadata(metadata) ⇒ Object
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/open-api/objects.rb', line 92 def () unless [:type].respond_to?(:to_sym) && [:type].to_sym == :object = { type: :object, properties: } end required_attrs = ([:required] || []).map(&:to_sym) if (properties = [:properties]).is_a?(Hash) && properties.present? = .dup properties = Hash[(properties.map do |name, property| property = (name, property, required_attrs) [name, property] end)] [:properties] = properties end [:required] = required_attrs.uniq if required_attrs.present? end |
#expand_nested_object_property(name, property, required_attrs) ⇒ Object
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
# File 'lib/open-api/objects.rb', line 109 def (name, property, required_attrs) if property.is_a?(Hash) required = property[:required] if required.nil? required_attrs << name.to_sym # Presume required if required option not spec'd elsif [TrueClass, FalseClass].include?(required.class) required_attrs << name.to_sym if property.delete(:required) end unless property.blank? || property[:type].respond_to?(:to_sym) property = (property) end else api_type, api_format = OpenApi::Utils.open_api_type_and_format(property) if api_type.nil? property = { type: :object, '$ref' => property } elsif api_format.present? property = { type: api_type, format: api_format } else property = { type: api_type } end required_attrs << name.to_sym # Presume required if required option not spec'd end property end |
#open_api_object(object_key, metadata = nil) ⇒ Object
82 83 84 85 86 87 88 89 90 |
# File 'lib/open-api/objects.rb', line 82 def open_api_object(object_key, = nil) fail 'Valid object argument required!' unless object_key.respond_to?(:to_sym) return ( || {})[object_key.to_sym].deep_dup if .blank? fail 'Expected Hash argument for open_api_object()!' unless .is_a?(Hash) = () = (( ||= {})[object_key.to_sym] ||= {}) OpenApi::Objects.(, ) nil end |
#open_api_object_metadata(object_key, opts = {}) ⇒ Object
134 135 136 137 138 139 140 141 142 |
# File 'lib/open-api/objects.rb', line 134 def (object_key, opts = {}) controller_class_hierarchy = OpenApi::Utils.controller_class_hierarchy(self) = {} controller_class_hierarchy.each do |controller_class| OpenApi::Objects.(, controller_class.send(:open_api_object, object_key), opts) end end |
#open_api_objects(metadata = nil) ⇒ Object
73 74 75 76 77 78 79 80 |
# File 'lib/open-api/objects.rb', line 73 def open_api_objects( = nil) return ( || {}).deep_dup if .blank? fail 'Expected Hash argument for open_api_objects()!' unless .is_a?(Hash) .each do |object_key, | open_api_object(object_key, ) end nil end |