module Yori::Schema::V3::Root

Root

Public Class Methods

api_docs() click to toggle source
# File lib/yori/schema/v3/root.rb, line 15
def api_docs
  return unless api_docs_factory

  openapi = api_docs_factory.call
  openapi.to_json
end
api_docs_factory() click to toggle source
# File lib/yori/schema/v3/root.rb, line 11
def api_docs_factory
  @_api_docs_factory
end
included(klass) click to toggle source
# File lib/yori/schema/v3/root.rb, line 8
def self.included(klass)
  klass.class_eval do
    class << self
      def api_docs_factory
        @_api_docs_factory
      end

      def api_docs
        return unless api_docs_factory

        openapi = api_docs_factory.call
        openapi.to_json
      end

      def root(id = '', &block)
        @_api_docs_factory = proc do
          Yori::Schema::V3::OpenAPI.new.tap do |openapi|
            openapi.id = id
            openapi.instance_eval(&block)
          end
        end
      end
    end
  end
end
root(id = '', &block) click to toggle source
# File lib/yori/schema/v3/root.rb, line 22
def root(id = '', &block)
  @_api_docs_factory = proc do
    Yori::Schema::V3::OpenAPI.new.tap do |openapi|
      openapi.id = id
      openapi.instance_eval(&block)
    end
  end
end

Public Instance Methods

api_docs() click to toggle source
# File lib/yori/schema/v3/root.rb, line 34
def api_docs
  self.class.api_docs
end