cloudapp 2.0.0.beta.12 → 2.0.0.beta.13

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.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cloudapp (2.0.0.beta.12)
4
+ cloudapp (2.0.0.beta.13)
5
5
  clipboard (~> 1.0.1)
6
6
  leadlight (~> 0.1.0)
7
7
  mime-types (~> 1.19)
@@ -7,6 +7,11 @@ require 'cloudapp/cli/prompt'
7
7
  require 'cloudapp/service'
8
8
  require 'clipboard'
9
9
 
10
+ trap('SIGINT') do
11
+ puts
12
+ exit
13
+ end
14
+
10
15
  def service
11
16
  CloudApp::Service.using_token(token)
12
17
  .on_error(&method(:service_error_handler))
@@ -19,7 +24,12 @@ end
19
24
 
20
25
  def service_error_handler representation
21
26
  if representation.collection.error
22
- print_error representation.collection.error.message
27
+ message = representation.collection.error.message
28
+ if representation.collection.error.code == 'upgrade'
29
+ message << ' '
30
+ message << representation.link('upgrade').href
31
+ end
32
+ print_error message
23
33
  end
24
34
  end
25
35
 
@@ -49,7 +59,8 @@ end
49
59
 
50
60
  def print_error message
51
61
  $stderr.puts
52
- $stderr.puts "! #{message}"
62
+ $stderr.puts
63
+ $stderr.puts "! #{wrap(message, 78, ' ')}"
53
64
  $stderr.puts
54
65
  end
55
66
 
@@ -58,6 +69,10 @@ def error message
58
69
  exit 1
59
70
  end
60
71
 
72
+ def wrap message, width, padding
73
+ message.gsub(/(.{1,#{width}})(\s+|$)/, "\\1\n#{padding}").strip
74
+ end
75
+
61
76
  def print_version
62
77
  $stdout.puts CloudApp::VERSION
63
78
  exit
@@ -65,9 +80,12 @@ end
65
80
 
66
81
  def print_help io = $stdout
67
82
  io.puts <<EOS
83
+ cloudapp, version #{CloudApp::VERSION}
84
+
68
85
  Usage:
69
- cloudapp bookmark http://getcloudapp.com
70
- cloudapp upload screenshot.png
86
+ cloudapp bookmark [--direct] [--[no-]copy] <url> [<url>...]
87
+ cloudapp upload [--direct] [--[no-]copy] <file> [<file>...]
88
+
71
89
  EOS
72
90
  end
73
91
 
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
13
13
  ## If your rubyforge_project name is different, then edit it and comment out
14
14
  ## the sub! line in the Rakefile
15
15
  s.name = 'cloudapp'
16
- s.version = '2.0.0.beta.12'
17
- s.date = '2012-12-31'
16
+ s.version = '2.0.0.beta.13'
17
+ s.date = '2013-01-06'
18
18
  s.rubyforge_project = 'cloudapp'
19
19
 
20
20
  ## Make sure your summary is short. The description may be as long
@@ -1,3 +1,3 @@
1
1
  module CloudApp
2
- VERSION = '2.0.0.beta.12'
2
+ VERSION = '2.0.0.beta.13'
3
3
  end
@@ -3,9 +3,10 @@ require 'delegate'
3
3
  module CloudApp
4
4
  module CollectionJson
5
5
  class Item < SimpleDelegator
6
- def href() fetch('href') end
7
- def rel() fetch('rel') end
8
- def message() fetch('message') end
6
+ def href() fetch('href') end
7
+ def rel() fetch('rel') end
8
+ def code() fetch('code', nil) end
9
+ def message() fetch('message', nil) end
9
10
 
10
11
  def links
11
12
  fetch('links', []).map {|link| Item.new(link) }
@@ -60,11 +60,11 @@ module CloudApp
60
60
  end
61
61
 
62
62
  def upload path
63
- template = drops_template.template.
64
- fill('file_size', FileTest.size(path))
63
+ template = drops_template.template
64
+ .fill('file_size', FileTest.size(path))
65
+ .fill('name', File.basename(path))
65
66
  post template.href, template.data do |representation|
66
67
  # TODO: Test unauthorized
67
- # TODO: Test uploading after free plan exhausted
68
68
  return unless representation.__response__.success?
69
69
  return upload_file(path, representation.template)
70
70
  end
@@ -7,10 +7,10 @@
7
7
  \fBcloudapp\fR \- all the pleasures of cloudapp in a cli
8
8
  .
9
9
  .SH "SYNOPSIS"
10
- \fBcloudapp bookmark\fR [\fB\-\-direct\fR] [\fB\-\-no\-copy\fR] \fIurl\fR [\fIurl\fR\.\.\.]
10
+ \fBcloudapp bookmark\fR [\fB\-\-direct\fR] [\fB\-\-[no\-]copy\fR] \fIurl\fR [\fIurl\fR\.\.\.]
11
11
  .
12
12
  .br
13
- \fBcloudapp upload\fR [\fB\-\-direct\fR] [\fB\-\-no\-copy\fR] \fIfile\fR [\fIfile\fR\.\.\.]
13
+ \fBcloudapp upload\fR [\fB\-\-direct\fR] [\fB\-\-[no\-]copy\fR] \fIfile\fR [\fIfile\fR\.\.\.]
14
14
  .
15
15
  .SH "DESCRIPTION"
16
16
  Upload a file or share a bookmark with CloudApp\. The drop\'s share link will be printed to standard output and copied to the system clipboard\. Account credentials are stored in \fB~/\.netrc\fR as defined by \fBftp\fR(1)\.
@@ -25,8 +25,16 @@ Upload a file or share a bookmark with CloudApp\. The drop\'s share link will be
25
25
  Print the drop\'s direct link after creation\. The direct link is suitable for use in places that expect a link to a file like an HTML IMG tag\.
26
26
  .
27
27
  .TP
28
- \fB\-\-no\-copy\fR
29
- Don\'t copy the new drop\'s link to the system clipboard\.
28
+ \fB\-h\fR, \fB\-\-help\fR
29
+ Print a help message describing cloudapp\'s usage\.
30
+ .
31
+ .TP
32
+ \fB\-\-[no\-]copy\fR
33
+ Copy the new drop\'s link to the system clipboard\. The default option is copy\.
34
+ .
35
+ .TP
36
+ \fB\-\-version\fR
37
+ Display the version of cloudapp\.
30
38
  .
31
39
  .SH "EXAMPLE"
32
40
  Upload a file:
@@ -36,7 +44,7 @@ Upload a file:
36
44
  .nf
37
45
 
38
46
  $ cloudapp upload screenshot\.png
39
- http://cl\.ly/abc123
47
+ Uploading screenshot\.png\.\.\. http://cl\.ly/image/3U2U2f3B1O0x
40
48
  .
41
49
  .fi
42
50
  .
@@ -50,9 +58,9 @@ Upload several files:
50
58
  .nf
51
59
 
52
60
  $ cloudapp upload *\.png
53
- http://cl\.ly/abc123
54
- http://cl\.ly/def456
55
- http://cl\.ly/ghi789
61
+ Uploading screenshot\-1\.png\.\.\. http://cl\.ly/image/1E1F1k3Q3919
62
+ Uploading screenshot\-2\.png\.\.\. http://cl\.ly/image/3P1s3p0c3545
63
+ Uploading screenshot\-3\.png\.\.\. http://cl\.ly/image/0E3k0h353X0w
56
64
  .
57
65
  .fi
58
66
  .
@@ -66,7 +74,7 @@ Bookmark a URL:
66
74
  .nf
67
75
 
68
76
  $ cloudapp bookmark http://getcloudapp\.com
69
- http://cl\.ly/abc123
77
+ Bookmarking http://getcloudapp\.com\.\.\. http://cl\.ly/352T3Z2G0G2S
70
78
  .
71
79
  .fi
72
80
  .
@@ -80,7 +88,7 @@ Copy the drop\'s direct link:
80
88
  .nf
81
89
 
82
90
  $ cloudapp upload \-\-direct screenshot\.png
83
- http://cl\.ly/abc123/screenshot\.png
91
+ Uploading screenshot\.png\.\.\. http://cl\.ly/image/3U2U2f3B1O0x/screenshot\.png
84
92
  .
85
93
  .fi
86
94
  .
@@ -94,7 +102,7 @@ Print but don\'t copy the drop\'s link:
94
102
  .nf
95
103
 
96
104
  $ cloudapp upload \-\-no\-copy screenshot\.png
97
- http://cl\.ly/abc123
105
+ Uploading screenshot\.png\.\.\. http://cl\.ly/image/3U2U2f3B1O0x
98
106
  .
99
107
  .fi
100
108
  .
@@ -79,8 +79,8 @@
79
79
 
80
80
  <h2 id="SYNOPSIS">SYNOPSIS</h2>
81
81
 
82
- <p><code>cloudapp bookmark</code> [<code>--direct</code>] [<code>--no-copy</code>] <var>url</var> [<var>url</var>...]<br />
83
- <code>cloudapp upload</code> [<code>--direct</code>] [<code>--no-copy</code>] <var>file</var> [<var>file</var>...]</p>
82
+ <p><code>cloudapp bookmark</code> [<code>--direct</code>] [<code>--[no-]copy</code>] <var>url</var> [<var>url</var>...]<br />
83
+ <code>cloudapp upload</code> [<code>--direct</code>] [<code>--[no-]copy</code>] <var>file</var> [<var>file</var>...]</p>
84
84
 
85
85
  <h2 id="DESCRIPTION">DESCRIPTION</h2>
86
86
 
@@ -95,7 +95,10 @@ credentials are stored in <code>~/.netrc</code> as defined by <code>ftp</code>(1
95
95
  <dl>
96
96
  <dt><code>-d</code>, <code>--direct</code></dt><dd><p>Print the drop's direct link after creation. The direct link is suitable for
97
97
  use in places that expect a link to a file like an HTML IMG tag.</p></dd>
98
- <dt><code>--no-copy</code></dt><dd><p>Don't copy the new drop's link to the system clipboard.</p></dd>
98
+ <dt><code>-h</code>, <code>--help</code></dt><dd><p>Print a help message describing cloudapp's usage.</p></dd>
99
+ <dt><code>--[no-]copy</code></dt><dd><p>Copy the new drop's link to the system clipboard. The default option is
100
+ copy.</p></dd>
101
+ <dt><code>--version</code></dt><dd><p>Display the version of cloudapp.</p></dd>
99
102
  </dl>
100
103
 
101
104
 
@@ -104,33 +107,33 @@ use in places that expect a link to a file like an HTML IMG tag.</p></dd>
104
107
  <p>Upload a file:</p>
105
108
 
106
109
  <pre><code>$ cloudapp upload screenshot.png
107
- http://cl.ly/abc123
110
+ Uploading screenshot.png... http://cl.ly/image/3U2U2f3B1O0x
108
111
  </code></pre>
109
112
 
110
113
  <p>Upload several files:</p>
111
114
 
112
115
  <pre><code>$ cloudapp upload *.png
113
- http://cl.ly/abc123
114
- http://cl.ly/def456
115
- http://cl.ly/ghi789
116
+ Uploading screenshot-1.png... http://cl.ly/image/1E1F1k3Q3919
117
+ Uploading screenshot-2.png... http://cl.ly/image/3P1s3p0c3545
118
+ Uploading screenshot-3.png... http://cl.ly/image/0E3k0h353X0w
116
119
  </code></pre>
117
120
 
118
121
  <p>Bookmark a URL:</p>
119
122
 
120
123
  <pre><code>$ cloudapp bookmark http://getcloudapp.com
121
- http://cl.ly/abc123
124
+ Bookmarking http://getcloudapp.com... http://cl.ly/352T3Z2G0G2S
122
125
  </code></pre>
123
126
 
124
127
  <p>Copy the drop's direct link:</p>
125
128
 
126
129
  <pre><code>$ cloudapp upload --direct screenshot.png
127
- http://cl.ly/abc123/screenshot.png
130
+ Uploading screenshot.png... http://cl.ly/image/3U2U2f3B1O0x/screenshot.png
128
131
  </code></pre>
129
132
 
130
133
  <p>Print but don't copy the drop's link:</p>
131
134
 
132
135
  <pre><code>$ cloudapp upload --no-copy screenshot.png
133
- http://cl.ly/abc123
136
+ Uploading screenshot.png... http://cl.ly/image/3U2U2f3B1O0x
134
137
  </code></pre>
135
138
 
136
139
 
@@ -3,8 +3,8 @@ cloudapp(1) -- all the pleasures of cloudapp in a cli
3
3
 
4
4
  ## SYNOPSIS
5
5
 
6
- `cloudapp bookmark` [`--direct`] [`--no-copy`] <url> [<url>...]<br>
7
- `cloudapp upload` [`--direct`] [`--no-copy`] <file> [<file>...]
6
+ `cloudapp bookmark` [`--direct`] [`--[no-]copy`] <url> [<url>...]<br>
7
+ `cloudapp upload` [`--direct`] [`--[no-]copy`] <file> [<file>...]
8
8
 
9
9
  ## DESCRIPTION
10
10
 
@@ -20,34 +20,41 @@ credentials are stored in `~/.netrc` as defined by `ftp`(1).
20
20
  Print the drop's direct link after creation. The direct link is suitable for
21
21
  use in places that expect a link to a file like an HTML IMG tag.
22
22
 
23
- - `--no-copy`:
24
- Don't copy the new drop's link to the system clipboard.
23
+ - `-h`, `--help`:
24
+ Print a help message describing cloudapp's usage.
25
+
26
+ - `--[no-]copy`:
27
+ Copy the new drop's link to the system clipboard. The default option is
28
+ copy.
29
+
30
+ - `--version`:
31
+ Display the version of cloudapp.
25
32
 
26
33
  ## EXAMPLE
27
34
 
28
35
  Upload a file:
29
36
 
30
37
  $ cloudapp upload screenshot.png
31
- http://cl.ly/abc123
38
+ Uploading screenshot.png... http://cl.ly/image/3U2U2f3B1O0x
32
39
 
33
40
  Upload several files:
34
41
 
35
42
  $ cloudapp upload *.png
36
- http://cl.ly/abc123
37
- http://cl.ly/def456
38
- http://cl.ly/ghi789
43
+ Uploading screenshot-1.png... http://cl.ly/image/1E1F1k3Q3919
44
+ Uploading screenshot-2.png... http://cl.ly/image/3P1s3p0c3545
45
+ Uploading screenshot-3.png... http://cl.ly/image/0E3k0h353X0w
39
46
 
40
47
  Bookmark a URL:
41
48
 
42
49
  $ cloudapp bookmark http://getcloudapp.com
43
- http://cl.ly/abc123
50
+ Bookmarking http://getcloudapp.com... http://cl.ly/352T3Z2G0G2S
44
51
 
45
52
  Copy the drop's direct link:
46
53
 
47
54
  $ cloudapp upload --direct screenshot.png
48
- http://cl.ly/abc123/screenshot.png
55
+ Uploading screenshot.png... http://cl.ly/image/3U2U2f3B1O0x/screenshot.png
49
56
 
50
57
  Print but don't copy the drop's link:
51
58
 
52
59
  $ cloudapp upload --no-copy screenshot.png
53
- http://cl.ly/abc123
60
+ Uploading screenshot.png... http://cl.ly/image/3U2U2f3B1O0x
@@ -14,9 +14,24 @@ describe CloudApp::CollectionJson::Item do
14
14
  its(:rel) { should eq 'relation' }
15
15
  end
16
16
 
17
+ describe '#code' do
18
+ let(:data) {{ 'code' => 'ID10T' }}
19
+ its(:code) { should eq 'ID10T' }
20
+
21
+ context 'without a code' do
22
+ let(:data) { {} }
23
+ its(:code) { should be_nil }
24
+ end
25
+ end
26
+
17
27
  describe '#message' do
18
28
  let(:data) {{ 'message' => 'error!' }}
19
29
  its(:message) { should eq 'error!' }
30
+
31
+ context 'without a message' do
32
+ let(:data) { {} }
33
+ its(:message) { should be_nil }
34
+ end
20
35
  end
21
36
 
22
37
  describe '#links' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudapp
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta.12
4
+ version: 2.0.0.beta.13
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-31 00:00:00.000000000 Z
12
+ date: 2013-01-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: clipboard
@@ -191,7 +191,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
191
191
  version: '0'
192
192
  segments:
193
193
  - 0
194
- hash: -3445886834563878524
194
+ hash: -547801259757017894
195
195
  required_rubygems_version: !ruby/object:Gem::Requirement
196
196
  none: false
197
197
  requirements: