class LxDocs::UseCase

Attributes

info[R]

Public Class Methods

add(title, version, *args, &block) click to toggle source
# File lib/lx_docs/use_case.rb, line 9
def self.add(title, version, *args, &block)
  self.defined[version] ||= {}
  self.defined[version][title] = new(title, version, *args).tap do |use_case|
    use_case.instance_eval(&block)
  end
end
defined() click to toggle source
# File lib/lx_docs/use_case.rb, line 5
def self.defined
  @use_cases ||= {}
end
new(title, version, controller = nil, action = nil) click to toggle source
# File lib/lx_docs/use_case.rb, line 18
def initialize(title, version, controller = nil, action = nil)
  @version = version
  @controller = controller
  @action = action
  @info = {
    title: title,
    description: '',
    parameters: {},
    responses: [],
    examples: [],
    includes: []
  }
end

Public Instance Methods

description(value) click to toggle source
# File lib/lx_docs/use_case.rb, line 32
def description(value)
  @info[:description] = value
end
example(value) click to toggle source
# File lib/lx_docs/use_case.rb, line 40
def example(value)
  @info[:examples] << value
end
includes(other) click to toggle source
# File lib/lx_docs/use_case.rb, line 52
def includes(other)
  @info[:includes] << other
  other = LxDocs::UseCase.defined[@version][other]
  @info[:parameters].merge!(other.info[:parameters])
  @info[:responses] |= other.info[:responses]
  @info[:examples] |= other.info[:examples]
end
parameter(name, **opts) click to toggle source
# File lib/lx_docs/use_case.rb, line 36
def parameter(name, **opts)
  @info[:parameters][name.to_sym] = opts
end
response(code, body = nil, description = nil) click to toggle source
# File lib/lx_docs/use_case.rb, line 44
def response(code, body = nil, description = nil)
  @info[:responses] << {
    code: code,
    body: body,
    description: description
  }
end
to_json(*args) click to toggle source
# File lib/lx_docs/use_case.rb, line 60
def to_json(*args)
  @info.to_json(*args)
end