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