class APIGatewayDSL::Document
Attributes
description[RW]
host[RW]
operations[R]
schemes[RW]
title[RW]
version[RW]
Public Class Methods
load(dir)
click to toggle source
# File lib/api_gateway_dsl/document.rb, line 4 def self.load(dir) new do ::Dir.glob(::Pathname.new(dir).join('**', '*.rb')) do |file| file = ::Pathname.new(file) self.context = Context.new(file.dirname) instance_eval file.read, file.to_s, 1 end end end
new(&block)
click to toggle source
# File lib/api_gateway_dsl/document.rb, line 17 def initialize(&block) @operations = Operation::Collection.new DSL::DocumentNode.new(self, &block) end
Public Instance Methods
as_json()
click to toggle source
# File lib/api_gateway_dsl/document.rb, line 23 def as_json # rubocop:disable Metrics/MethodLength {}.tap do |result| result[:swagger] = '2.0' result[:info] = {}.tap do |info| info[:title] = title info[:version] = version info[:description] = description.strip_heredoc if description end result[:host] = host result[:schemes] = schemes result[:paths] = operations.as_json end.deep_stringify_keys end