Module: Useless::Doc::Serialization::Dump

Defined in:
lib/useless/doc/serialization/dump.rb

Class Method Summary collapse

Class Method Details

.api(api) ⇒ String

Converts Core::API instance to a JSON representation.

Parameters:

  • api (Core::API)

    the API to be converted to JSON.

Returns:

  • (String)

    a JSON representation of the specified API.



27
28
29
30
31
32
33
34
# File 'lib/useless/doc/serialization/dump.rb', line 27

def self.api(api)
  if api
    hash_to_json \
      'url' => api.url,
      'description' => api.description,
      'resources' => api.resources.map { |resource| resource(resource) }
  end
end

.body(body) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



107
108
109
110
111
112
113
# File 'lib/useless/doc/serialization/dump.rb', line 107

def self.body(body)
  if body
    hash_to_json \
      'content_type' => body.content_type,
      'attributes' => body.attributes.map { |attribute| body_attribute(attribute) }
  end
end

.body_attribute(attribute) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



116
117
118
119
120
121
122
123
124
125
# File 'lib/useless/doc/serialization/dump.rb', line 116

def self.body_attribute(attribute)
  if attribute
    hash_to_json \
      'key' => attribute.key,
      'type' => attribute.type,
      'required' => attribute.required,
      'default' => attribute.default,
      'description' => attribute.description
  end
end

.hash_to_json(hash) ⇒ String

Converts a hash to a JSON representation.

Parameters:

  • hash (Hash, String)

    the hash to be converted.

Returns:

  • (String)

    a JSON representation corresponding to the specified hash.

Raises:

  • (ArgumentError)

    if json is not a Hash, String or IO.



17
18
19
# File 'lib/useless/doc/serialization/dump.rb', line 17

def self.hash_to_json(hash)
  hash.is_a?(String) ? hash : Oj.dump(hash)
end

.header(header) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



89
90
91
92
93
94
95
# File 'lib/useless/doc/serialization/dump.rb', line 89

def self.header(header)
  if header
    hash_to_json \
      'key' => header.key,
      'description' => header.description
  end
end

.request(request) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/useless/doc/serialization/dump.rb', line 52

def self.request(request)
  if request
    hash_to_json \
      'method' => request.method,
      'description' => request.description,
      'authentication_required' => request.authentication_required,
      'parameters' => request.parameters.map { |parameter| request_parameter(parameter) },
      'headers' => request.headers.map { |header| header(header) },
      'body' => body(request.body),
      'responses' => request.responses.map { |response| response(response) }
  end
end

.request_parameter(parameter) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



77
78
79
80
81
82
83
84
85
86
# File 'lib/useless/doc/serialization/dump.rb', line 77

def self.request_parameter(parameter)
  if parameter
    hash_to_json \
      'type' => parameter.type,
      'key' => parameter.key,
      'required' => parameter.required,
      'default' => parameter.default,
      'description' => parameter.description
  end
end

.resource(resource) ⇒ String

Converts a Core::Resource instance to a JSON representation.

Parameters:

Returns:

  • (String)

    a JSON representation of the specified resource.



42
43
44
45
46
47
48
49
# File 'lib/useless/doc/serialization/dump.rb', line 42

def self.resource(resource)
  if resource
    hash_to_json \
      'path' => resource.path,
      'description' => resource.description,
      'requests' => resource.requests.map { |request| request(request) }
  end
end

.response(response) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



66
67
68
69
70
71
72
73
74
# File 'lib/useless/doc/serialization/dump.rb', line 66

def self.response(response)
  if response
    hash_to_json \
      'code' => response.code,
      'description' => response.description,
      'headers' => response.headers.map { |header| header(header) },
      'body' => body(response.body)
  end
end

.response_status(status) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



98
99
100
101
102
103
104
# File 'lib/useless/doc/serialization/dump.rb', line 98

def self.response_status(status)
  if status
    hash_to_json \
      'code' => status.code,
      'description' => status.description
  end
end