class SwaggerObject

Public Class Methods

new(*args, **kwargs, &block) click to toggle source
# File lib/swagger_object.rb, line 8
def initialize(*args, **kwargs, &block)
  if args.count > 0 && (!kwargs.empty? || block_given?)
    raise "Cannot give both unnamed arguments AND named arguments or block to Swagger parameter '#{m}'."
  elsif block_given?
    @obj = kwargs unless kwargs.empty?
    instance_eval &block
  elsif !kwargs.empty?
    @obj = kwargs
  elsif args.count > 0
    @obj = [*args]
  else
    raise "Cannot create SwaggerObject with no arguments."
  end
end

Public Instance Methods

add(*args, **kwargs) click to toggle source
# File lib/swagger_object.rb, line 23
def add(*args, **kwargs)
  @obj ||= []
  if !@obj.is_a?(Array)
    raise "Swagger object must be an array to append data '#{item}'"
  elsif args.count > 0
    @obj << [*args, kwargs]
  else
    @obj << kwargs
  end
end
method_missing(m, *args, **kwargs, &block) click to toggle source
# File lib/swagger_object.rb, line 34
def method_missing(m, *args, **kwargs, &block)
  @obj ||= {}
  if block_given?
    @obj[m] = SwaggerObject.new(**kwargs, &block).to_h
  elsif !kwargs.empty?
    @obj[m] = SwaggerObject.new(**kwargs).to_h
  elsif args.count > 1
    @obj[m] = [*args]
  elsif args.count == 1
    @obj[m] = args[0]
  else
    raise "Cannot give zero arguments to Swagger key '#{m}'"
  end
end
to_h() click to toggle source
# File lib/swagger_object.rb, line 49
def to_h
  @obj
end