Class: Swaggable::ApiDefinition
- Inherits:
-
Object
- Object
- Swaggable::ApiDefinition
- Includes:
- ForwardingDsl::Getsetter
- Defined in:
- lib/swaggable/api_definition.rb
Class Method Summary collapse
Instance Method Summary collapse
- #configure(&block) ⇒ Object
- #endpoints(&block) ⇒ Object
-
#initialize(&block) ⇒ ApiDefinition
constructor
A new instance of ApiDefinition.
- #tags ⇒ Object
- #used_schemas ⇒ Object
Constructor Details
#initialize(&block) ⇒ ApiDefinition
Returns a new instance of ApiDefinition.
15 16 17 |
# File 'lib/swaggable/api_definition.rb', line 15 def initialize &block configure(&block) if block_given? end |
Class Method Details
.from_grape_api(grape) ⇒ Object
40 41 42 |
# File 'lib/swaggable/api_definition.rb', line 40 def self.from_grape_api grape grape_adapter.import(grape, new) end |
.grape_adapter ⇒ Object
44 45 46 |
# File 'lib/swaggable/api_definition.rb', line 44 def self.grape_adapter @grape_adapter ||= Swaggable::GrapeAdapter.new end |
Instance Method Details
#configure(&block) ⇒ Object
48 49 50 51 |
# File 'lib/swaggable/api_definition.rb', line 48 def configure &block ForwardingDsl.run(self, &block) self end |
#endpoints(&block) ⇒ Object
19 20 21 22 23 24 |
# File 'lib/swaggable/api_definition.rb', line 19 def endpoints &block ForwardingDsl.run( @endpoints ||= build_endpoints, &block ) end |
#tags ⇒ Object
26 27 28 |
# File 'lib/swaggable/api_definition.rb', line 26 def (endpoints.map(&:tags).reduce(:merge) || []).dup.freeze end |
#used_schemas ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'lib/swaggable/api_definition.rb', line 30 def used_schemas endpoints.inject([]) do |acc, endpoint| endpoint.parameters.each do |parameter| acc << parameter.schema unless parameter.schema.empty? end acc.uniq end.freeze end |