class Opushon::Option

Attributes

description[R]
request[R]
response[R]
title[R]

Public Class Methods

load(hash) click to toggle source
# File lib/opushon/option.rb, line 8
def self.load(hash)
  raise ArgumentError, "hash #{hash.inspect}" unless hash.is_a?(Hash)

  title       = hash.fetch('title',       nil)
  description = hash.fetch('description', nil)
  request     = hash.fetch('request',     nil)
  response    = hash.fetch('response',    nil)

  hash = {
    title:        title,
    description:  description,
    request:      request,
    response:     response
  }.compact

  new(**hash)
end
new(title: '', description: '', request: {}, response: {}) click to toggle source
# File lib/opushon/option.rb, line 28
def initialize(title: '', description: '', request: {}, response: {})
  raise ArgumentError, "title #{title.inspect}"             unless title.is_a?(String)
  raise ArgumentError, "description #{description.inspect}" unless description.is_a?(String)
  raise ArgumentError, "request #{request.inspect}"         unless request.is_a?(Hash)
  raise ArgumentError, "response #{response.inspect}"       unless response.is_a?(Hash)

  @title        = title
  @description  = description
  @request      = Request.load(request)
  @response     = Response.load(response)
end

Public Instance Methods

to_h() click to toggle source
# File lib/opushon/option.rb, line 40
def to_h
  {
    title:        title,
    description:  description,
    request:      request.to_h,
    response:     response.to_h
  }
end