leif 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/leif +1 -6
- data/lib/leif/cli.rb +170 -60
- data/lib/leif/collection_json.rb +30 -9
- data/lib/leif/version.rb +1 -1
- data/man/leif.1 +55 -4
- data/man/leif.1.html +24 -3
- data/man/leif.1.ronn +40 -4
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3610c76b9d9f405c0e4bdb4e0a32e9762cd51cb4
|
4
|
+
data.tar.gz: ef233fb2ad75558607817a0c0497263ea4a6d681
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1fe9d60703d464079f71339e5aeaf3ec2a7d8fc9adc89f809bca82deb98e21f8da1665c5711496aa1ff279fa517dcd42865a9240c08bf03f0c159db0a04cb55c
|
7
|
+
data.tar.gz: 1b5a54e33254a55c1d06e63ff73c889631ed7253d0dcb034d3687bf164be395d61ba60eb499d606f63bf306a20158c065eb6de316545784aa922778f82a54cce
|
data/bin/leif
CHANGED
@@ -3,15 +3,10 @@ require 'leif/cli'
|
|
3
3
|
require 'leif/collection_json'
|
4
4
|
require 'leif/section'
|
5
5
|
|
6
|
-
trap('INT') do
|
7
|
-
puts
|
8
|
-
exit
|
9
|
-
end
|
10
|
-
|
11
6
|
Leif::Cli.new.tap do |cli|
|
12
7
|
cli.get_root
|
13
8
|
loop do
|
14
|
-
cli.
|
9
|
+
cli.print_overview
|
15
10
|
cli.get_next_action
|
16
11
|
end
|
17
12
|
end
|
data/lib/leif/cli.rb
CHANGED
@@ -52,29 +52,15 @@ module Leif
|
|
52
52
|
make_request @response.env[:url].request_uri
|
53
53
|
end
|
54
54
|
|
55
|
-
def
|
56
|
-
|
57
|
-
|
58
|
-
out.print @response.env[:request_headers].map {|header, value|
|
59
|
-
"#{header}: #{value}"
|
60
|
-
}
|
61
|
-
end
|
62
|
-
|
63
|
-
banner 'Response' do |out|
|
64
|
-
out.print @response.headers.map {|header, value|
|
65
|
-
"#{header}: #{value}"
|
66
|
-
}
|
67
|
-
end
|
55
|
+
def print_overview
|
56
|
+
print_request
|
57
|
+
print_response
|
68
58
|
|
69
59
|
banner 'Body' do |out|
|
70
60
|
out.print JSON.pretty_generate(@response.body).lines
|
71
61
|
end
|
72
62
|
|
73
|
-
|
74
|
-
unless collection.link_relations.empty?
|
75
|
-
out.print collection.link_relations.join(', ')
|
76
|
-
end
|
77
|
-
end
|
63
|
+
print_links collection
|
78
64
|
end
|
79
65
|
|
80
66
|
def request_basic_authentication(username = :ask, password = :ask)
|
@@ -89,24 +75,21 @@ module Leif
|
|
89
75
|
retry_request
|
90
76
|
end
|
91
77
|
|
92
|
-
def follow_link(relation = :ask)
|
78
|
+
def follow_link(subject, relation = :ask)
|
93
79
|
relation = ask('Relation: ') if relation == :ask
|
94
|
-
make_request
|
80
|
+
make_request subject.link_href(relation)
|
95
81
|
end
|
96
82
|
|
97
83
|
def create_item
|
98
84
|
template = collection.template
|
99
85
|
|
100
86
|
loop do
|
101
|
-
|
102
|
-
out.print JSON.pretty_generate(template).lines
|
103
|
-
end
|
104
|
-
|
87
|
+
print_template template, 'Create Item'
|
105
88
|
puts
|
106
89
|
puts 'Fill the template to create a new item.'
|
107
90
|
name = ask('Name (empty to submit): ')
|
108
91
|
break if name.empty?
|
109
|
-
value =
|
92
|
+
value = ask_for_primitive('Value: ')
|
110
93
|
|
111
94
|
template = template.fill_field name, value
|
112
95
|
end
|
@@ -114,33 +97,16 @@ module Leif
|
|
114
97
|
make_request template.href, template.convert_to_json, template.method
|
115
98
|
end
|
116
99
|
|
117
|
-
def
|
118
|
-
item = collection.items.find do |item|
|
119
|
-
banner 'Item' do |out|
|
120
|
-
out.print JSON.pretty_generate(item).lines
|
121
|
-
end
|
122
|
-
|
123
|
-
puts
|
124
|
-
response = ask('Select this item to update [y,n]? ') do |q|
|
125
|
-
q.character = true
|
126
|
-
q.validate = /\A[yn]\Z/
|
127
|
-
end
|
128
|
-
|
129
|
-
response == 'y'
|
130
|
-
end
|
131
|
-
|
100
|
+
def update(item)
|
132
101
|
template = collection.item_template item
|
133
102
|
|
134
103
|
loop do
|
135
|
-
|
136
|
-
out.print JSON.pretty_generate(template).lines
|
137
|
-
end
|
138
|
-
|
104
|
+
print_template template, 'Update Item'
|
139
105
|
puts
|
140
106
|
puts 'Fill the template to update the item.'
|
141
107
|
name = ask('Name (empty to submit): ')
|
142
108
|
break if name.empty?
|
143
|
-
value =
|
109
|
+
value = ask_for_primitive('Value: ')
|
144
110
|
|
145
111
|
template = template.fill_field name, value
|
146
112
|
end
|
@@ -148,6 +114,64 @@ module Leif
|
|
148
114
|
make_request template.href, template.convert_to_json, template.method
|
149
115
|
end
|
150
116
|
|
117
|
+
def print_request
|
118
|
+
banner 'Request' do |out|
|
119
|
+
out.print "#{@response.env[:method].upcase} #{@response.env[:url]}"
|
120
|
+
out.print @response.env[:request_headers].map {|header, value|
|
121
|
+
"#{header}: #{value}"
|
122
|
+
}
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
def print_response
|
127
|
+
banner 'Response' do |out|
|
128
|
+
out.print @response.headers.map {|header, value|
|
129
|
+
"#{header}: #{value}"
|
130
|
+
}
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
def print_links(subject)
|
135
|
+
banner 'Links' do |out|
|
136
|
+
unless subject.link_relations.empty?
|
137
|
+
out.print subject.link_relations.join(', ')
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
def print_template(template = collection.template, label = 'Template')
|
143
|
+
banner label do |out|
|
144
|
+
out.print JSON.pretty_generate(template).lines
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
def print_items
|
149
|
+
item = select_item
|
150
|
+
print_links item
|
151
|
+
get_next_item_action item
|
152
|
+
rescue Interrupt
|
153
|
+
print '^C'
|
154
|
+
end
|
155
|
+
|
156
|
+
def print_item(item)
|
157
|
+
banner 'Item' do |out|
|
158
|
+
out.print JSON.pretty_generate(item).lines
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
def select_item
|
163
|
+
collection.items.find do |item|
|
164
|
+
print_item item
|
165
|
+
puts
|
166
|
+
response = ask('Select this item [y,n]? ') do |q|
|
167
|
+
q.character = true
|
168
|
+
q.validate = /\A[yn]\Z/
|
169
|
+
end
|
170
|
+
|
171
|
+
response == 'y'
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
151
175
|
def print_debug
|
152
176
|
banner 'Debug' do |out|
|
153
177
|
debug_output.rewind
|
@@ -156,42 +180,109 @@ module Leif
|
|
156
180
|
end
|
157
181
|
|
158
182
|
def print_help
|
159
|
-
|
160
|
-
|
161
|
-
|
183
|
+
banner 'Help' do |out|
|
184
|
+
out.print <<EOS.lines
|
185
|
+
root:
|
186
|
+
Go back to the root.
|
162
187
|
|
163
|
-
|
164
|
-
|
188
|
+
follow <rel>:
|
189
|
+
Follow link with the relation <rel> on the collection.
|
165
190
|
|
166
|
-
|
167
|
-
|
191
|
+
create:
|
192
|
+
Begin editing the template to create a new item.
|
168
193
|
|
169
|
-
|
170
|
-
|
171
|
-
prompted for username and password if omitted.
|
194
|
+
request:
|
195
|
+
Reprint the details of the last request.
|
172
196
|
|
173
|
-
|
174
|
-
|
197
|
+
response:
|
198
|
+
Reprint the details of the last response.
|
175
199
|
|
176
|
-
|
177
|
-
|
200
|
+
template:
|
201
|
+
Print the template from the last response.
|
202
|
+
|
203
|
+
items:
|
204
|
+
Print each item from the last response one at a time in order to update,
|
205
|
+
delete, or follow an item's link.
|
206
|
+
|
207
|
+
basic [<username> [<password>]]:
|
208
|
+
Authenticate with HTTP Basic and reload the current resource. Will be
|
209
|
+
prompted for username and password if omitted.
|
210
|
+
|
211
|
+
token <token>:
|
212
|
+
Authenticate using the given token and reload the current resource.
|
213
|
+
|
214
|
+
debug:
|
215
|
+
Print debug output from the previous HTTP request and response.
|
216
|
+
|
217
|
+
quit:
|
218
|
+
Exit leif.
|
178
219
|
EOS
|
220
|
+
end
|
221
|
+
end
|
222
|
+
|
223
|
+
def print_item_help
|
224
|
+
banner 'Help' do |out|
|
225
|
+
out.print <<EOS.lines
|
226
|
+
item:
|
227
|
+
Print the selected item.
|
228
|
+
|
229
|
+
cancel:
|
230
|
+
Cancel item selection and go back to the collection.
|
231
|
+
|
232
|
+
follow <rel>:
|
233
|
+
Follow link with the relation <rel> on the selected item.
|
234
|
+
|
235
|
+
update:
|
236
|
+
Begin editing the template to update the selected item.
|
237
|
+
|
238
|
+
quit:
|
239
|
+
Exit leif.
|
240
|
+
EOS
|
241
|
+
end
|
242
|
+
end
|
243
|
+
|
244
|
+
def get_next_item_action(item)
|
245
|
+
command, args = ask_for_action
|
246
|
+
case command
|
247
|
+
when 'item' then print_item(item); get_next_item_action(item)
|
248
|
+
when 'update' then update(item)
|
249
|
+
when 'f', 'follow' then follow_link(item, *args)
|
250
|
+
when 'cancel'
|
251
|
+
when 'q', 'quit' then exit
|
252
|
+
when '?', 'help' then print_item_help; get_next_item_action(item)
|
253
|
+
else puts 'Try again.'; get_next_item_action(item)
|
254
|
+
end
|
255
|
+
rescue Interrupt
|
256
|
+
print '^C'
|
179
257
|
end
|
180
258
|
|
181
259
|
def get_next_action
|
182
260
|
command, args = ask_for_action
|
183
261
|
case command
|
184
262
|
when 'r', 'root' then get_root
|
185
|
-
when 'f', 'follow' then follow_link(*args)
|
263
|
+
when 'f', 'follow' then follow_link(collection, *args)
|
186
264
|
when 'create' then create_item
|
187
265
|
when 'update' then update_item
|
266
|
+
|
267
|
+
when 'request' then print_request; get_next_action
|
268
|
+
when 'response' then print_response; get_next_action
|
269
|
+
when 'template' then print_template; get_next_action
|
270
|
+
when 'items' then print_items
|
271
|
+
|
188
272
|
when 'b', 'basic' then request_basic_authentication(*args)
|
189
273
|
when 't', 'token' then request_token_authentication(*args)
|
274
|
+
|
190
275
|
when 'd', 'debug' then print_debug; get_next_action
|
191
276
|
when '?', 'help' then print_help; get_next_action
|
192
277
|
when 'q', 'quit' then exit
|
193
278
|
else puts 'Try again.'; get_next_action
|
194
279
|
end
|
280
|
+
rescue Interrupt
|
281
|
+
print '^C'
|
282
|
+
get_next_action
|
283
|
+
rescue EOFError
|
284
|
+
puts
|
285
|
+
exit
|
195
286
|
end
|
196
287
|
|
197
288
|
def ask_for_action
|
@@ -199,5 +290,24 @@ EOS
|
|
199
290
|
input = ask('> ') {|q| q.readline = true }.split(/\s/)
|
200
291
|
[ input.first, input[1..-1] ]
|
201
292
|
end
|
293
|
+
|
294
|
+
def ask_for_primitive(message)
|
295
|
+
value = ask(message)
|
296
|
+
case value
|
297
|
+
when 'null', 'nil' then nil
|
298
|
+
when '"null"' then 'null'
|
299
|
+
when '"nil"' then 'nil'
|
300
|
+
|
301
|
+
when 'true' then true
|
302
|
+
when 'false' then false
|
303
|
+
when '"true"' then 'true'
|
304
|
+
when '"false"' then 'false'
|
305
|
+
|
306
|
+
when /\A\d+\Z/ then Integer(value)
|
307
|
+
when /\A"\d+"\Z/ then value[1..-2]
|
308
|
+
|
309
|
+
else value
|
310
|
+
end
|
311
|
+
end
|
202
312
|
end
|
203
313
|
end
|
data/lib/leif/collection_json.rb
CHANGED
@@ -3,14 +3,7 @@ require 'forwardable'
|
|
3
3
|
|
4
4
|
module Leif
|
5
5
|
module CollectionJson
|
6
|
-
|
7
|
-
extend Forwardable
|
8
|
-
def_delegators :@data, :fetch, :has_key?
|
9
|
-
|
10
|
-
def initialize(body)
|
11
|
-
@data = body.fetch('collection')
|
12
|
-
end
|
13
|
-
|
6
|
+
module Linked
|
14
7
|
def link_href(relation)
|
15
8
|
links.find {|link| link.fetch('rel') == relation }.fetch('href')
|
16
9
|
end
|
@@ -23,10 +16,34 @@ module Leif
|
|
23
16
|
return [] unless has_key?('links')
|
24
17
|
fetch('links')
|
25
18
|
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class Collection
|
22
|
+
extend Forwardable
|
23
|
+
include Linked
|
24
|
+
|
25
|
+
def_delegators :@data, :fetch, :has_key?
|
26
|
+
|
27
|
+
def initialize(body)
|
28
|
+
@data = body.fetch('collection')
|
29
|
+
end
|
30
|
+
|
31
|
+
# def link_href(relation)
|
32
|
+
# links.find {|link| link.fetch('rel') == relation }.fetch('href')
|
33
|
+
# end
|
34
|
+
|
35
|
+
# def link_relations
|
36
|
+
# links.map {|link| link.fetch('rel') }
|
37
|
+
# end
|
38
|
+
|
39
|
+
# def links
|
40
|
+
# return [] unless has_key?('links')
|
41
|
+
# fetch('links')
|
42
|
+
# end
|
26
43
|
|
27
44
|
def items
|
28
45
|
return [] unless has_key?('items')
|
29
|
-
fetch('items')
|
46
|
+
fetch('items').map {|item| Item.new(item) }
|
30
47
|
end
|
31
48
|
|
32
49
|
def template(href = fetch('href'), method = :post)
|
@@ -40,6 +57,10 @@ module Leif
|
|
40
57
|
}
|
41
58
|
end
|
42
59
|
|
60
|
+
class Item < SimpleDelegator
|
61
|
+
include Linked
|
62
|
+
end
|
63
|
+
|
43
64
|
class Template < SimpleDelegator
|
44
65
|
attr_accessor :href, :method
|
45
66
|
|
data/lib/leif/version.rb
CHANGED
data/man/leif.1
CHANGED
@@ -16,15 +16,39 @@
|
|
16
16
|
.
|
17
17
|
.TP
|
18
18
|
\fBroot\fR
|
19
|
-
Go back to the root
|
19
|
+
Go back to the root\.
|
20
20
|
.
|
21
21
|
.TP
|
22
22
|
\fBfollow\fR \fIrel\fR
|
23
|
-
Follow link with the
|
23
|
+
Follow link with the relation \fIrel\fR on the collection or selected item\.
|
24
24
|
.
|
25
25
|
.TP
|
26
|
-
\
|
27
|
-
|
26
|
+
\fBcreate\fR
|
27
|
+
Begin editing the template to create a new item\.
|
28
|
+
.
|
29
|
+
.TP
|
30
|
+
\fBupdate\fR
|
31
|
+
Begin editing the template to update the item selected with \fBitems\fR\.
|
32
|
+
.
|
33
|
+
.TP
|
34
|
+
\fBrequest\fR
|
35
|
+
Reprint the details of the last request\.
|
36
|
+
.
|
37
|
+
.TP
|
38
|
+
\fBresponse\fR
|
39
|
+
Reprint the details of the last response\.
|
40
|
+
.
|
41
|
+
.TP
|
42
|
+
\fBtemplate\fR
|
43
|
+
Print the template from the last response\.
|
44
|
+
.
|
45
|
+
.TP
|
46
|
+
\fBitems\fR
|
47
|
+
Print each item from the last response one at a time in order to update, delete, or follow an item\'s link\.
|
48
|
+
.
|
49
|
+
.TP
|
50
|
+
\fBitem\fR
|
51
|
+
Print the selected item\.
|
28
52
|
.
|
29
53
|
.TP
|
30
54
|
\fBbasic\fR [\fIusername\fR [\fIpassword\fR]]
|
@@ -38,6 +62,14 @@ Authenticate using the given token and reload the current resource\.
|
|
38
62
|
\fBdebug\fR
|
39
63
|
Print debug output from the previous HTTP request and response\.
|
40
64
|
.
|
65
|
+
.TP
|
66
|
+
\fBhelp\fR
|
67
|
+
Print available commands\.
|
68
|
+
.
|
69
|
+
.TP
|
70
|
+
\fBquit\fR
|
71
|
+
Exit \fBleif\fR\.
|
72
|
+
.
|
41
73
|
.SH "EXAMPLES"
|
42
74
|
Follow a rel=account link:
|
43
75
|
.
|
@@ -119,4 +151,23 @@ Name (empty to submit):
|
|
119
151
|
.fi
|
120
152
|
.
|
121
153
|
.IP "" 0
|
154
|
+
.
|
155
|
+
.P
|
156
|
+
JSON primitives (null, integers, and booleans) are interpreted as such\. Use quotes for literal strings\.
|
157
|
+
.
|
158
|
+
.IP "" 4
|
159
|
+
.
|
160
|
+
.nf
|
161
|
+
|
162
|
+
> create
|
163
|
+
|
164
|
+
Name (empty to submit): private
|
165
|
+
Value: true
|
166
|
+
|
167
|
+
Name (empty to submit): name
|
168
|
+
Value: "true"
|
169
|
+
.
|
170
|
+
.fi
|
171
|
+
.
|
172
|
+
.IP "" 0
|
122
173
|
|
data/man/leif.1.html
CHANGED
@@ -90,13 +90,22 @@ programs.</p>
|
|
90
90
|
<h2 id="INTERACTIVE-COMMANDS">INTERACTIVE COMMANDS</h2>
|
91
91
|
|
92
92
|
<dl>
|
93
|
-
<dt class="flush"><code>root</code></dt><dd><p>Go back to the root
|
94
|
-
<dt><code>follow</code> <var>rel</var></dt><dd><p>Follow link with the
|
95
|
-
<dt><code>
|
93
|
+
<dt class="flush"><code>root</code></dt><dd><p>Go back to the root.</p></dd>
|
94
|
+
<dt><code>follow</code> <var>rel</var></dt><dd><p>Follow link with the relation <var>rel</var> on the collection or selected item.</p></dd>
|
95
|
+
<dt class="flush"><code>create</code></dt><dd><p>Begin editing the template to create a new item.</p></dd>
|
96
|
+
<dt class="flush"><code>update</code></dt><dd><p>Begin editing the template to update the item selected with <code>items</code>.</p></dd>
|
97
|
+
<dt class="flush"><code>request</code></dt><dd><p>Reprint the details of the last request.</p></dd>
|
98
|
+
<dt><code>response</code></dt><dd><p>Reprint the details of the last response.</p></dd>
|
99
|
+
<dt><code>template</code></dt><dd><p>Print the template from the last response.</p></dd>
|
100
|
+
<dt class="flush"><code>items</code></dt><dd><p>Print each item from the last response one at a time in order to update,
|
101
|
+
delete, or follow an item's link.</p></dd>
|
102
|
+
<dt class="flush"><code>item</code></dt><dd><p>Print the selected item.</p></dd>
|
96
103
|
<dt><code>basic</code> [<var>username</var> [<var>password</var>]]</dt><dd><p>Authenticate with HTTP Basic and reload the current resource. Will be
|
97
104
|
prompted for username and password if omitted.</p></dd>
|
98
105
|
<dt><code>token</code> <var>token</var></dt><dd><p>Authenticate using the given token and reload the current resource.</p></dd>
|
99
106
|
<dt class="flush"><code>debug</code></dt><dd><p>Print debug output from the previous HTTP request and response.</p></dd>
|
107
|
+
<dt class="flush"><code>help</code></dt><dd><p>Print available commands.</p></dd>
|
108
|
+
<dt class="flush"><code>quit</code></dt><dd><p>Exit <code>leif</code>.</p></dd>
|
100
109
|
</dl>
|
101
110
|
|
102
111
|
|
@@ -144,6 +153,18 @@ Value: towel
|
|
144
153
|
Name (empty to submit):
|
145
154
|
</code></pre>
|
146
155
|
|
156
|
+
<p>JSON primitives (null, integers, and booleans) are interpreted as such. Use
|
157
|
+
quotes for literal strings.</p>
|
158
|
+
|
159
|
+
<pre><code>> create
|
160
|
+
|
161
|
+
Name (empty to submit): private
|
162
|
+
Value: true
|
163
|
+
|
164
|
+
Name (empty to submit): name
|
165
|
+
Value: "true"
|
166
|
+
</code></pre>
|
167
|
+
|
147
168
|
|
148
169
|
<ol class='man-decor man-foot man foot'>
|
149
170
|
<li class='tl'></li>
|
data/man/leif.1.ronn
CHANGED
@@ -13,13 +13,32 @@ programs.
|
|
13
13
|
## INTERACTIVE COMMANDS
|
14
14
|
|
15
15
|
- `root`:
|
16
|
-
Go back to the root
|
16
|
+
Go back to the root.
|
17
17
|
|
18
18
|
- `follow` <rel>:
|
19
|
-
Follow link with the
|
19
|
+
Follow link with the relation <rel> on the collection or selected item.
|
20
20
|
|
21
|
-
- `
|
22
|
-
|
21
|
+
- `create`:
|
22
|
+
Begin editing the template to create a new item.
|
23
|
+
|
24
|
+
- `update`:
|
25
|
+
Begin editing the template to update the item selected with `items`.
|
26
|
+
|
27
|
+
- `request`:
|
28
|
+
Reprint the details of the last request.
|
29
|
+
|
30
|
+
- `response`:
|
31
|
+
Reprint the details of the last response.
|
32
|
+
|
33
|
+
- `template`:
|
34
|
+
Print the template from the last response.
|
35
|
+
|
36
|
+
- `items`:
|
37
|
+
Print each item from the last response one at a time in order to update,
|
38
|
+
delete, or follow an item's link.
|
39
|
+
|
40
|
+
- `item`:
|
41
|
+
Print the selected item.
|
23
42
|
|
24
43
|
- `basic` [<username> [<password>]]:
|
25
44
|
Authenticate with HTTP Basic and reload the current resource. Will be
|
@@ -31,6 +50,12 @@ programs.
|
|
31
50
|
- `debug`:
|
32
51
|
Print debug output from the previous HTTP request and response.
|
33
52
|
|
53
|
+
- `help`:
|
54
|
+
Print available commands.
|
55
|
+
|
56
|
+
- `quit`:
|
57
|
+
Exit `leif`.
|
58
|
+
|
34
59
|
## EXAMPLES
|
35
60
|
|
36
61
|
Follow a rel=account link:
|
@@ -69,3 +94,14 @@ Update an item filling the `password` field:
|
|
69
94
|
Value: towel
|
70
95
|
|
71
96
|
Name (empty to submit):
|
97
|
+
|
98
|
+
JSON primitives (null, integers, and booleans) are interpreted as such. Use
|
99
|
+
quotes for literal strings.
|
100
|
+
|
101
|
+
> create
|
102
|
+
|
103
|
+
Name (empty to submit): private
|
104
|
+
Value: true
|
105
|
+
|
106
|
+
Name (empty to submit): name
|
107
|
+
Value: "true"
|