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.



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

def self.api(api)
  if api
    hash_to_json \
      'name' => api.name,
      '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.



124
125
126
127
128
129
130
# File 'lib/useless/doc/serialization/dump.rb', line 124

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.



133
134
135
136
137
138
139
140
141
142
# File 'lib/useless/doc/serialization/dump.rb', line 133

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

.domain(domain) ⇒ String

Converts Core::Domain instance to a JSON representation.

Parameters:

  • domain (Core::Domain)

    the domain to be converted to JSON.

Returns:

  • (String)

    a JSON representation of the specified domain.



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

def self.domain(domain)
  if domain
    hash_to_json \
      'name' => domain.name,
      'url' => domain.url,
      'description' => domain.description,
      'apis' => domain.apis.map { |api| api(api) }
  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.



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

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.



69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/useless/doc/serialization/dump.rb', line 69

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.



94
95
96
97
98
99
100
101
102
103
# File 'lib/useless/doc/serialization/dump.rb', line 94

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.



59
60
61
62
63
64
65
66
# File 'lib/useless/doc/serialization/dump.rb', line 59

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.



83
84
85
86
87
88
89
90
91
# File 'lib/useless/doc/serialization/dump.rb', line 83

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.



115
116
117
118
119
120
121
# File 'lib/useless/doc/serialization/dump.rb', line 115

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