shep 0.1.0.pre.alpha0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Copyright.txt +8 -0
- data/LICENSE.txt +697 -0
- data/README.md +101 -0
- data/Rakefile +52 -0
- data/doc/Shep/Entity/Account.html +193 -0
- data/doc/Shep/Entity/Context.html +165 -0
- data/doc/Shep/Entity/CustomEmoji.html +171 -0
- data/doc/Shep/Entity/MediaAttachment.html +175 -0
- data/doc/Shep/Entity/Notification.html +171 -0
- data/doc/Shep/Entity/Status.html +217 -0
- data/doc/Shep/Entity/StatusSource.html +167 -0
- data/doc/Shep/Entity/Status_Application.html +167 -0
- data/doc/Shep/Entity/Status_Mention.html +169 -0
- data/doc/Shep/Entity/Status_Tag.html +165 -0
- data/doc/Shep/Entity.html +1457 -0
- data/doc/Shep/Error/Caller.html +147 -0
- data/doc/Shep/Error/Http.html +329 -0
- data/doc/Shep/Error/Remote.html +143 -0
- data/doc/Shep/Error/Server.html +147 -0
- data/doc/Shep/Error/Type.html +233 -0
- data/doc/Shep/Error.html +149 -0
- data/doc/Shep/Session.html +4094 -0
- data/doc/Shep.html +128 -0
- data/doc/_index.html +300 -0
- data/doc/class_list.html +51 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +58 -0
- data/doc/css/style.css +497 -0
- data/doc/file.README.html +159 -0
- data/doc/file_list.html +56 -0
- data/doc/frames.html +17 -0
- data/doc/index.html +300 -0
- data/doc/js/app.js +314 -0
- data/doc/js/full_list.js +216 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +387 -0
- data/doc/top-level-namespace.html +110 -0
- data/lib/shep/entities.rb +164 -0
- data/lib/shep/entity_base.rb +378 -0
- data/lib/shep/exceptions.rb +78 -0
- data/lib/shep/session.rb +970 -0
- data/lib/shep/typeboxes.rb +180 -0
- data/lib/shep.rb +22 -0
- data/run_rake_test.example.sh +46 -0
- data/shep.gemspec +28 -0
- data/spec/data/smallimg.jpg +0 -0
- data/spec/data/smallish.jpg +0 -0
- data/spec/entity_common.rb +120 -0
- data/spec/entity_t1_spec.rb +168 -0
- data/spec/entity_t2_spec.rb +123 -0
- data/spec/entity_t3_spec.rb +30 -0
- data/spec/json_objects/account.1.json +25 -0
- data/spec/json_objects/account.2.json +36 -0
- data/spec/json_objects/status.1.json +85 -0
- data/spec/json_objects/status.2.json +59 -0
- data/spec/json_objects/status.3.json +95 -0
- data/spec/json_objects/status.4.json +95 -0
- data/spec/json_objects/status.5.json +74 -0
- data/spec/json_objects/status.6.json +140 -0
- data/spec/json_objects/status.7.json +84 -0
- data/spec/session_reader_1_unauth_spec.rb +366 -0
- data/spec/session_reader_2_auth_spec.rb +96 -0
- data/spec/session_writer_spec.rb +183 -0
- data/spec/spec_helper.rb +73 -0
- data/yard_helper.rb +30 -0
- metadata +154 -0
data/doc/css/style.css
ADDED
@@ -0,0 +1,497 @@
|
|
1
|
+
html {
|
2
|
+
width: 100%;
|
3
|
+
height: 100%;
|
4
|
+
}
|
5
|
+
body {
|
6
|
+
font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
|
7
|
+
font-size: 13px;
|
8
|
+
width: 100%;
|
9
|
+
margin: 0;
|
10
|
+
padding: 0;
|
11
|
+
display: flex;
|
12
|
+
display: -webkit-flex;
|
13
|
+
display: -ms-flexbox;
|
14
|
+
}
|
15
|
+
|
16
|
+
#nav {
|
17
|
+
position: relative;
|
18
|
+
width: 100%;
|
19
|
+
height: 100%;
|
20
|
+
border: 0;
|
21
|
+
border-right: 1px dotted #eee;
|
22
|
+
overflow: auto;
|
23
|
+
}
|
24
|
+
.nav_wrap {
|
25
|
+
margin: 0;
|
26
|
+
padding: 0;
|
27
|
+
width: 20%;
|
28
|
+
height: 100%;
|
29
|
+
position: relative;
|
30
|
+
display: flex;
|
31
|
+
display: -webkit-flex;
|
32
|
+
display: -ms-flexbox;
|
33
|
+
flex-shrink: 0;
|
34
|
+
-webkit-flex-shrink: 0;
|
35
|
+
-ms-flex: 1 0;
|
36
|
+
}
|
37
|
+
#resizer {
|
38
|
+
position: absolute;
|
39
|
+
right: -5px;
|
40
|
+
top: 0;
|
41
|
+
width: 10px;
|
42
|
+
height: 100%;
|
43
|
+
cursor: col-resize;
|
44
|
+
z-index: 9999;
|
45
|
+
}
|
46
|
+
#main {
|
47
|
+
flex: 5 1;
|
48
|
+
-webkit-flex: 5 1;
|
49
|
+
-ms-flex: 5 1;
|
50
|
+
outline: none;
|
51
|
+
position: relative;
|
52
|
+
background: #fff;
|
53
|
+
padding: 1.2em;
|
54
|
+
padding-top: 0.2em;
|
55
|
+
box-sizing: border-box;
|
56
|
+
}
|
57
|
+
|
58
|
+
@media (max-width: 920px) {
|
59
|
+
.nav_wrap { width: 100%; top: 0; right: 0; overflow: visible; position: absolute; }
|
60
|
+
#resizer { display: none; }
|
61
|
+
#nav {
|
62
|
+
z-index: 9999;
|
63
|
+
background: #fff;
|
64
|
+
display: none;
|
65
|
+
position: absolute;
|
66
|
+
top: 40px;
|
67
|
+
right: 12px;
|
68
|
+
width: 500px;
|
69
|
+
max-width: 80%;
|
70
|
+
height: 80%;
|
71
|
+
overflow-y: scroll;
|
72
|
+
border: 1px solid #999;
|
73
|
+
border-collapse: collapse;
|
74
|
+
box-shadow: -7px 5px 25px #aaa;
|
75
|
+
border-radius: 2px;
|
76
|
+
}
|
77
|
+
}
|
78
|
+
|
79
|
+
@media (min-width: 920px) {
|
80
|
+
body { height: 100%; overflow: hidden; }
|
81
|
+
#main { height: 100%; overflow: auto; }
|
82
|
+
#search { display: none; }
|
83
|
+
}
|
84
|
+
|
85
|
+
#main img { max-width: 100%; }
|
86
|
+
h1 { font-size: 25px; margin: 1em 0 0.5em; padding-top: 4px; border-top: 1px dotted #d5d5d5; }
|
87
|
+
h1.noborder { border-top: 0px; margin-top: 0; padding-top: 4px; }
|
88
|
+
h1.title { margin-bottom: 10px; }
|
89
|
+
h1.alphaindex { margin-top: 0; font-size: 22px; }
|
90
|
+
h2 {
|
91
|
+
padding: 0;
|
92
|
+
padding-bottom: 3px;
|
93
|
+
border-bottom: 1px #aaa solid;
|
94
|
+
font-size: 1.4em;
|
95
|
+
margin: 1.8em 0 0.5em;
|
96
|
+
position: relative;
|
97
|
+
}
|
98
|
+
h2 small { font-weight: normal; font-size: 0.7em; display: inline; position: absolute; right: 0; }
|
99
|
+
h2 small a {
|
100
|
+
display: block;
|
101
|
+
height: 20px;
|
102
|
+
border: 1px solid #aaa;
|
103
|
+
border-bottom: 0;
|
104
|
+
border-top-left-radius: 5px;
|
105
|
+
background: #f8f8f8;
|
106
|
+
position: relative;
|
107
|
+
padding: 2px 7px;
|
108
|
+
}
|
109
|
+
.clear { clear: both; }
|
110
|
+
.inline { display: inline; }
|
111
|
+
.inline p:first-child { display: inline; }
|
112
|
+
.docstring, .tags, #filecontents { font-size: 15px; line-height: 1.5145em; }
|
113
|
+
.docstring p > code, .docstring p > tt, .tags p > code, .tags p > tt {
|
114
|
+
color: #c7254e; background: #f9f2f4; padding: 2px 4px; font-size: 1em;
|
115
|
+
border-radius: 4px;
|
116
|
+
}
|
117
|
+
.docstring h1, .docstring h2, .docstring h3, .docstring h4 { padding: 0; border: 0; border-bottom: 1px dotted #bbb; }
|
118
|
+
.docstring h1 { font-size: 1.2em; }
|
119
|
+
.docstring h2 { font-size: 1.1em; }
|
120
|
+
.docstring h3, .docstring h4 { font-size: 1em; border-bottom: 0; padding-top: 10px; }
|
121
|
+
.summary_desc .object_link a, .docstring .object_link a {
|
122
|
+
font-family: monospace; font-size: 1.05em;
|
123
|
+
color: #05a; background: #EDF4FA; padding: 2px 4px; font-size: 1em;
|
124
|
+
border-radius: 4px;
|
125
|
+
}
|
126
|
+
.rdoc-term { padding-right: 25px; font-weight: bold; }
|
127
|
+
.rdoc-list p { margin: 0; padding: 0; margin-bottom: 4px; }
|
128
|
+
.summary_desc pre.code .object_link a, .docstring pre.code .object_link a {
|
129
|
+
padding: 0px; background: inherit; color: inherit; border-radius: inherit;
|
130
|
+
}
|
131
|
+
|
132
|
+
/* style for <table> */
|
133
|
+
#filecontents table, .docstring table { border-collapse: collapse; }
|
134
|
+
#filecontents table th, #filecontents table td,
|
135
|
+
.docstring table th, .docstring table td { border: 1px solid #ccc; padding: 8px; padding-right: 17px; }
|
136
|
+
#filecontents table tr:nth-child(odd),
|
137
|
+
.docstring table tr:nth-child(odd) { background: #eee; }
|
138
|
+
#filecontents table tr:nth-child(even),
|
139
|
+
.docstring table tr:nth-child(even) { background: #fff; }
|
140
|
+
#filecontents table th, .docstring table th { background: #fff; }
|
141
|
+
|
142
|
+
/* style for <ul> */
|
143
|
+
#filecontents li > p, .docstring li > p { margin: 0px; }
|
144
|
+
#filecontents ul, .docstring ul { padding-left: 20px; }
|
145
|
+
/* style for <dl> */
|
146
|
+
#filecontents dl, .docstring dl { border: 1px solid #ccc; }
|
147
|
+
#filecontents dt, .docstring dt { background: #ddd; font-weight: bold; padding: 3px 5px; }
|
148
|
+
#filecontents dd, .docstring dd { padding: 5px 0px; margin-left: 18px; }
|
149
|
+
#filecontents dd > p, .docstring dd > p { margin: 0px; }
|
150
|
+
|
151
|
+
.note {
|
152
|
+
color: #222;
|
153
|
+
margin: 20px 0;
|
154
|
+
padding: 10px;
|
155
|
+
border: 1px solid #eee;
|
156
|
+
border-radius: 3px;
|
157
|
+
display: block;
|
158
|
+
}
|
159
|
+
.docstring .note {
|
160
|
+
border-left-color: #ccc;
|
161
|
+
border-left-width: 5px;
|
162
|
+
}
|
163
|
+
.note.todo { background: #ffffc5; border-color: #ececaa; }
|
164
|
+
.note.returns_void { background: #efefef; }
|
165
|
+
.note.deprecated { background: #ffe5e5; border-color: #e9dada; }
|
166
|
+
.note.title.deprecated { background: #ffe5e5; border-color: #e9dada; }
|
167
|
+
.note.private { background: #ffffc5; border-color: #ececaa; }
|
168
|
+
.note.title { padding: 3px 6px; font-size: 0.9em; font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; display: inline; }
|
169
|
+
.summary_signature + .note.title { margin-left: 7px; }
|
170
|
+
h1 .note.title { font-size: 0.5em; font-weight: normal; padding: 3px 5px; position: relative; top: -3px; text-transform: capitalize; }
|
171
|
+
.note.title { background: #efefef; }
|
172
|
+
.note.title.constructor { color: #fff; background: #6a98d6; border-color: #6689d6; }
|
173
|
+
.note.title.writeonly { color: #fff; background: #45a638; border-color: #2da31d; }
|
174
|
+
.note.title.readonly { color: #fff; background: #6a98d6; border-color: #6689d6; }
|
175
|
+
.note.title.private { background: #d5d5d5; border-color: #c5c5c5; }
|
176
|
+
.note.title.not_defined_here { background: transparent; border: none; font-style: italic; }
|
177
|
+
.discussion .note { margin-top: 6px; }
|
178
|
+
.discussion .note:first-child { margin-top: 0; }
|
179
|
+
|
180
|
+
h3.inherited {
|
181
|
+
font-style: italic;
|
182
|
+
font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
|
183
|
+
font-weight: normal;
|
184
|
+
padding: 0;
|
185
|
+
margin: 0;
|
186
|
+
margin-top: 12px;
|
187
|
+
margin-bottom: 3px;
|
188
|
+
font-size: 13px;
|
189
|
+
}
|
190
|
+
p.inherited {
|
191
|
+
padding: 0;
|
192
|
+
margin: 0;
|
193
|
+
margin-left: 25px;
|
194
|
+
}
|
195
|
+
|
196
|
+
.box_info dl {
|
197
|
+
margin: 0;
|
198
|
+
border: 0;
|
199
|
+
width: 100%;
|
200
|
+
font-size: 1em;
|
201
|
+
display: flex;
|
202
|
+
display: -webkit-flex;
|
203
|
+
display: -ms-flexbox;
|
204
|
+
}
|
205
|
+
.box_info dl dt {
|
206
|
+
flex-shrink: 0;
|
207
|
+
-webkit-flex-shrink: 1;
|
208
|
+
-ms-flex-shrink: 1;
|
209
|
+
width: 100px;
|
210
|
+
text-align: right;
|
211
|
+
font-weight: bold;
|
212
|
+
border: 1px solid #aaa;
|
213
|
+
border-width: 1px 0px 0px 1px;
|
214
|
+
padding: 6px 0;
|
215
|
+
padding-right: 10px;
|
216
|
+
}
|
217
|
+
.box_info dl dd {
|
218
|
+
flex-grow: 1;
|
219
|
+
-webkit-flex-grow: 1;
|
220
|
+
-ms-flex: 1;
|
221
|
+
max-width: 420px;
|
222
|
+
padding: 6px 0;
|
223
|
+
padding-right: 20px;
|
224
|
+
border: 1px solid #aaa;
|
225
|
+
border-width: 1px 1px 0 0;
|
226
|
+
overflow: hidden;
|
227
|
+
position: relative;
|
228
|
+
}
|
229
|
+
.box_info dl:last-child > * {
|
230
|
+
border-bottom: 1px solid #aaa;
|
231
|
+
}
|
232
|
+
.box_info dl:nth-child(odd) > * { background: #eee; }
|
233
|
+
.box_info dl:nth-child(even) > * { background: #fff; }
|
234
|
+
.box_info dl > * { margin: 0; }
|
235
|
+
|
236
|
+
ul.toplevel { list-style: none; padding-left: 0; font-size: 1.1em; }
|
237
|
+
.index_inline_list { padding-left: 0; font-size: 1.1em; }
|
238
|
+
|
239
|
+
.index_inline_list li {
|
240
|
+
list-style: none;
|
241
|
+
display: inline-block;
|
242
|
+
padding: 0 12px;
|
243
|
+
line-height: 30px;
|
244
|
+
margin-bottom: 5px;
|
245
|
+
}
|
246
|
+
|
247
|
+
dl.constants { margin-left: 10px; }
|
248
|
+
dl.constants dt { font-weight: bold; font-size: 1.1em; margin-bottom: 5px; }
|
249
|
+
dl.constants.compact dt { display: inline-block; font-weight: normal }
|
250
|
+
dl.constants dd { width: 75%; white-space: pre; font-family: monospace; margin-bottom: 18px; }
|
251
|
+
dl.constants .docstring .note:first-child { margin-top: 5px; }
|
252
|
+
|
253
|
+
.summary_desc {
|
254
|
+
margin-left: 32px;
|
255
|
+
display: block;
|
256
|
+
font-family: sans-serif;
|
257
|
+
font-size: 1.1em;
|
258
|
+
margin-top: 8px;
|
259
|
+
line-height: 1.5145em;
|
260
|
+
margin-bottom: 0.8em;
|
261
|
+
}
|
262
|
+
.summary_desc tt { font-size: 0.9em; }
|
263
|
+
dl.constants .note { padding: 2px 6px; padding-right: 12px; margin-top: 6px; }
|
264
|
+
dl.constants .docstring { margin-left: 32px; font-size: 0.9em; font-weight: normal; }
|
265
|
+
dl.constants .tags { padding-left: 32px; font-size: 0.9em; line-height: 0.8em; }
|
266
|
+
dl.constants .discussion *:first-child { margin-top: 0; }
|
267
|
+
dl.constants .discussion *:last-child { margin-bottom: 0; }
|
268
|
+
|
269
|
+
.method_details { border-top: 1px dotted #ccc; margin-top: 25px; padding-top: 0; }
|
270
|
+
.method_details.first { border: 0; margin-top: 5px; }
|
271
|
+
.method_details.first h3.signature { margin-top: 1em; }
|
272
|
+
p.signature, h3.signature {
|
273
|
+
font-size: 1.1em; font-weight: normal; font-family: Monaco, Consolas, Courier, monospace;
|
274
|
+
padding: 6px 10px; margin-top: 1em;
|
275
|
+
background: #E8F4FF; border: 1px solid #d8d8e5; border-radius: 5px;
|
276
|
+
}
|
277
|
+
p.signature tt,
|
278
|
+
h3.signature tt { font-family: Monaco, Consolas, Courier, monospace; }
|
279
|
+
p.signature .overload,
|
280
|
+
h3.signature .overload { display: block; }
|
281
|
+
p.signature .extras,
|
282
|
+
h3.signature .extras { font-weight: normal; font-family: sans-serif; color: #444; font-size: 1em; }
|
283
|
+
p.signature .not_defined_here,
|
284
|
+
h3.signature .not_defined_here,
|
285
|
+
p.signature .aliases,
|
286
|
+
h3.signature .aliases { display: block; font-weight: normal; font-size: 0.9em; font-family: sans-serif; margin-top: 0px; color: #555; }
|
287
|
+
p.signature .aliases .names,
|
288
|
+
h3.signature .aliases .names { font-family: Monaco, Consolas, Courier, monospace; font-weight: bold; color: #000; font-size: 1.2em; }
|
289
|
+
|
290
|
+
.tags .tag_title { font-size: 1.05em; margin-bottom: 0; font-weight: bold; }
|
291
|
+
.tags .tag_title tt { color: initial; padding: initial; background: initial; }
|
292
|
+
.tags ul { margin-top: 5px; padding-left: 30px; list-style: square; }
|
293
|
+
.tags ul li { margin-bottom: 3px; }
|
294
|
+
.tags ul .name { font-family: monospace; font-weight: bold; }
|
295
|
+
.tags ul .note { padding: 3px 6px; }
|
296
|
+
.tags { margin-bottom: 12px; }
|
297
|
+
|
298
|
+
.tags .examples .tag_title { margin-bottom: 10px; font-weight: bold; }
|
299
|
+
.tags .examples .inline p { padding: 0; margin: 0; font-weight: bold; font-size: 1em; }
|
300
|
+
.tags .examples .inline p:before { content: "▸"; font-size: 1em; margin-right: 5px; }
|
301
|
+
|
302
|
+
.tags .overload .overload_item { list-style: none; margin-bottom: 25px; }
|
303
|
+
.tags .overload .overload_item .signature {
|
304
|
+
padding: 2px 8px;
|
305
|
+
background: #F1F8FF; border: 1px solid #d8d8e5; border-radius: 3px;
|
306
|
+
}
|
307
|
+
.tags .overload .signature { margin-left: -15px; font-family: monospace; display: block; font-size: 1.1em; }
|
308
|
+
.tags .overload .docstring { margin-top: 15px; }
|
309
|
+
|
310
|
+
.defines { display: none; }
|
311
|
+
|
312
|
+
#method_missing_details .notice.this { position: relative; top: -8px; color: #888; padding: 0; margin: 0; }
|
313
|
+
|
314
|
+
.showSource { font-size: 0.9em; }
|
315
|
+
.showSource a, .showSource a:visited { text-decoration: none; color: #666; }
|
316
|
+
|
317
|
+
#content a, #content a:visited { text-decoration: none; color: #05a; }
|
318
|
+
#content a:hover { background: #ffffa5; }
|
319
|
+
|
320
|
+
ul.summary {
|
321
|
+
list-style: none;
|
322
|
+
font-family: monospace;
|
323
|
+
font-size: 1em;
|
324
|
+
line-height: 1.5em;
|
325
|
+
padding-left: 0px;
|
326
|
+
}
|
327
|
+
ul.summary a, ul.summary a:visited {
|
328
|
+
text-decoration: none; font-size: 1.1em;
|
329
|
+
}
|
330
|
+
ul.summary li { margin-bottom: 5px; }
|
331
|
+
.summary_signature { padding: 4px 8px; background: #f8f8f8; border: 1px solid #f0f0f0; border-radius: 5px; }
|
332
|
+
.summary_signature:hover { background: #CFEBFF; border-color: #A4CCDA; cursor: pointer; }
|
333
|
+
.summary_signature.deprecated { background: #ffe5e5; border-color: #e9dada; }
|
334
|
+
ul.summary.compact li { display: inline-block; margin: 0px 5px 0px 0px; line-height: 2.6em;}
|
335
|
+
ul.summary.compact .summary_signature { padding: 5px 7px; padding-right: 4px; }
|
336
|
+
#content .summary_signature:hover a,
|
337
|
+
#content .summary_signature:hover a:visited {
|
338
|
+
background: transparent;
|
339
|
+
color: #049;
|
340
|
+
}
|
341
|
+
|
342
|
+
p.inherited a { font-family: monospace; font-size: 0.9em; }
|
343
|
+
p.inherited { word-spacing: 5px; font-size: 1.2em; }
|
344
|
+
|
345
|
+
p.children { font-size: 1.2em; }
|
346
|
+
p.children a { font-size: 0.9em; }
|
347
|
+
p.children strong { font-size: 0.8em; }
|
348
|
+
p.children strong.modules { padding-left: 5px; }
|
349
|
+
|
350
|
+
ul.fullTree { display: none; padding-left: 0; list-style: none; margin-left: 0; margin-bottom: 10px; }
|
351
|
+
ul.fullTree ul { margin-left: 0; padding-left: 0; list-style: none; }
|
352
|
+
ul.fullTree li { text-align: center; padding-top: 18px; padding-bottom: 12px; background: url(data:image/gif;base64,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) no-repeat top center; }
|
353
|
+
ul.fullTree li:first-child { padding-top: 0; background: transparent; }
|
354
|
+
ul.fullTree li:last-child { padding-bottom: 0; }
|
355
|
+
.showAll ul.fullTree { display: block; }
|
356
|
+
.showAll .inheritName { display: none; }
|
357
|
+
|
358
|
+
#search { position: absolute; right: 12px; top: 0px; z-index: 9000; }
|
359
|
+
#search a {
|
360
|
+
display: block; float: left;
|
361
|
+
padding: 4px 8px; text-decoration: none; color: #05a; fill: #05a;
|
362
|
+
border: 1px solid #d8d8e5;
|
363
|
+
border-bottom-left-radius: 3px; border-bottom-right-radius: 3px;
|
364
|
+
background: #F1F8FF;
|
365
|
+
box-shadow: -1px 1px 3px #ddd;
|
366
|
+
}
|
367
|
+
#search a:hover { background: #f5faff; color: #06b; fill: #06b; }
|
368
|
+
#search a.active {
|
369
|
+
background: #568; padding-bottom: 20px; color: #fff; fill: #fff;
|
370
|
+
border: 1px solid #457;
|
371
|
+
border-top-left-radius: 5px; border-top-right-radius: 5px;
|
372
|
+
}
|
373
|
+
#search a.inactive { color: #999; fill: #999; }
|
374
|
+
.inheritanceTree, .toggleDefines {
|
375
|
+
float: right;
|
376
|
+
border-left: 1px solid #aaa;
|
377
|
+
position: absolute; top: 0; right: 0;
|
378
|
+
height: 100%;
|
379
|
+
background: #f6f6f6;
|
380
|
+
padding: 5px;
|
381
|
+
min-width: 55px;
|
382
|
+
text-align: center;
|
383
|
+
}
|
384
|
+
|
385
|
+
#menu { font-size: 1.3em; color: #bbb; }
|
386
|
+
#menu .title, #menu a { font-size: 0.7em; }
|
387
|
+
#menu .title a { font-size: 1em; }
|
388
|
+
#menu .title { color: #555; }
|
389
|
+
#menu a, #menu a:visited { color: #333; text-decoration: none; border-bottom: 1px dotted #bbd; }
|
390
|
+
#menu a:hover { color: #05a; }
|
391
|
+
|
392
|
+
#footer { margin-top: 15px; border-top: 1px solid #ccc; text-align: center; padding: 7px 0; color: #999; }
|
393
|
+
#footer a, #footer a:visited { color: #444; text-decoration: none; border-bottom: 1px dotted #bbd; }
|
394
|
+
#footer a:hover { color: #05a; }
|
395
|
+
|
396
|
+
#listing ul.alpha { font-size: 1.1em; }
|
397
|
+
#listing ul.alpha { margin: 0; padding: 0; padding-bottom: 10px; list-style: none; }
|
398
|
+
#listing ul.alpha li.letter { font-size: 1.4em; padding-bottom: 10px; }
|
399
|
+
#listing ul.alpha ul { margin: 0; padding-left: 15px; }
|
400
|
+
#listing ul small { color: #666; font-size: 0.7em; }
|
401
|
+
|
402
|
+
li.r1 { background: #f0f0f0; }
|
403
|
+
li.r2 { background: #fafafa; }
|
404
|
+
|
405
|
+
#content ul.summary li.deprecated .summary_signature a,
|
406
|
+
#content ul.summary li.deprecated .summary_signature a:visited { text-decoration: line-through; font-style: italic; }
|
407
|
+
|
408
|
+
#toc {
|
409
|
+
position: relative;
|
410
|
+
float: right;
|
411
|
+
overflow-x: auto;
|
412
|
+
right: -3px;
|
413
|
+
margin-left: 20px;
|
414
|
+
margin-bottom: 20px;
|
415
|
+
padding: 20px; padding-right: 30px;
|
416
|
+
max-width: 300px;
|
417
|
+
z-index: 5000;
|
418
|
+
background: #fefefe;
|
419
|
+
border: 1px solid #ddd;
|
420
|
+
box-shadow: -2px 2px 6px #bbb;
|
421
|
+
}
|
422
|
+
#toc .title { margin: 0; }
|
423
|
+
#toc ol { padding-left: 1.8em; }
|
424
|
+
#toc li { font-size: 1.1em; line-height: 1.7em; }
|
425
|
+
#toc > ol > li { font-size: 1.1em; font-weight: bold; }
|
426
|
+
#toc ol > li > ol { font-size: 0.9em; }
|
427
|
+
#toc ol ol > li > ol { padding-left: 2.3em; }
|
428
|
+
#toc ol + li { margin-top: 0.3em; }
|
429
|
+
#toc.hidden { padding: 10px; background: #fefefe; box-shadow: none; }
|
430
|
+
#toc.hidden:hover { background: #fafafa; }
|
431
|
+
#filecontents h1 + #toc.nofloat { margin-top: 0; }
|
432
|
+
@media (max-width: 560px) {
|
433
|
+
#toc {
|
434
|
+
margin-left: 0;
|
435
|
+
margin-top: 16px;
|
436
|
+
float: none;
|
437
|
+
max-width: none;
|
438
|
+
}
|
439
|
+
}
|
440
|
+
|
441
|
+
/* syntax highlighting */
|
442
|
+
.source_code { display: none; padding: 3px 8px; border-left: 8px solid #ddd; margin-top: 5px; }
|
443
|
+
#filecontents pre.code, .docstring pre.code, .source_code pre { font-family: monospace; }
|
444
|
+
#filecontents pre.code, .docstring pre.code { display: block; }
|
445
|
+
.source_code .lines { padding-right: 12px; color: #555; text-align: right; }
|
446
|
+
#filecontents pre.code, .docstring pre.code,
|
447
|
+
.tags pre.example {
|
448
|
+
padding: 9px 14px;
|
449
|
+
margin-top: 4px;
|
450
|
+
border: 1px solid #e1e1e8;
|
451
|
+
background: #f7f7f9;
|
452
|
+
border-radius: 4px;
|
453
|
+
font-size: 1em;
|
454
|
+
overflow-x: auto;
|
455
|
+
line-height: 1.2em;
|
456
|
+
}
|
457
|
+
pre.code { color: #000; tab-size: 2; }
|
458
|
+
pre.code .info.file { color: #555; }
|
459
|
+
pre.code .val { color: #036A07; }
|
460
|
+
pre.code .tstring_content,
|
461
|
+
pre.code .heredoc_beg, pre.code .heredoc_end,
|
462
|
+
pre.code .qwords_beg, pre.code .qwords_end, pre.code .qwords_sep,
|
463
|
+
pre.code .words_beg, pre.code .words_end, pre.code .words_sep,
|
464
|
+
pre.code .qsymbols_beg, pre.code .qsymbols_end, pre.code .qsymbols_sep,
|
465
|
+
pre.code .symbols_beg, pre.code .symbols_end, pre.code .symbols_sep,
|
466
|
+
pre.code .tstring, pre.code .dstring { color: #036A07; }
|
467
|
+
pre.code .fid, pre.code .rubyid_new, pre.code .rubyid_to_s,
|
468
|
+
pre.code .rubyid_to_sym, pre.code .rubyid_to_f,
|
469
|
+
pre.code .dot + pre.code .id,
|
470
|
+
pre.code .rubyid_to_i pre.code .rubyid_each { color: #0085FF; }
|
471
|
+
pre.code .comment { color: #0066FF; }
|
472
|
+
pre.code .const, pre.code .constant { color: #585CF6; }
|
473
|
+
pre.code .label,
|
474
|
+
pre.code .symbol { color: #C5060B; }
|
475
|
+
pre.code .kw,
|
476
|
+
pre.code .rubyid_require,
|
477
|
+
pre.code .rubyid_extend,
|
478
|
+
pre.code .rubyid_include { color: #0000FF; }
|
479
|
+
pre.code .ivar { color: #318495; }
|
480
|
+
pre.code .gvar,
|
481
|
+
pre.code .rubyid_backref,
|
482
|
+
pre.code .rubyid_nth_ref { color: #6D79DE; }
|
483
|
+
pre.code .regexp, .dregexp { color: #036A07; }
|
484
|
+
pre.code a { border-bottom: 1px dotted #bbf; }
|
485
|
+
/* inline code */
|
486
|
+
*:not(pre) > code {
|
487
|
+
padding: 1px 3px 1px 3px;
|
488
|
+
border: 1px solid #E1E1E8;
|
489
|
+
background: #F7F7F9;
|
490
|
+
border-radius: 4px;
|
491
|
+
}
|
492
|
+
|
493
|
+
/* Color fix for links */
|
494
|
+
#content .summary_desc pre.code .id > .object_link a, /* identifier */
|
495
|
+
#content .docstring pre.code .id > .object_link a { color: #0085FF; }
|
496
|
+
#content .summary_desc pre.code .const > .object_link a, /* constant */
|
497
|
+
#content .docstring pre.code .const > .object_link a { color: #585CF6; }
|
@@ -0,0 +1,159 @@
|
|
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
|
+
File: README
|
8
|
+
|
9
|
+
— Documentation by YARD 0.9.34
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" />
|
16
|
+
|
17
|
+
<script type="text/javascript">
|
18
|
+
pathId = "README";
|
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="file_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> »
|
40
|
+
<span class="title">File: README</span>
|
41
|
+
|
42
|
+
</div>
|
43
|
+
|
44
|
+
<div id="search">
|
45
|
+
|
46
|
+
<a class="full_list_link" id="class_list_link"
|
47
|
+
href="class_list.html">
|
48
|
+
|
49
|
+
<svg width="24" height="24">
|
50
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
51
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
52
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
53
|
+
</svg>
|
54
|
+
</a>
|
55
|
+
|
56
|
+
</div>
|
57
|
+
<div class="clear"></div>
|
58
|
+
</div>
|
59
|
+
|
60
|
+
<div id="content"><div id='filecontents'>
|
61
|
+
<h1 id="label-Shep-3A+Simple+Http+intErface+to+Pmastodon">Shep: Simple Http intErface to Pmastodon</h1>
|
62
|
+
|
63
|
+
<p>Shep is a library that provides access to the Mastodon web API. It is an alternative to the <a href="https://rubygems.org/gems/mastodon-api/versions/2.0.0">official Mastodon API Gem</a>.</p>
|
64
|
+
|
65
|
+
<p>Pros:</p>
|
66
|
+
<ul><li>
|
67
|
+
<p>It has no dependencies other than stock Ruby 3.0.x or later. (It’s also been seen to work on JRuby-9.4.2.0.)</p>
|
68
|
+
</li><li>
|
69
|
+
<p>Its unit tests do not require a dedicated Mastodon instance and will work with just a scratch user account (and partially without even that).</p>
|
70
|
+
</li><li>
|
71
|
+
<p>It’s a bit more “batteries included” than the official gem tries to do more for you.</p>
|
72
|
+
</li><li>
|
73
|
+
<p>It supports <a href="https://docs.joinmastodon.org/methods/statuses/#context">Contexts</a>.</p>
|
74
|
+
</li></ul>
|
75
|
+
|
76
|
+
<p>Cons:</p>
|
77
|
+
<ul><li>
|
78
|
+
<p>It supports much less of the API than the offical gem.</p>
|
79
|
+
</li><li>
|
80
|
+
<p>Its author thinks metaprogramming is cool.</p>
|
81
|
+
</li></ul>
|
82
|
+
|
83
|
+
<h2 id="label-Some+Quick+Examples-3A">Some Quick Examples:</h2>
|
84
|
+
|
85
|
+
<p>Here’s the canonical use case, retrieving cat pictures:</p>
|
86
|
+
|
87
|
+
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>shep</span><span class='tstring_end'>'</span></span>
|
88
|
+
|
89
|
+
<span class='const'>HOST</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>... name of mastodon host goes here...</span><span class='tstring_end'>"</span></span>
|
90
|
+
|
91
|
+
<span class='id identifier rubyid_ss'>ss</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Shep.html" title="Shep (module)">Shep</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Shep/Session.html" title="Shep::Session (class)">Session</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Shep/Session.html#initialize-instance_method" title="Shep::Session#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>host:</span> <span class='const'>HOST</span><span class='rparen'>)</span>
|
92
|
+
|
93
|
+
<span class='id identifier rubyid_ss'>ss</span><span class='period'>.</span><span class='id identifier rubyid_each_tag_status'>each_tag_status</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>caturday</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='label'>only_media:</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='label'>limit:</span> <span class='int'>10</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_status'>status</span><span class='op'>|</span>
|
94
|
+
<span class='id identifier rubyid_ss'>ss</span><span class='period'>.</span><span class='id identifier rubyid_fetch_status_with_media'>fetch_status_with_media</span><span class='lparen'>(</span><span class='id identifier rubyid_status'>status</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='id identifier rubyid_media_dir'>media_dir</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>cat_pix</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
95
|
+
<span class='rbrace'>}</span>
|
96
|
+
</code></pre>
|
97
|
+
|
98
|
+
<p>And, of course, uploading cat pictures:</p>
|
99
|
+
|
100
|
+
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>shep</span><span class='tstring_end'>'</span></span>
|
101
|
+
|
102
|
+
<span class='const'>HOST</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>... name of mastodon host goes here...</span><span class='tstring_end'>"</span></span>
|
103
|
+
<span class='const'>TOKEN</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>...token goes here...</span><span class='tstring_end'>"</span></span>
|
104
|
+
|
105
|
+
<span class='id identifier rubyid_ss'>ss</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Shep.html" title="Shep (module)">Shep</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Shep/Session.html" title="Shep::Session (class)">Session</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Shep/Session.html#initialize-instance_method" title="Shep::Session#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>host:</span> <span class='const'>HOST</span><span class='comma'>,</span> <span class='label'>token:</span> <span class='const'>TOKEN</span><span class='rparen'>)</span>
|
106
|
+
|
107
|
+
<span class='id identifier rubyid_img_obj'>img_obj</span> <span class='op'>=</span> <span class='id identifier rubyid_ss'>ss</span><span class='period'>.</span><span class='id identifier rubyid_upload_media'>upload_media</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>cat.jpg</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
108
|
+
<span class='label'>content_type:</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>image/jpeg</span><span class='tstring_end'>'</span></span><span class='comma'>,</span>
|
109
|
+
<span class='label'>description:</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>A cat.</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
110
|
+
|
111
|
+
<span class='id identifier rubyid_post'>post</span> <span class='op'>=</span> <span class='id identifier rubyid_ss'>ss</span><span class='period'>.</span><span class='id identifier rubyid_post_status'>post_status</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Here is a picture of a cat.</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
112
|
+
<span class='label'>spoiler_text:</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>cat pic</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
113
|
+
<span class='label'>visibility:</span> <span class='symbol'>:public</span><span class='comma'>,</span>
|
114
|
+
<span class='label'>media_ids:</span> <span class='lbracket'>[</span><span class='id identifier rubyid_img_obj'>img_obj</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
115
|
+
|
116
|
+
<span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Cat picture posted: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_post'>post</span><span class='period'>.</span><span class='id identifier rubyid_url'>url</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span>
|
117
|
+
</code></pre>
|
118
|
+
|
119
|
+
<p>It can also be used for other things.</p>
|
120
|
+
|
121
|
+
<h2 id="label-Installation">Installation</h2>
|
122
|
+
|
123
|
+
<p>The usual way to install Shep is via gem:</p>
|
124
|
+
|
125
|
+
<pre class="code ruby"><code class="ruby">$ gem install shep
|
126
|
+
</code></pre>
|
127
|
+
|
128
|
+
<p>Alternately, you can fetch this repo and add it to your Ruby path.</p>
|
129
|
+
|
130
|
+
<p>If you wish to develop Shep, you’ll also need Rake, YARD, and RSpec.</p>
|
131
|
+
|
132
|
+
<h2 id="label-Testing">Testing</h2>
|
133
|
+
|
134
|
+
<p>The tests are somewhat clever in that if there isn’t a Mastodon instance available or if you don’t have a writable account on it, it will still try to run tests that don’t need those things.</p>
|
135
|
+
|
136
|
+
<p>On they other hand, some of the tests will fail if (e.g.) an account doesn’t have enough statuses with attached pictures. I’ve tried to document this when it happens. Usually, a test will fail rather than let a part of the code go untested.</p>
|
137
|
+
|
138
|
+
<p>The tests get credentials from the environment. Normally, I run <code>rake test</code> from a script that first sets those variables to useful values.</p>
|
139
|
+
|
140
|
+
<p>The file <code>run_rake_test.example.sh</code> documents these variables and what they do.</p>
|
141
|
+
|
142
|
+
<h2 id="label-License+and+Warranty">License and Warranty</h2>
|
143
|
+
|
144
|
+
<p>Shep is available under the terms of the GNU Affero GPL Version 3 plus an exemption that allows you to release programs that use it under your own terms.</p>
|
145
|
+
|
146
|
+
<p>It is offered <strong>WITHOUT WARRANTY OF ANY KIND</strong>. If it breaks, you get to keep the pieces.</p>
|
147
|
+
|
148
|
+
<p>While it is not legally required or enforcable, you are nontheless honour-bound to use Shep only for good and never for evil.</p>
|
149
|
+
</div></div>
|
150
|
+
|
151
|
+
<div id="footer">
|
152
|
+
Generated on Sun Jun 4 13:40:29 2023 by
|
153
|
+
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
154
|
+
0.9.34 (ruby-3.1.0).
|
155
|
+
</div>
|
156
|
+
|
157
|
+
</div>
|
158
|
+
</body>
|
159
|
+
</html>
|