crapi 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +78 -10
- data/docs/Crapi.html +153 -0
- data/docs/Crapi/ArgumentError.html +143 -0
- data/docs/Crapi/BadHttpResponseError.html +143 -0
- data/docs/Crapi/Client.html +1401 -0
- data/docs/Crapi/Error.html +139 -0
- data/docs/Crapi/Proxy.html +941 -0
- data/docs/Net/HTTP.html +292 -0
- data/docs/_index.html +189 -0
- data/docs/class_list.html +51 -0
- data/docs/css/common.css +1 -0
- data/docs/css/full_list.css +58 -0
- data/docs/css/style.css +499 -0
- data/docs/file.README.html +191 -0
- data/docs/file_list.html +56 -0
- data/docs/frames.html +17 -0
- data/docs/index.html +191 -0
- data/docs/js/app.js +248 -0
- data/docs/js/full_list.js +216 -0
- data/docs/js/jquery.js +4 -0
- data/docs/method_list.html +187 -0
- data/docs/top-level-namespace.html +110 -0
- data/lib/crapi/client.rb +222 -3
- data/lib/crapi/errors.rb +6 -0
- data/lib/crapi/proxy.rb +79 -0
- data/lib/crapi/version.rb +9 -1
- metadata +23 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 526054c0e4505c430bcc3d63e726e679d611a14c6523b007b2d55e73ed5e6cb5
|
4
|
+
data.tar.gz: 69fbccd69cee1dc78d25620bffa29e39443e04025177da5bd80f5663de7bdbde
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f149b73275cb33895908b1f01fcd00d1bd6031897563bd9d209286a7d01b06b66689ed518551c9b783140f49928bc02dfa11ca74ddbea21ad1d4d412e9ad9139
|
7
|
+
data.tar.gz: 7a3d54904295924ae1bd7d04e97788de460a2b8ffdd3324bc3da074885baded829fd759bc797e0c150f500ddb5fb792eced8c5ec28d772403b69f808a955285b
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,11 @@
|
|
1
|
-
# Crapi
|
1
|
+
# Crapi [![Gem Version](https://badge.fury.io/rb/crapi.svg)](https://badge.fury.io/rb/crapi)
|
2
2
|
|
3
|
-
|
3
|
+
Crapi is yet another API wrapper. Yes, there is no shortage of these out there, but no other API wrapper gem (that I could find) provided the kind of functionality you get from the Crapi::Proxy class, which is really the biggest benefit here.
|
4
|
+
|
5
|
+
**Crapi::Client** will connect to the target system and handily provides a base path for you (becaue some APIs and services have a path that is always part of every request), **Crapi::Proxy** lets you add to the root client's base path or default set of headers without having to create any new connections.
|
6
|
+
|
7
|
+
Why "crapi"? Because it's a <u>CR</u>UD <u>API</u> client, and (honestly) "... It could be better."™️
|
4
8
|
|
5
|
-
TODO: Delete this and the text above, and describe your gem
|
6
9
|
|
7
10
|
## Installation
|
8
11
|
|
@@ -20,19 +23,84 @@ Or install it yourself as:
|
|
20
23
|
|
21
24
|
$ gem install crapi
|
22
25
|
|
23
|
-
## Usage
|
24
26
|
|
25
|
-
|
27
|
+
## Using The Crapi Tools
|
26
28
|
|
27
|
-
|
29
|
+
### Client Usage
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
## Connect to an API.
|
33
|
+
|
34
|
+
api = Crapi::Client.new('https://jsonplaceholder.typicode.com/')
|
35
|
+
|
36
|
+
|
37
|
+
## Issue requests against the API.
|
38
|
+
|
39
|
+
api.get('users/1') ## GETs /users/1; returns a Hash.
|
40
|
+
|
41
|
+
api.get('posts', query: { userId: 2 }) ## GETs /posts?userId=2; returns an Array.
|
42
|
+
|
43
|
+
mew_comment = { user: 'megapwner', text: 'FRIST!!1!' }
|
44
|
+
api.post('comments', payload: new_comment) ## POSTs to /comments; returns a Hash.
|
45
|
+
```
|
46
|
+
|
47
|
+
---
|
48
|
+
|
49
|
+
### Proxy Usage
|
50
|
+
|
51
|
+
```ruby
|
52
|
+
## Connect to an API.
|
53
|
+
|
54
|
+
api = Crapi::Client.new('https://versioned.fake-api.com/api/')
|
55
|
+
|
56
|
+
|
57
|
+
## Back in the v1 days, versioning of this API was via the URL ...
|
58
|
+
|
59
|
+
v1 = api.new_proxy('/v1')
|
60
|
+
|
61
|
+
v1.get('data') ## GETs /api/v1/data; pretty straight-forward.
|
62
|
+
v1.post('data', payload: values) ## POSTs *values* to /api/v1/data.
|
28
63
|
|
29
|
-
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
30
64
|
|
31
|
-
|
65
|
+
## For API v2, they switched to an Accept header approach ...
|
66
|
+
|
67
|
+
v2 = api.new_proxy('/', headers: { Accept: 'application/vnd.fake-api.v2+json' })
|
68
|
+
|
69
|
+
v2.get('data') ## GETs /api/data with the v2 header.
|
70
|
+
|
71
|
+
|
72
|
+
## API v3 keeps the Accept header approach ...
|
73
|
+
|
74
|
+
v3 = api.new_proxy('/', headers: { Accept: 'application/vnd.fake-api.v3+json' })
|
75
|
+
|
76
|
+
v3.get('data') ## GETs /api/data with the v3 header.
|
77
|
+
|
78
|
+
|
79
|
+
## Note that only one connection to the client is made and you can easily make
|
80
|
+
## v1, v2, and v3 API calls ad hoc without having to juggle paths/headers yourself.
|
81
|
+
```
|
82
|
+
|
83
|
+
---
|
84
|
+
|
85
|
+
[Consult the repo docs for the full Crapi documentation.](http://nestor-custodio.github.io/crapi/Crapi.html)
|
86
|
+
|
87
|
+
|
88
|
+
## Feature Roadmap / Future Development
|
89
|
+
|
90
|
+
Additional features/options coming in the future:
|
91
|
+
|
92
|
+
- Cleaner handling of non-body-returning calls.
|
93
|
+
- More resilient serializing of non-String paylods when using custom Content-Type headers.
|
94
|
+
|
95
|
+
|
96
|
+
## Contribution / Development
|
97
|
+
|
98
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/nestor-custodio/crapi.
|
99
|
+
|
100
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
32
101
|
|
33
|
-
|
102
|
+
Linting is courtesy of [Rubocop](https://github.com/bbatsov/rubocop) and documentation is built using [Yard](https://yardoc.org/). Neither is included in the Gemspec; you'll need to install these locally (`gem install rubocop yard`) to take advantage.
|
34
103
|
|
35
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/crapi.
|
36
104
|
|
37
105
|
## License
|
38
106
|
|
data/docs/Crapi.html
ADDED
@@ -0,0 +1,153 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
+
<title>
|
7
|
+
Module: Crapi
|
8
|
+
|
9
|
+
— Documentation by YARD 0.9.12
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
|
16
|
+
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
18
|
+
pathId = "Crapi";
|
19
|
+
relpath = '';
|
20
|
+
</script>
|
21
|
+
|
22
|
+
|
23
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
24
|
+
|
25
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
26
|
+
|
27
|
+
|
28
|
+
</head>
|
29
|
+
<body>
|
30
|
+
<div class="nav_wrap">
|
31
|
+
<iframe id="nav" src="class_list.html?1"></iframe>
|
32
|
+
<div id="resizer"></div>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div id="main" tabindex="-1">
|
36
|
+
<div id="header">
|
37
|
+
<div id="menu">
|
38
|
+
|
39
|
+
<a href="_index.html">Index (C)</a> »
|
40
|
+
|
41
|
+
|
42
|
+
<span class="title">Crapi</span>
|
43
|
+
|
44
|
+
</div>
|
45
|
+
|
46
|
+
<div id="search">
|
47
|
+
|
48
|
+
<a class="full_list_link" id="class_list_link"
|
49
|
+
href="class_list.html">
|
50
|
+
|
51
|
+
<svg width="24" height="24">
|
52
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
53
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
54
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
55
|
+
</svg>
|
56
|
+
</a>
|
57
|
+
|
58
|
+
</div>
|
59
|
+
<div class="clear"></div>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<div id="content"><h1>Module: Crapi
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
</h1>
|
67
|
+
<div class="box_info">
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
<dl>
|
80
|
+
<dt>Defined in:</dt>
|
81
|
+
<dd>lib/crapi/version.rb<span class="defines">,<br />
|
82
|
+
lib/crapi.rb,<br /> lib/crapi/proxy.rb,<br /> lib/crapi/client.rb,<br /> lib/crapi/errors.rb</span>
|
83
|
+
</dd>
|
84
|
+
</dl>
|
85
|
+
|
86
|
+
</div>
|
87
|
+
|
88
|
+
<h2>Overview</h2><div class="docstring">
|
89
|
+
<div class="discussion">
|
90
|
+
|
91
|
+
<p>The Crapi module houses the <span class='object_link'><a href="Crapi/Client.html" title="Crapi::Client (class)">Crapi::Client</a></span> and <span class='object_link'><a href="Crapi/Proxy.html" title="Crapi::Proxy (class)">Crapi::Proxy</a></span> classes in this gem.</p>
|
92
|
+
|
93
|
+
|
94
|
+
</div>
|
95
|
+
</div>
|
96
|
+
<div class="tags">
|
97
|
+
|
98
|
+
|
99
|
+
</div><h2>Defined Under Namespace</h2>
|
100
|
+
<p class="children">
|
101
|
+
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
<strong class="classes">Classes:</strong> <span class='object_link'><a href="Crapi/ArgumentError.html" title="Crapi::ArgumentError (class)">ArgumentError</a></span>, <span class='object_link'><a href="Crapi/BadHttpResponseError.html" title="Crapi::BadHttpResponseError (class)">BadHttpResponseError</a></span>, <span class='object_link'><a href="Crapi/Client.html" title="Crapi::Client (class)">Client</a></span>, <span class='object_link'><a href="Crapi/Error.html" title="Crapi::Error (class)">Error</a></span>, <span class='object_link'><a href="Crapi/Proxy.html" title="Crapi::Proxy (class)">Proxy</a></span>
|
106
|
+
|
107
|
+
|
108
|
+
</p>
|
109
|
+
|
110
|
+
<h2>Constant Summary</h2>
|
111
|
+
<dl class="constants">
|
112
|
+
|
113
|
+
<dt id="VERSION-constant" class="">VERSION =
|
114
|
+
<div class="docstring">
|
115
|
+
<div class="discussion">
|
116
|
+
|
117
|
+
<p>The canonical <strong>crapi</strong> gem version.</p>
|
118
|
+
|
119
|
+
<p>This should only ever be updated <em>immediately</em> before a release; the
|
120
|
+
commit that updates this value should be pushed <strong>by</strong> the
|
121
|
+
<code>rake release</code> process.</p>
|
122
|
+
|
123
|
+
|
124
|
+
</div>
|
125
|
+
</div>
|
126
|
+
<div class="tags">
|
127
|
+
|
128
|
+
|
129
|
+
</div>
|
130
|
+
</dt>
|
131
|
+
<dd><pre class="code"><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>0.1.3</span><span class='tstring_end'>'</span></span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
|
132
|
+
|
133
|
+
</dl>
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
</div>
|
144
|
+
|
145
|
+
<div id="footer">
|
146
|
+
Generated on Wed May 30 16:20:53 2018 by
|
147
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
148
|
+
0.9.12 (ruby-2.5.1).
|
149
|
+
</div>
|
150
|
+
|
151
|
+
</div>
|
152
|
+
</body>
|
153
|
+
</html>
|
@@ -0,0 +1,143 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
+
<title>
|
7
|
+
Exception: Crapi::ArgumentError
|
8
|
+
|
9
|
+
— Documentation by YARD 0.9.12
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
|
16
|
+
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
18
|
+
pathId = "Crapi::ArgumentError";
|
19
|
+
relpath = '../';
|
20
|
+
</script>
|
21
|
+
|
22
|
+
|
23
|
+
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
|
24
|
+
|
25
|
+
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
|
26
|
+
|
27
|
+
|
28
|
+
</head>
|
29
|
+
<body>
|
30
|
+
<div class="nav_wrap">
|
31
|
+
<iframe id="nav" src="../class_list.html?1"></iframe>
|
32
|
+
<div id="resizer"></div>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div id="main" tabindex="-1">
|
36
|
+
<div id="header">
|
37
|
+
<div id="menu">
|
38
|
+
|
39
|
+
<a href="../_index.html">Index (A)</a> »
|
40
|
+
<span class='title'><span class='object_link'><a href="../Crapi.html" title="Crapi (module)">Crapi</a></span></span>
|
41
|
+
»
|
42
|
+
<span class="title">ArgumentError</span>
|
43
|
+
|
44
|
+
</div>
|
45
|
+
|
46
|
+
<div id="search">
|
47
|
+
|
48
|
+
<a class="full_list_link" id="class_list_link"
|
49
|
+
href="../class_list.html">
|
50
|
+
|
51
|
+
<svg width="24" height="24">
|
52
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
53
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
54
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
55
|
+
</svg>
|
56
|
+
</a>
|
57
|
+
|
58
|
+
</div>
|
59
|
+
<div class="clear"></div>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<div id="content"><h1>Exception: Crapi::ArgumentError
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
</h1>
|
67
|
+
<div class="box_info">
|
68
|
+
|
69
|
+
<dl>
|
70
|
+
<dt>Inherits:</dt>
|
71
|
+
<dd>
|
72
|
+
<span class="inheritName"><span class='object_link'><a href="Error.html" title="Crapi::Error (class)">Error</a></span></span>
|
73
|
+
|
74
|
+
<ul class="fullTree">
|
75
|
+
<li>Object</li>
|
76
|
+
|
77
|
+
<li class="next">StandardError</li>
|
78
|
+
|
79
|
+
<li class="next"><span class='object_link'><a href="Error.html" title="Crapi::Error (class)">Error</a></span></li>
|
80
|
+
|
81
|
+
<li class="next">Crapi::ArgumentError</li>
|
82
|
+
|
83
|
+
</ul>
|
84
|
+
<a href="#" class="inheritanceTree">show all</a>
|
85
|
+
|
86
|
+
</dd>
|
87
|
+
</dl>
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
<dl>
|
100
|
+
<dt>Defined in:</dt>
|
101
|
+
<dd>lib/crapi/errors.rb</dd>
|
102
|
+
</dl>
|
103
|
+
|
104
|
+
</div>
|
105
|
+
|
106
|
+
<h2>Overview</h2><div class="docstring">
|
107
|
+
<div class="discussion">
|
108
|
+
|
109
|
+
<p>An error relating to missing, invalid, or incompatible method arguments.</p>
|
110
|
+
|
111
|
+
|
112
|
+
</div>
|
113
|
+
</div>
|
114
|
+
<div class="tags">
|
115
|
+
|
116
|
+
|
117
|
+
</div>
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
</div>
|
134
|
+
|
135
|
+
<div id="footer">
|
136
|
+
Generated on Wed May 30 11:27:03 2018 by
|
137
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
138
|
+
0.9.12 (ruby-2.5.1).
|
139
|
+
</div>
|
140
|
+
|
141
|
+
</div>
|
142
|
+
</body>
|
143
|
+
</html>
|
@@ -0,0 +1,143 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
+
<title>
|
7
|
+
Exception: Crapi::BadHttpResponseError
|
8
|
+
|
9
|
+
— Documentation by YARD 0.9.12
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
|
16
|
+
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
18
|
+
pathId = "Crapi::BadHttpResponseError";
|
19
|
+
relpath = '../';
|
20
|
+
</script>
|
21
|
+
|
22
|
+
|
23
|
+
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
|
24
|
+
|
25
|
+
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
|
26
|
+
|
27
|
+
|
28
|
+
</head>
|
29
|
+
<body>
|
30
|
+
<div class="nav_wrap">
|
31
|
+
<iframe id="nav" src="../class_list.html?1"></iframe>
|
32
|
+
<div id="resizer"></div>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div id="main" tabindex="-1">
|
36
|
+
<div id="header">
|
37
|
+
<div id="menu">
|
38
|
+
|
39
|
+
<a href="../_index.html">Index (B)</a> »
|
40
|
+
<span class='title'><span class='object_link'><a href="../Crapi.html" title="Crapi (module)">Crapi</a></span></span>
|
41
|
+
»
|
42
|
+
<span class="title">BadHttpResponseError</span>
|
43
|
+
|
44
|
+
</div>
|
45
|
+
|
46
|
+
<div id="search">
|
47
|
+
|
48
|
+
<a class="full_list_link" id="class_list_link"
|
49
|
+
href="../class_list.html">
|
50
|
+
|
51
|
+
<svg width="24" height="24">
|
52
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
53
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
54
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
55
|
+
</svg>
|
56
|
+
</a>
|
57
|
+
|
58
|
+
</div>
|
59
|
+
<div class="clear"></div>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<div id="content"><h1>Exception: Crapi::BadHttpResponseError
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
</h1>
|
67
|
+
<div class="box_info">
|
68
|
+
|
69
|
+
<dl>
|
70
|
+
<dt>Inherits:</dt>
|
71
|
+
<dd>
|
72
|
+
<span class="inheritName"><span class='object_link'><a href="Error.html" title="Crapi::Error (class)">Error</a></span></span>
|
73
|
+
|
74
|
+
<ul class="fullTree">
|
75
|
+
<li>Object</li>
|
76
|
+
|
77
|
+
<li class="next">StandardError</li>
|
78
|
+
|
79
|
+
<li class="next"><span class='object_link'><a href="Error.html" title="Crapi::Error (class)">Error</a></span></li>
|
80
|
+
|
81
|
+
<li class="next">Crapi::BadHttpResponseError</li>
|
82
|
+
|
83
|
+
</ul>
|
84
|
+
<a href="#" class="inheritanceTree">show all</a>
|
85
|
+
|
86
|
+
</dd>
|
87
|
+
</dl>
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
<dl>
|
100
|
+
<dt>Defined in:</dt>
|
101
|
+
<dd>lib/crapi/errors.rb</dd>
|
102
|
+
</dl>
|
103
|
+
|
104
|
+
</div>
|
105
|
+
|
106
|
+
<h2>Overview</h2><div class="docstring">
|
107
|
+
<div class="discussion">
|
108
|
+
|
109
|
+
<p>An error relating to a 4XX/5XX HTTP response code.</p>
|
110
|
+
|
111
|
+
|
112
|
+
</div>
|
113
|
+
</div>
|
114
|
+
<div class="tags">
|
115
|
+
|
116
|
+
|
117
|
+
</div>
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
</div>
|
134
|
+
|
135
|
+
<div id="footer">
|
136
|
+
Generated on Wed May 30 11:27:03 2018 by
|
137
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
138
|
+
0.9.12 (ruby-2.5.1).
|
139
|
+
</div>
|
140
|
+
|
141
|
+
</div>
|
142
|
+
</body>
|
143
|
+
</html>
|