rubiojr-iorb 0.3.3 → 0.3.96
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +6 -0
- data/Manifest.txt +10 -0
- data/README.txt +33 -7
- data/Rakefile +6 -2
- data/bin/iorb +12 -201
- data/dropio-ruby-api-examples/add_files.rb +36 -0
- data/dropio-ruby-api-examples/destroy_drop.rb +27 -0
- data/dropio-ruby-api-examples/list_files.rb +33 -0
- data/iorb.gemspec +6 -9
- data/lib/iorb.rb +19 -1
- data/lib/iorb/commands/add.rb +45 -0
- data/lib/iorb/commands/create.rb +32 -0
- data/lib/iorb/commands/destroy.rb +83 -0
- data/lib/iorb/commands/info.rb +23 -0
- data/lib/iorb/commands/list.rb +42 -0
- data/lib/iorb/commands/mydrops.rb +8 -0
- metadata +13 -14
data/History.txt
CHANGED
data/Manifest.txt
CHANGED
@@ -2,10 +2,20 @@ History.txt
|
|
2
2
|
Manifest.txt
|
3
3
|
README.txt
|
4
4
|
Rakefile
|
5
|
+
THANKS.txt
|
5
6
|
bin/iorb
|
7
|
+
dropio-ruby-api-examples/add_files.rb
|
6
8
|
dropio-ruby-api-examples/basic_client.rb
|
9
|
+
dropio-ruby-api-examples/destroy_drop.rb
|
7
10
|
dropio-ruby-api-examples/find_drop.rb
|
8
11
|
dropio-ruby-api-examples/find_my_drop.rb
|
12
|
+
dropio-ruby-api-examples/list_files.rb
|
9
13
|
iorb.gemspec
|
10
14
|
lib/iorb.rb
|
15
|
+
lib/iorb/commands/add.rb
|
16
|
+
lib/iorb/commands/create.rb
|
17
|
+
lib/iorb/commands/destroy.rb
|
18
|
+
lib/iorb/commands/info.rb
|
19
|
+
lib/iorb/commands/list.rb
|
20
|
+
lib/iorb/commands/mydrops.rb
|
11
21
|
scripts/newrelease
|
data/README.txt
CHANGED
@@ -14,22 +14,48 @@ You will need a drop.io API key. Get it at http://api.drop.io
|
|
14
14
|
|
15
15
|
== SYNOPSIS:
|
16
16
|
|
17
|
-
|
18
|
-
iorb
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
17
|
+
=== Creating drops
|
18
|
+
iorb create [drop_name]
|
19
|
+
|
20
|
+
=== Adding assets to a drop
|
21
|
+
* Add files to an existing drop
|
22
|
+
iorb add --drop-name <drop_name> file1 file2 ...
|
23
|
+
|
24
|
+
* create a random drop and add files to it
|
25
|
+
iorb add file1 file2 ...
|
26
|
+
|
27
|
+
=== Listing assets
|
28
|
+
* list all assets from a drop
|
29
|
+
iorb list <drop_name>
|
30
|
+
* list assets matching regex
|
31
|
+
iorb list <drop_name> --filter '-(mov|mp3)'
|
32
|
+
* list assets matching type
|
33
|
+
iorb list <drop_name> --filter type:audio
|
34
|
+
|
35
|
+
=== Destroying drops/assets
|
36
|
+
* destroy a drop
|
37
|
+
iorb destroy <drop_name>
|
38
|
+
* destroy all assets matching pattern from drop 'test_drop'
|
39
|
+
iorb destroy test_drop:/-(mp3|avi)/
|
40
|
+
* destroy all assets from test_drop
|
41
|
+
iorb destroy test_drop:/.*/
|
23
42
|
|
24
43
|
== REQUIREMENTS:
|
25
44
|
|
26
45
|
* dropio ruby library from Jake Good:
|
27
46
|
http://github.com/whoisjake/dropio_api_ruby/tree/master
|
47
|
+
* highline from James Edward Gray II:
|
48
|
+
http://rubyforge.org/projects/highline
|
49
|
+
* commander from TJ Holowaych:
|
50
|
+
http://github.com/visionmedia/commander
|
28
51
|
|
29
52
|
== INSTALL:
|
30
53
|
|
31
54
|
1. gem source -a http://gems.github.com
|
32
|
-
2. gem
|
55
|
+
2. gem source -a http://iorb.netcorex.org (stable release)
|
56
|
+
OR
|
57
|
+
gem source -a http://dev.netcorex.org (unstable release)
|
58
|
+
3. gem install iorb
|
33
59
|
|
34
60
|
== LICENSE:
|
35
61
|
|
data/Rakefile
CHANGED
@@ -12,7 +12,11 @@ Hoe.new('iorb', IORB::VERSION) do |p|
|
|
12
12
|
p.url = "http://github.com/rubiojr/iorb"
|
13
13
|
p.remote_rdoc_dir = '' # Release to root
|
14
14
|
p.extra_deps << [ "dropio",">= 0.9" ]
|
15
|
-
p.extra_deps << [ "
|
16
|
-
p.extra_deps << [ "choice",">= 0.1" ]
|
15
|
+
p.extra_deps << [ "visionmedia-commander",">= 3.2" ]
|
17
16
|
p.developer('Sergio Rubio', 'sergio@rubio.name')
|
18
17
|
end
|
18
|
+
|
19
|
+
task :publish_dev_gem do
|
20
|
+
`scp pkg/*.gem dev.netcorex.org:/srv/www/dev.netcorex.org/gems/`
|
21
|
+
`ssh dev.netcorex.org /opt/ruby/bin/gem generate_index -d /srv/www/dev.netcorex.org/`
|
22
|
+
end
|
data/bin/iorb
CHANGED
@@ -1,219 +1,30 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
# API Docs http://groups.google.com/group/dropio-api/web/full-api-documentation
|
3
|
-
require 'rubygems'
|
4
|
-
require 'dropio'
|
5
|
-
require 'choice'
|
6
2
|
begin
|
7
3
|
require "#{File.join(File.dirname(__FILE__), '../lib/iorb.rb')}"
|
8
4
|
rescue LoadError
|
9
5
|
require 'iorb'
|
10
6
|
end
|
11
|
-
include Dropio
|
12
7
|
|
8
|
+
include Dropio
|
13
9
|
IORB::Config.check
|
14
|
-
|
15
|
-
Choice.options do
|
16
|
-
header ''
|
17
|
-
header 'Available options:'
|
18
|
-
|
19
|
-
option :version do
|
20
|
-
long '--version'
|
21
|
-
short '-v'
|
22
|
-
desc 'Show iorb version'
|
23
|
-
action do
|
24
|
-
puts "iorb version #{IORB::VERSION}"
|
25
|
-
exit
|
26
|
-
end
|
27
|
-
end
|
28
|
-
option :no_save do
|
29
|
-
long '--no-save'
|
30
|
-
end
|
31
|
-
|
32
|
-
option :find_drop do
|
33
|
-
short '-f'
|
34
|
-
long '--find=NAME'
|
35
|
-
desc 'Find a drop matching NAME'
|
36
|
-
end
|
37
|
-
|
38
|
-
option :list do
|
39
|
-
short '-l'
|
40
|
-
long '--list=NAME'
|
41
|
-
desc 'List assets in drop NAME'
|
42
|
-
end
|
43
|
-
|
44
|
-
option :create do
|
45
|
-
short '-c'
|
46
|
-
long '--create=[NAME]'
|
47
|
-
desc 'Create a drop'
|
48
|
-
end
|
49
|
-
|
50
|
-
option :expiration_length do
|
51
|
-
short '-e'
|
52
|
-
long '--expiration-length LENGTH'
|
53
|
-
desc 'Drop expiration length. (1 week by default)'
|
54
|
-
default '1_WEEK_FROM_NOW'
|
55
|
-
end
|
56
|
-
|
57
|
-
option :mydrops do
|
58
|
-
long '--mydrops'
|
59
|
-
desc 'Print the drops I have created'
|
60
|
-
end
|
61
|
-
|
62
|
-
option :save_details do
|
63
|
-
long '--save-details'
|
64
|
-
short '-s'
|
65
|
-
desc 'Save drop details (Needed to admin the drop later)'
|
66
|
-
end
|
67
|
-
|
68
|
-
option :destroy do
|
69
|
-
long '--destroy NAME'
|
70
|
-
short '-d'
|
71
|
-
desc 'Destroy a drop (needs to be defined in the config file)'
|
72
|
-
end
|
73
|
-
|
74
|
-
option :drop_name do
|
75
|
-
long '--drop-name NAME'
|
76
|
-
desc 'Drop name'
|
77
|
-
end
|
78
|
-
|
79
|
-
option :add_files do
|
80
|
-
long '--add-files *FILES'
|
81
|
-
desc 'Add files to a drop (if --drop-name not specified, it will create a new drop)'
|
82
|
-
end
|
83
|
-
|
84
|
-
end
|
85
|
-
|
86
10
|
if IORB::Config.api_key.nil?
|
87
11
|
$stderr.puts "Invalid API key in #{API_KEY_FILE}"
|
88
12
|
exit
|
89
13
|
end
|
90
|
-
|
91
14
|
Dropio.api_key = IORB::Config.api_key
|
92
15
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
puts "\nDrop created.\n\n"
|
16
|
+
require 'commander'
|
17
|
+
Dir["#{File.dirname(__FILE__)}" + '/../lib/iorb/commands/*.rb'].each do |f|
|
18
|
+
require f
|
19
|
+
end
|
20
|
+
|
21
|
+
program :name, 'iorb'
|
22
|
+
program :version, IORB::VERSION
|
23
|
+
program :description, 'drop.io command line interface'
|
24
|
+
default_command :help
|
25
|
+
|
26
|
+
# API Docs http://groups.google.com/group/dropio-api/web/full-api-documentation
|
106
27
|
|
107
|
-
details = IORB::DropDetails.build_from(drop)
|
108
|
-
details.print
|
109
|
-
details.save if not Choice.choices.no_save
|
110
28
|
|
111
|
-
if PLATFORM =~ /.*darwin*/
|
112
|
-
IORB::Util::MacClipboard.write "http://drop.io/#{drop.name}"
|
113
|
-
puts "\nPublic URL copied to the clipboard."
|
114
|
-
end
|
115
|
-
elsif Choice.choices.destroy
|
116
|
-
begin
|
117
|
-
drop_name = Choice.choices.destroy
|
118
|
-
drop_details = IORB::DropManager.find(drop_name)
|
119
|
-
if drop_details.nil? or drop_details['admin-token'].nil?
|
120
|
-
$stderr.puts "Drop details or admin-token not found in #{IORB::Config.file}"
|
121
|
-
exit 1
|
122
|
-
end
|
123
|
-
token = nil
|
124
|
-
token = drop_details['admin-token']
|
125
|
-
drop = Drop.find(drop_name, token)
|
126
|
-
drop.destroy
|
127
|
-
drop_details['destroyed'] = true
|
128
|
-
drop_details.save
|
129
|
-
rescue Dropio::MissingResourceError
|
130
|
-
$stderr.puts "Drop '#{Choice.choices.destroy}' does not exist"
|
131
|
-
rescue Dropio::AuthorizationError
|
132
|
-
$stderr.puts "Authorization error. This drop is private or the admin token is invalid."
|
133
|
-
end
|
134
29
|
|
135
|
-
elsif Choice.choices.find_drop
|
136
|
-
begin
|
137
|
-
drop_name = Choice.choices.find_drop
|
138
|
-
drop_details = IORB::DropManager.find(drop_name)
|
139
|
-
token = nil
|
140
|
-
token = drop_details['admin-token'] if drop_details
|
141
|
-
drop = Drop.find(drop_name, token)
|
142
|
-
new_details = IORB::DropDetails.build_from(drop)
|
143
|
-
new_details.print
|
144
|
-
if Choice.choices.save_details
|
145
|
-
puts "\nSaving drop details."
|
146
|
-
new_details.save
|
147
|
-
end
|
148
|
-
rescue Dropio::MissingResourceError
|
149
|
-
$stderr.puts "Drop '#{Choice.choices.find_drop}' does not exist"
|
150
|
-
rescue Dropio::AuthorizationError
|
151
|
-
$stderr.puts "Authorization error. This drop is private or the admin token is invalid."
|
152
|
-
end
|
153
|
-
elsif Choice.choices.add_files
|
154
|
-
drop_name = Choice.choices.drop_name
|
155
|
-
if drop_name
|
156
|
-
drop_details = IORB::DropManager.find(drop_name)
|
157
|
-
drop = nil
|
158
|
-
# Add files as a guest
|
159
|
-
if drop_details.nil? or drop_details['admin-token'].nil?
|
160
|
-
drop = Drop.find(drop_name)
|
161
|
-
else
|
162
|
-
drop = Drop.find(drop_name, drop_details['admin-token'])
|
163
|
-
end
|
164
|
-
Choice.choices.add_files.each do |f|
|
165
|
-
if File.exist?(f)
|
166
|
-
drop.add_file(f)
|
167
|
-
puts "File #{f} added."
|
168
|
-
else
|
169
|
-
$stderr.puts "File #{f} not found, skipping."
|
170
|
-
end
|
171
|
-
end
|
172
|
-
else
|
173
|
-
options = {
|
174
|
-
:expiration_length => Choice.choices.expiration_length,
|
175
|
-
:guests_can_add => false,
|
176
|
-
:guests_can_comment => false
|
177
|
-
}
|
178
|
-
drop = Drop.create(options)
|
179
|
-
IORB::DropDetails.build_from(drop).save if not Choice.choices.no_save
|
180
|
-
puts "\nDrop #{drop.name} created.\n\n"
|
181
30
|
|
182
|
-
Choice.choices.add_files.each do |f|
|
183
|
-
if File.exist?(f)
|
184
|
-
drop.add_file(f)
|
185
|
-
puts "File #{f} added."
|
186
|
-
else
|
187
|
-
$stderr.puts "File #{f} not found, skipping."
|
188
|
-
end
|
189
|
-
end
|
190
|
-
end
|
191
|
-
elsif Choice.choices.mydrops
|
192
|
-
IORB::DropManager.each do |d|
|
193
|
-
puts d['name']
|
194
|
-
end
|
195
|
-
elsif Choice.choices.list
|
196
|
-
drop_name = Choice.choices.list
|
197
|
-
drop_details = IORB::DropManager.find(drop_name)
|
198
|
-
token = nil
|
199
|
-
token = drop_details['admin-token'] if drop_details
|
200
|
-
begin
|
201
|
-
drop = Drop.find(drop_name, token)
|
202
|
-
drop.assets.each do |a|
|
203
|
-
puts "Asset name: #{a.name}"
|
204
|
-
puts "Title: #{a.title}"
|
205
|
-
puts "Created at: #{a.created_at}"
|
206
|
-
puts "Type: #{a.type}"
|
207
|
-
puts "File Size: #{a.filesize}"
|
208
|
-
puts "URL: http://drop.io/#{drop_name}/asset/#{a.name}"
|
209
|
-
puts "\n"
|
210
|
-
end
|
211
|
-
rescue Dropio::MissingResourceError
|
212
|
-
$stderr.puts "Drop '#{drop_name}' does not exist"
|
213
|
-
rescue Dropio::AuthorizationError
|
214
|
-
$stderr.puts "Authorization error. This drop is private or the admin token is invalid."
|
215
|
-
end
|
216
|
-
else
|
217
|
-
$stderr.puts "\nInvalid command. Either --add, --find or --list are mandatory.\n\n"
|
218
|
-
puts Choice.help
|
219
|
-
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'rubygems'
|
3
|
+
require 'dropio'
|
4
|
+
include Dropio
|
5
|
+
|
6
|
+
#
|
7
|
+
# Create a new drop and add files to it
|
8
|
+
#
|
9
|
+
|
10
|
+
#
|
11
|
+
# get your API key @ http://api.drop.io
|
12
|
+
#
|
13
|
+
Dropio.api_key = 'your_api_key_here'
|
14
|
+
admin_token = '0000000000'
|
15
|
+
drop_name = 'mydropname'
|
16
|
+
|
17
|
+
begin
|
18
|
+
|
19
|
+
#
|
20
|
+
# Drop can be named, or unnamed. The drop name
|
21
|
+
# will be randomly generated by drop.io if :name option
|
22
|
+
# is not specified
|
23
|
+
#
|
24
|
+
drop = Drop.create(
|
25
|
+
{ :expiration_length => '1_DAY_FROM_NOW',
|
26
|
+
:guests_can_add => false,
|
27
|
+
:guests_can_comment => false,
|
28
|
+
}
|
29
|
+
)
|
30
|
+
drop.add_file('file_somewhere')
|
31
|
+
|
32
|
+
rescue Dropio::MissingResourceError
|
33
|
+
puts 'Drop does not exist.'
|
34
|
+
rescue Dropio::AuthorizationError # no permissions to read the drop
|
35
|
+
puts 'Not authorized.'
|
36
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'rubygems'
|
3
|
+
require 'dropio'
|
4
|
+
include Dropio
|
5
|
+
|
6
|
+
#
|
7
|
+
# Find a drop you have created (got admin token)
|
8
|
+
# and destroy it
|
9
|
+
#
|
10
|
+
|
11
|
+
#
|
12
|
+
# get your API key @ http://api.drop.io
|
13
|
+
#
|
14
|
+
Dropio.api_key = 'your_api_key_here'
|
15
|
+
admin_token = '0000000000'
|
16
|
+
drop_name = 'mydropname'
|
17
|
+
|
18
|
+
begin
|
19
|
+
|
20
|
+
drop = Drop.find(drop_name, admin_token)
|
21
|
+
drop.destroy # that's all!
|
22
|
+
|
23
|
+
rescue Dropio::MissingResourceError
|
24
|
+
puts 'Drop does not exist.'
|
25
|
+
rescue Dropio::AuthorizationError # no permissions to read the drop
|
26
|
+
puts 'Not authorized.'
|
27
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'rubygems'
|
3
|
+
require 'dropio'
|
4
|
+
include Dropio
|
5
|
+
|
6
|
+
#
|
7
|
+
# List assets from a drop
|
8
|
+
#
|
9
|
+
|
10
|
+
#
|
11
|
+
# get your API key @ http://api.drop.io
|
12
|
+
#
|
13
|
+
Dropio.api_key = 'your_api_key_here'
|
14
|
+
admin_token = '0000000000'
|
15
|
+
drop_name = 'a_drop_name'
|
16
|
+
|
17
|
+
begin
|
18
|
+
|
19
|
+
#
|
20
|
+
# admin_token is optional.
|
21
|
+
# if the drop is public you don't need it
|
22
|
+
#
|
23
|
+
# drop = Drop.find(drop_name)
|
24
|
+
drop = Drop.find(drop_name, admin_token)
|
25
|
+
drop.assets.each do |a|
|
26
|
+
puts "Asset found: #{a.name}"
|
27
|
+
end
|
28
|
+
|
29
|
+
rescue Dropio::MissingResourceError
|
30
|
+
puts 'Drop does not exist.'
|
31
|
+
rescue Dropio::AuthorizationError # no permissions to read the drop
|
32
|
+
puts 'Not authorized.'
|
33
|
+
end
|
data/iorb.gemspec
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = %q{iorb}
|
3
|
-
s.version = "0.3.
|
3
|
+
s.version = "0.3.96"
|
4
4
|
|
5
5
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
6
6
|
s.authors = ["Sergio RubioSergio Rubio"]
|
7
|
-
s.date = %q{2009-04-
|
7
|
+
s.date = %q{2009-04-23}
|
8
8
|
s.default_executable = %q{iorb}
|
9
9
|
s.description = %q{drop.io CLI interface}
|
10
10
|
s.email = %q{sergio@rubio.namesergio@rubio.name}
|
11
11
|
s.executables = ["iorb"]
|
12
12
|
s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.txt"]
|
13
|
-
s.files = ["History.txt", "Manifest.txt", "README.txt", "Rakefile", "bin/iorb", "dropio-ruby-api-examples/basic_client.rb", "dropio-ruby-api-examples/find_drop.rb", "dropio-ruby-api-examples/find_my_drop.rb", "iorb.gemspec", "lib/iorb.rb", "scripts/newrelease"]
|
13
|
+
s.files = ["History.txt", "Manifest.txt", "README.txt", "Rakefile", "bin/iorb", "dropio-ruby-api-examples/add_files.rb", "dropio-ruby-api-examples/basic_client.rb", "dropio-ruby-api-examples/destroy_drop.rb", "dropio-ruby-api-examples/find_drop.rb", "dropio-ruby-api-examples/find_my_drop.rb", "dropio-ruby-api-examples/list_files.rb", "iorb.gemspec", "lib/iorb.rb", "lib/iorb/commands/add.rb", "lib/iorb/commands/create.rb", "lib/iorb/commands/destroy.rb", "lib/iorb/commands/info.rb", "lib/iorb/commands/list.rb", "lib/iorb/commands/mydrops.rb", "scripts/newrelease"]
|
14
14
|
s.has_rdoc = true
|
15
15
|
s.homepage = %q{http://github.com/rubiojr/iorb}
|
16
16
|
s.rdoc_options = ["--main", "README.txt"]
|
@@ -25,19 +25,16 @@ Gem::Specification.new do |s|
|
|
25
25
|
|
26
26
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
27
27
|
s.add_runtime_dependency(%q<dropio>, [">= 0.9"])
|
28
|
-
s.add_runtime_dependency(%q<
|
29
|
-
s.add_runtime_dependency(%q<choice>, [">= 0.1"])
|
28
|
+
s.add_runtime_dependency(%q<visionmedia-commander>, [">= 3.2"])
|
30
29
|
s.add_development_dependency(%q<hoe>, [">= 1.12.1"])
|
31
30
|
else
|
32
31
|
s.add_dependency(%q<dropio>, [">= 0.9"])
|
33
|
-
s.add_dependency(%q<
|
34
|
-
s.add_dependency(%q<choice>, [">= 0.1"])
|
32
|
+
s.add_dependency(%q<visionmedia-commander>, [">= 3.2"])
|
35
33
|
s.add_dependency(%q<hoe>, [">= 1.12.1"])
|
36
34
|
end
|
37
35
|
else
|
38
36
|
s.add_dependency(%q<dropio>, [">= 0.9"])
|
39
|
-
s.add_dependency(%q<
|
40
|
-
s.add_dependency(%q<choice>, [">= 0.1"])
|
37
|
+
s.add_dependency(%q<visionmedia-commander>, [">= 3.2"])
|
41
38
|
s.add_dependency(%q<hoe>, [">= 1.12.1"])
|
42
39
|
end
|
43
40
|
end
|
data/lib/iorb.rb
CHANGED
@@ -1,7 +1,21 @@
|
|
1
|
+
require 'rubygems'
|
1
2
|
require 'highline/import'
|
3
|
+
require 'dropio'
|
4
|
+
require 'json'
|
5
|
+
require 'yaml'
|
2
6
|
|
7
|
+
class Dropio::Asset
|
8
|
+
def print_details
|
9
|
+
puts "Asset name: #{self.name}"
|
10
|
+
puts "Title: #{self.title}"
|
11
|
+
puts "Created at: #{self.created_at}"
|
12
|
+
puts "Type: #{self.type}"
|
13
|
+
puts "File Size: #{self.filesize}"
|
14
|
+
puts "URL: http://drop.io/#{self.drop.name}/asset/#{self.name}"
|
15
|
+
end
|
16
|
+
end
|
3
17
|
module IORB
|
4
|
-
VERSION = "0.3.
|
18
|
+
VERSION = "0.3.96"
|
5
19
|
module Util
|
6
20
|
# Code stolen from:
|
7
21
|
# http://evan.tiggerpalace.com/2008/04/26/pastie-from-the-mac-clipboard/
|
@@ -64,6 +78,10 @@ module IORB
|
|
64
78
|
|
65
79
|
class DropDetails < Hash
|
66
80
|
|
81
|
+
def method_missing(id, *args)
|
82
|
+
self[id.to_s.gsub('_', '-')] || super
|
83
|
+
end
|
84
|
+
|
67
85
|
def self.build_from(drop)
|
68
86
|
details = DropDetails.new
|
69
87
|
if drop.is_a? Dropio::Drop
|
@@ -0,0 +1,45 @@
|
|
1
|
+
command :add do |c|
|
2
|
+
c.description = 'Add files to a drop'
|
3
|
+
c.option '--drop-name NAME', String, 'The target drop name'
|
4
|
+
c.when_called do |args, options|
|
5
|
+
if options.drop_name.nil?
|
6
|
+
# add files to a new, unnamed drop
|
7
|
+
drop_options = {
|
8
|
+
:expiration_length => '1_WEEK_FROM_NOW'
|
9
|
+
}
|
10
|
+
print "Creating a new drop... "
|
11
|
+
drop = Drop.create(drop_options)
|
12
|
+
puts 'done'
|
13
|
+
details = IORB::DropDetails.build_from(drop)
|
14
|
+
drop_name = drop.name
|
15
|
+
details.print
|
16
|
+
details.save
|
17
|
+
puts
|
18
|
+
else
|
19
|
+
# let's see if the manager knows the drop
|
20
|
+
drop_name = options.drop_name
|
21
|
+
details = IORB::DropManager.find(drop_name)
|
22
|
+
end
|
23
|
+
begin
|
24
|
+
if details.nil?
|
25
|
+
drop = Drop.find(drop_name)
|
26
|
+
else
|
27
|
+
drop = Drop.find(drop_name, details.admin_token)
|
28
|
+
end
|
29
|
+
args.each do |f|
|
30
|
+
if File.exist?(f)
|
31
|
+
drop.add_file(f)
|
32
|
+
puts "File #{f} added."
|
33
|
+
else
|
34
|
+
$stderr.puts "File #{f} not found, skipping."
|
35
|
+
end
|
36
|
+
end
|
37
|
+
rescue Dropio::MissingResourceError
|
38
|
+
$stderr.puts "Drop/Asset does not exist"
|
39
|
+
rescue Dropio::AuthorizationError
|
40
|
+
$stderr.puts "Authorization error. This drop is private or the admin token is invalid."
|
41
|
+
rescue JSON::ParserError
|
42
|
+
$stderr.puts "Cannot add asset to the specified drop. Guest uploads not allowed."
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
command :create do |c|
|
2
|
+
c.description = 'Create a new drop'
|
3
|
+
c.option '--expiration-length LENGTH', String, 'Drop expiration length'
|
4
|
+
c.option '--save YES/NO', TrueClass, 'Save the drop info to the config file (defaut: yes)'
|
5
|
+
c.option '--guest-can-comment YES/NO', TrueClass, 'Guest can add comments (defaut: yes)'
|
6
|
+
c.option '--guest-can-add YES/NO', TrueClass, 'Guest can add to this drop (defaut: yes)'
|
7
|
+
c.when_called do |args, options|
|
8
|
+
drop_name = args.first
|
9
|
+
options.default(
|
10
|
+
:expiration_length => '1_WEEK_FROM_LAST_VIEW',
|
11
|
+
:save => true,
|
12
|
+
:guest_can_comment => true,
|
13
|
+
:guest_can_add => false,
|
14
|
+
:guest_can_delete => false
|
15
|
+
)
|
16
|
+
drop_options = {
|
17
|
+
:name => drop_name,
|
18
|
+
:expiration_length => options.expiration_length,
|
19
|
+
:guests_can_add => options.guest_can_add,
|
20
|
+
:guests_can_comment => options.guest_can_comment
|
21
|
+
}
|
22
|
+
begin
|
23
|
+
drop = Drop.create(drop_options)
|
24
|
+
details = IORB::DropDetails.build_from(drop)
|
25
|
+
puts details.class
|
26
|
+
details.print
|
27
|
+
details.save if options.save
|
28
|
+
rescue Dropio::AuthorizationError
|
29
|
+
$stderr.puts 'Error creating drop.'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
def delete_asset(drop_name, asset_name, force = false)
|
2
|
+
HighLine.track_eof = false
|
3
|
+
$stdout.sync = true
|
4
|
+
details = IORB::DropManager.find(drop_name)
|
5
|
+
regex = false
|
6
|
+
if asset_name =~ /^\/.*\/$/
|
7
|
+
regex = true
|
8
|
+
asset_name = Regexp.new(asset_name[1..-2])
|
9
|
+
end
|
10
|
+
begin
|
11
|
+
if details.nil?
|
12
|
+
drop = Drop.find(drop_name)
|
13
|
+
else
|
14
|
+
drop = Drop.find(drop_name, details.admin_token)
|
15
|
+
end
|
16
|
+
to_delete = []
|
17
|
+
drop.assets.each do |a|
|
18
|
+
if regex
|
19
|
+
(to_delete << a) if a.name =~ asset_name
|
20
|
+
else
|
21
|
+
(to_delete << a) if a.name == asset_name
|
22
|
+
end
|
23
|
+
end
|
24
|
+
to_delete.each do |a|
|
25
|
+
if force
|
26
|
+
print "Deleting #{a.name}... "
|
27
|
+
a.destroy!
|
28
|
+
puts "done"
|
29
|
+
else
|
30
|
+
if agree("#{drop_name}:#{a.name} will be deleted, sure? (y/n) ")
|
31
|
+
print "Deleting #{a.name}... "
|
32
|
+
a.destroy!
|
33
|
+
puts "done"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
puts "\nNo matching asset found in drop #{drop_name}\n\n" if to_delete.empty?
|
38
|
+
rescue Dropio::MissingResourceError
|
39
|
+
$stderr.puts "Drop/Asset does not exist"
|
40
|
+
rescue Dropio::AuthorizationError
|
41
|
+
$stderr.puts "Authorization error. This drop is private or the admin token is invalid."
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def delete_drop(drop_name)
|
46
|
+
HighLine.track_eof = false
|
47
|
+
begin
|
48
|
+
details = IORB::DropManager.find(drop_name)
|
49
|
+
if details
|
50
|
+
drop = Drop.find(drop_name, details.admin_token)
|
51
|
+
if ask("Deleting #{drop_name}, sure? (y/n) ")
|
52
|
+
drop.destroy
|
53
|
+
details['destroyed'] = true
|
54
|
+
details.save
|
55
|
+
puts 'Destroyed.'
|
56
|
+
end
|
57
|
+
else
|
58
|
+
$stderr.puts "No admin-token for #{drop_name}. I can't destroy it"
|
59
|
+
end
|
60
|
+
rescue Dropio::MissingResourceError
|
61
|
+
$stderr.puts "Drop/Asset does not exist"
|
62
|
+
rescue Dropio::AuthorizationError
|
63
|
+
$stderr.puts "Authorization error. This drop is private or the admin token is invalid."
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
command :destroy do |c|
|
68
|
+
c.description = 'Destroy an existing drop/asset'
|
69
|
+
c.option '--force', 'Do not ask for confirmation before destroying'
|
70
|
+
c.when_called do |args, options|
|
71
|
+
options.default :force => false
|
72
|
+
param = args.first
|
73
|
+
drop_name = nil
|
74
|
+
asset = nil
|
75
|
+
if param =~ /^\w+:.*/
|
76
|
+
drop_name, asset = param.split(':')
|
77
|
+
delete_asset(drop_name, asset, options.force)
|
78
|
+
else
|
79
|
+
drop_name = param
|
80
|
+
delete_drop(drop_name)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
command :info do |c|
|
2
|
+
c.description = 'display drop/asset info'
|
3
|
+
c.when_called do |args, options|
|
4
|
+
if args.empty?
|
5
|
+
$stderr.puts 'Needs drop name as an argument.'
|
6
|
+
else
|
7
|
+
begin
|
8
|
+
drop_name = args.first
|
9
|
+
details = IORB::DropManager.find(drop_name)
|
10
|
+
if details
|
11
|
+
details.print
|
12
|
+
else
|
13
|
+
drop = Drop.find(args.first)
|
14
|
+
IORB::DropDetails.build_from(drop).print
|
15
|
+
end
|
16
|
+
rescue Dropio::MissingResourceError
|
17
|
+
$stderr.puts "Drop/Asset does not exist"
|
18
|
+
rescue Dropio::AuthorizationError
|
19
|
+
$stderr.puts "Authorization error. This drop is private or the admin token is invalid."
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
command :list do |c|
|
2
|
+
c.description = 'list drop assets'
|
3
|
+
c.option '--filter REGEX', String, 'Display only matched assets'
|
4
|
+
c.option '--detailed', 'Display extra info'
|
5
|
+
c.when_called do |args, options|
|
6
|
+
filter = options.filter || '.*'
|
7
|
+
drop_name = args[0]
|
8
|
+
details = IORB::DropManager.find(drop_name)
|
9
|
+
begin
|
10
|
+
if details
|
11
|
+
drop = Drop.find(drop_name, details.admin_token)
|
12
|
+
else
|
13
|
+
drop = Drop.find(drop_name)
|
14
|
+
end
|
15
|
+
assets = drop.assets
|
16
|
+
if assets.empty?
|
17
|
+
puts "No assets in #{drop_name}"
|
18
|
+
else
|
19
|
+
found = []
|
20
|
+
drop.assets.each do |a|
|
21
|
+
if filter =~ /^type:.*$/
|
22
|
+
(found << a) if a.type == (filter.split(':').last || '')
|
23
|
+
else
|
24
|
+
(found << a) if a.name =~ Regexp.new(filter)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
found.each do |a|
|
28
|
+
if options.detailed
|
29
|
+
a.print_details
|
30
|
+
puts
|
31
|
+
else
|
32
|
+
puts a.name
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
rescue Dropio::MissingResourceError
|
37
|
+
$stderr.puts "Drop/Asset does not exist"
|
38
|
+
rescue Dropio::AuthorizationError
|
39
|
+
$stderr.puts "Authorization error. This drop is private or the admin token is invalid."
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubiojr-iorb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.96
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergio RubioSergio Rubio
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-04-
|
12
|
+
date: 2009-04-23 00:00:00 -07:00
|
13
13
|
default_executable: iorb
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -23,24 +23,14 @@ dependencies:
|
|
23
23
|
version: "0.9"
|
24
24
|
version:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
|
-
name:
|
26
|
+
name: visionmedia-commander
|
27
27
|
type: :runtime
|
28
28
|
version_requirement:
|
29
29
|
version_requirements: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: "
|
34
|
-
version:
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: choice
|
37
|
-
type: :runtime
|
38
|
-
version_requirement:
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
40
|
-
requirements:
|
41
|
-
- - ">="
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: "0.1"
|
33
|
+
version: "3.2"
|
44
34
|
version:
|
45
35
|
- !ruby/object:Gem::Dependency
|
46
36
|
name: hoe
|
@@ -68,11 +58,20 @@ files:
|
|
68
58
|
- README.txt
|
69
59
|
- Rakefile
|
70
60
|
- bin/iorb
|
61
|
+
- dropio-ruby-api-examples/add_files.rb
|
71
62
|
- dropio-ruby-api-examples/basic_client.rb
|
63
|
+
- dropio-ruby-api-examples/destroy_drop.rb
|
72
64
|
- dropio-ruby-api-examples/find_drop.rb
|
73
65
|
- dropio-ruby-api-examples/find_my_drop.rb
|
66
|
+
- dropio-ruby-api-examples/list_files.rb
|
74
67
|
- iorb.gemspec
|
75
68
|
- lib/iorb.rb
|
69
|
+
- lib/iorb/commands/add.rb
|
70
|
+
- lib/iorb/commands/create.rb
|
71
|
+
- lib/iorb/commands/destroy.rb
|
72
|
+
- lib/iorb/commands/info.rb
|
73
|
+
- lib/iorb/commands/list.rb
|
74
|
+
- lib/iorb/commands/mydrops.rb
|
76
75
|
- scripts/newrelease
|
77
76
|
has_rdoc: true
|
78
77
|
homepage: http://github.com/rubiojr/iorb
|