leif 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +44 -6
- data/lib/leif/cli.rb +18 -8
- data/lib/leif/collection_json.rb +2 -17
- data/lib/leif/version.rb +1 -1
- data/man/leif.1 +33 -6
- data/man/leif.1.html +20 -7
- data/man/leif.1.ronn +23 -7
- 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: 14358331d926739fcb9ddaf54f07ce82cec9dc0e
|
4
|
+
data.tar.gz: b3f7f28d1530a0c7b3ea479fad8fb9a221b861d0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e32dd3fef31bf00c8857688e647510e625ce6f77b5875fd1307ae9d10124ae4613985a98566be1ae6c2eb89d203fc50f236544f381dc34c0da8605d517eb841f
|
7
|
+
data.tar.gz: dd73d4a03a69ab51abed53c039e2dcc68af1b196f2f584525b693b02fdc21b2057d51d3e1c0003684be4ce2d0030598f31d1912533f9c14728cdef4e26e0e641
|
data/README.md
CHANGED
@@ -14,7 +14,8 @@ $ gem install leif
|
|
14
14
|
$ leif
|
15
15
|
```
|
16
16
|
|
17
|
-
`leif` includes a man page.
|
17
|
+
`leif` includes a man page. Read it [on the web][manpage] or install
|
18
|
+
`gem-man`:
|
18
19
|
|
19
20
|
``` bash
|
20
21
|
$ gem install gem-man
|
@@ -24,20 +25,54 @@ $ gem man leif
|
|
24
25
|
## Interactive Commands
|
25
26
|
|
26
27
|
- `root`:
|
27
|
-
Go back to the root
|
28
|
+
Go back to the root.
|
28
29
|
|
29
30
|
- `follow` <u>rel</u>:
|
30
|
-
Follow link with the
|
31
|
+
Follow link with the relation <u>rel</u> on the collection or selected item.
|
31
32
|
|
32
|
-
- `
|
33
|
+
- `create`:
|
34
|
+
Begin editing the template to create a new item.
|
35
|
+
|
36
|
+
- `update`:
|
37
|
+
Begin editing the template to update the item selected with `items`.
|
38
|
+
|
39
|
+
- `request`:
|
40
|
+
Print the HTTP headers of the last request.
|
41
|
+
|
42
|
+
- `response`:
|
43
|
+
Print the HTTP headers of the last response.
|
44
|
+
|
45
|
+
- `body`:
|
46
|
+
Print the HTTP body of the last response.
|
47
|
+
|
48
|
+
- `collection`:
|
49
|
+
Print the collection from the last response.
|
50
|
+
|
51
|
+
- `template`:
|
52
|
+
Print the template from the last response.
|
53
|
+
|
54
|
+
- `items`:
|
55
|
+
Print each item from the last response one at a time in order to `update`
|
56
|
+
or `follow` an item's link.
|
57
|
+
|
58
|
+
- `item`:
|
59
|
+
Print the selected item.
|
60
|
+
|
61
|
+
- `basic` [<u>username</u> [<u>password</u>]]:
|
33
62
|
Authenticate with HTTP Basic and reload the current resource. Will be
|
34
|
-
prompted for password if
|
63
|
+
prompted for username and password if omitted.
|
35
64
|
|
36
65
|
- `token` <u>token</u>:
|
37
66
|
Authenticate using the given token and reload the current resource.
|
38
67
|
|
68
|
+
- `debug`:
|
69
|
+
Print debug output from the previous HTTP request and response.
|
70
|
+
|
39
71
|
- `help`:
|
40
|
-
Print
|
72
|
+
Print available commands.
|
73
|
+
|
74
|
+
- `quit`:
|
75
|
+
Exit `leif`.
|
41
76
|
|
42
77
|
## Example
|
43
78
|
|
@@ -73,3 +108,6 @@ sample workflow. It should give you a general overview of what's possible.
|
|
73
108
|
Value: The Guide
|
74
109
|
|
75
110
|
Name (empty to submit):
|
111
|
+
|
112
|
+
|
113
|
+
[manpage]: http://cloudapp.github.io/leif
|
data/lib/leif/cli.rb
CHANGED
@@ -55,11 +55,7 @@ module Leif
|
|
55
55
|
def print_overview
|
56
56
|
print_request
|
57
57
|
print_response
|
58
|
-
|
59
|
-
banner 'Body' do |out|
|
60
|
-
out.print JSON.pretty_generate(@response.body).lines
|
61
|
-
end
|
62
|
-
|
58
|
+
print_body
|
63
59
|
print_links collection
|
64
60
|
end
|
65
61
|
|
@@ -131,6 +127,12 @@ module Leif
|
|
131
127
|
end
|
132
128
|
end
|
133
129
|
|
130
|
+
def print_body
|
131
|
+
banner 'Body' do |out|
|
132
|
+
out.print JSON.pretty_generate(@response.body).lines
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
134
136
|
def print_links(subject)
|
135
137
|
banner 'Links' do |out|
|
136
138
|
unless subject.link_relations.empty?
|
@@ -139,6 +141,12 @@ module Leif
|
|
139
141
|
end
|
140
142
|
end
|
141
143
|
|
144
|
+
def print_collection
|
145
|
+
banner 'Collection' do |out|
|
146
|
+
out.print JSON.pretty_generate(collection).lines
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
142
150
|
def print_template(template = collection.template, label = 'Template')
|
143
151
|
banner label do |out|
|
144
152
|
out.print JSON.pretty_generate(template).lines
|
@@ -264,9 +272,11 @@ EOS
|
|
264
272
|
when 'create' then create_item
|
265
273
|
when 'update' then update_item
|
266
274
|
|
267
|
-
when 'request' then print_request;
|
268
|
-
when 'response' then print_response;
|
269
|
-
when '
|
275
|
+
when 'request' then print_request; get_next_action
|
276
|
+
when 'response' then print_response; get_next_action
|
277
|
+
when 'body' then print_body; get_next_action
|
278
|
+
when 'collection' then print_collection; get_next_action
|
279
|
+
when 'template' then print_template; get_next_action
|
270
280
|
when 'items' then print_items
|
271
281
|
|
272
282
|
when 'b', 'basic' then request_basic_authentication(*args)
|
data/lib/leif/collection_json.rb
CHANGED
@@ -18,29 +18,14 @@ module Leif
|
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
|
-
class Collection
|
21
|
+
class Collection < SimpleDelegator
|
22
22
|
extend Forwardable
|
23
23
|
include Linked
|
24
24
|
|
25
|
-
def_delegators :@data, :fetch, :has_key?
|
26
|
-
|
27
25
|
def initialize(body)
|
28
|
-
|
26
|
+
super body.fetch('collection')
|
29
27
|
end
|
30
28
|
|
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
|
43
|
-
|
44
29
|
def items
|
45
30
|
return [] unless has_key?('items')
|
46
31
|
fetch('items').map {|item| Item.new(item) }
|
data/lib/leif/version.rb
CHANGED
data/man/leif.1
CHANGED
@@ -32,11 +32,19 @@ Begin editing the template to update the item selected with \fBitems\fR\.
|
|
32
32
|
.
|
33
33
|
.TP
|
34
34
|
\fBrequest\fR
|
35
|
-
|
35
|
+
Print the HTTP headers of the last request\.
|
36
36
|
.
|
37
37
|
.TP
|
38
38
|
\fBresponse\fR
|
39
|
-
|
39
|
+
Print the HTTP headers of the last response\.
|
40
|
+
.
|
41
|
+
.TP
|
42
|
+
\fBbody\fR
|
43
|
+
Print the HTTP body of the last response\.
|
44
|
+
.
|
45
|
+
.TP
|
46
|
+
\fBcollection\fR
|
47
|
+
Print the collection from the last response\.
|
40
48
|
.
|
41
49
|
.TP
|
42
50
|
\fBtemplate\fR
|
@@ -44,7 +52,7 @@ Print the template from the last response\.
|
|
44
52
|
.
|
45
53
|
.TP
|
46
54
|
\fBitems\fR
|
47
|
-
Print each item from the last response one at a time in order to
|
55
|
+
Print each item from the last response one at a time in order to \fBupdate\fR or \fBfollow\fR an item\'s link\.
|
48
56
|
.
|
49
57
|
.TP
|
50
58
|
\fBitem\fR
|
@@ -71,7 +79,7 @@ Print available commands\.
|
|
71
79
|
Exit \fBleif\fR\.
|
72
80
|
.
|
73
81
|
.SH "EXAMPLES"
|
74
|
-
Follow a rel=account link:
|
82
|
+
Follow a rel=account link on the collection:
|
75
83
|
.
|
76
84
|
.IP "" 4
|
77
85
|
.
|
@@ -84,6 +92,23 @@ Follow a rel=account link:
|
|
84
92
|
.IP "" 0
|
85
93
|
.
|
86
94
|
.P
|
95
|
+
Select an item and follow its rel=collection link:
|
96
|
+
.
|
97
|
+
.IP "" 4
|
98
|
+
.
|
99
|
+
.nf
|
100
|
+
|
101
|
+
> items
|
102
|
+
|
103
|
+
Select this item [y,n]? y
|
104
|
+
|
105
|
+
> follow collection
|
106
|
+
.
|
107
|
+
.fi
|
108
|
+
.
|
109
|
+
.IP "" 0
|
110
|
+
.
|
111
|
+
.P
|
87
112
|
Use HTTP Basic authentication and reload the current resource:
|
88
113
|
.
|
89
114
|
.IP "" 4
|
@@ -139,9 +164,11 @@ Update an item filling the \fBpassword\fR field:
|
|
139
164
|
.
|
140
165
|
.nf
|
141
166
|
|
142
|
-
>
|
167
|
+
> items
|
143
168
|
|
144
|
-
Select this item
|
169
|
+
Select this item [y,n]? y
|
170
|
+
|
171
|
+
> update
|
145
172
|
|
146
173
|
Name (empty to submit): password
|
147
174
|
Value: towel
|
data/man/leif.1.html
CHANGED
@@ -94,11 +94,13 @@ programs.</p>
|
|
94
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
95
|
<dt class="flush"><code>create</code></dt><dd><p>Begin editing the template to create a new item.</p></dd>
|
96
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>
|
98
|
-
<dt><code>response</code></dt><dd><p>
|
97
|
+
<dt class="flush"><code>request</code></dt><dd><p>Print the HTTP headers of the last request.</p></dd>
|
98
|
+
<dt><code>response</code></dt><dd><p>Print the HTTP headers of the last response.</p></dd>
|
99
|
+
<dt class="flush"><code>body</code></dt><dd><p>Print the HTTP body of the last response.</p></dd>
|
100
|
+
<dt><code>collection</code></dt><dd><p>Print the collection from the last response.</p></dd>
|
99
101
|
<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
|
-
|
102
|
+
<dt class="flush"><code>items</code></dt><dd><p>Print each item from the last response one at a time in order to <code>update</code>
|
103
|
+
or <code>follow</code> an item's link.</p></dd>
|
102
104
|
<dt class="flush"><code>item</code></dt><dd><p>Print the selected item.</p></dd>
|
103
105
|
<dt><code>basic</code> [<var>username</var> [<var>password</var>]]</dt><dd><p>Authenticate with HTTP Basic and reload the current resource. Will be
|
104
106
|
prompted for username and password if omitted.</p></dd>
|
@@ -111,11 +113,20 @@ prompted for username and password if omitted.</p></dd>
|
|
111
113
|
|
112
114
|
<h2 id="EXAMPLES">EXAMPLES</h2>
|
113
115
|
|
114
|
-
<p>Follow a rel=account link:</p>
|
116
|
+
<p>Follow a rel=account link on the collection:</p>
|
115
117
|
|
116
118
|
<pre><code>> follow account
|
117
119
|
</code></pre>
|
118
120
|
|
121
|
+
<p>Select an item and follow its rel=collection link:</p>
|
122
|
+
|
123
|
+
<pre><code>> items
|
124
|
+
|
125
|
+
Select this item [y,n]? y
|
126
|
+
|
127
|
+
> follow collection
|
128
|
+
</code></pre>
|
129
|
+
|
119
130
|
<p>Use HTTP Basic authentication and reload the current resource:</p>
|
120
131
|
|
121
132
|
<pre><code>> basic
|
@@ -143,9 +154,11 @@ Name (empty to submit):
|
|
143
154
|
|
144
155
|
<p>Update an item filling the <code>password</code> field:</p>
|
145
156
|
|
146
|
-
<pre><code>>
|
157
|
+
<pre><code>> items
|
158
|
+
|
159
|
+
Select this item [y,n]? y
|
147
160
|
|
148
|
-
|
161
|
+
> update
|
149
162
|
|
150
163
|
Name (empty to submit): password
|
151
164
|
Value: towel
|
data/man/leif.1.ronn
CHANGED
@@ -25,17 +25,23 @@ programs.
|
|
25
25
|
Begin editing the template to update the item selected with `items`.
|
26
26
|
|
27
27
|
- `request`:
|
28
|
-
|
28
|
+
Print the HTTP headers of the last request.
|
29
29
|
|
30
30
|
- `response`:
|
31
|
-
|
31
|
+
Print the HTTP headers of the last response.
|
32
|
+
|
33
|
+
- `body`:
|
34
|
+
Print the HTTP body of the last response.
|
35
|
+
|
36
|
+
- `collection`:
|
37
|
+
Print the collection from the last response.
|
32
38
|
|
33
39
|
- `template`:
|
34
40
|
Print the template from the last response.
|
35
41
|
|
36
42
|
- `items`:
|
37
|
-
Print each item from the last response one at a time in order to update
|
38
|
-
|
43
|
+
Print each item from the last response one at a time in order to `update`
|
44
|
+
or `follow` an item's link.
|
39
45
|
|
40
46
|
- `item`:
|
41
47
|
Print the selected item.
|
@@ -58,10 +64,18 @@ programs.
|
|
58
64
|
|
59
65
|
## EXAMPLES
|
60
66
|
|
61
|
-
Follow a rel=account link:
|
67
|
+
Follow a rel=account link on the collection:
|
62
68
|
|
63
69
|
> follow account
|
64
70
|
|
71
|
+
Select an item and follow its rel=collection link:
|
72
|
+
|
73
|
+
> items
|
74
|
+
|
75
|
+
Select this item [y,n]? y
|
76
|
+
|
77
|
+
> follow collection
|
78
|
+
|
65
79
|
Use HTTP Basic authentication and reload the current resource:
|
66
80
|
|
67
81
|
> basic
|
@@ -86,9 +100,11 @@ Create a new item filling the `name` and `bookmark_url` fields:
|
|
86
100
|
|
87
101
|
Update an item filling the `password` field:
|
88
102
|
|
89
|
-
>
|
103
|
+
> items
|
90
104
|
|
91
|
-
Select this item
|
105
|
+
Select this item [y,n]? y
|
106
|
+
|
107
|
+
> update
|
92
108
|
|
93
109
|
Name (empty to submit): password
|
94
110
|
Value: towel
|