rubiojr-iorb 0.4 → 0.5.1

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.
@@ -17,3 +17,7 @@
17
17
  * implemented info command
18
18
  * help system improved
19
19
  * new website http://iorb.netcorex.org
20
+
21
+ === 0.5 / 2009-05-04
22
+
23
+ * added mail, send_to_drop and update commands
@@ -17,5 +17,8 @@ lib/iorb/commands/create.rb
17
17
  lib/iorb/commands/destroy.rb
18
18
  lib/iorb/commands/info.rb
19
19
  lib/iorb/commands/list.rb
20
+ lib/iorb/commands/mail.rb
20
21
  lib/iorb/commands/mydrops.rb
22
+ lib/iorb/commands/send_to_drop.rb
23
+ lib/iorb/commands/update.rb
21
24
  scripts/newrelease
data/bin/iorb CHANGED
@@ -39,7 +39,7 @@ program :help, 'Examples', """
39
39
  * Destroy drop 'mydrop'
40
40
  iorb destroy mydrop
41
41
 
42
- Get more examples at http://iorb.netcorex.org/examples
42
+ Get more examples at http://iorb.netcorex.org/tutorial
43
43
  """
44
44
  default_command :help
45
45
 
@@ -1,16 +1,16 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{iorb}
3
- s.version = "0.4"
3
+ s.version = "0.5.1"
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-27}
7
+ s.date = %q{2009-05-04}
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", "THANKS.txt"]
13
- s.files = ["History.txt", "Manifest.txt", "README.txt", "Rakefile", "THANKS.txt", "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"]
13
+ s.files = ["History.txt", "Manifest.txt", "README.txt", "Rakefile", "THANKS.txt", "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/mail.rb", "lib/iorb/commands/mydrops.rb", "lib/iorb/commands/send_to_drop.rb", "lib/iorb/commands/update.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"]
@@ -15,7 +15,7 @@ class Dropio::Asset
15
15
  end
16
16
  end
17
17
  module IORB
18
- VERSION = "0.4"
18
+ VERSION = "0.5.1"
19
19
  module Util
20
20
  # Code stolen from:
21
21
  # http://evan.tiggerpalace.com/2008/04/26/pastie-from-the-mac-clipboard/
@@ -0,0 +1,55 @@
1
+ def mail_asset(drop_name, asset_name, emails, message = nil)
2
+ details = IORB::DropManager.find(drop_name)
3
+ regex = false
4
+ if asset_name =~ /^\/.*\/$/
5
+ regex = true
6
+ asset_name = Regexp.new(asset_name[1..-2])
7
+ end
8
+ begin
9
+ if details.nil?
10
+ drop = Drop.find(drop_name)
11
+ else
12
+ drop = Drop.find(drop_name, details.admin_token)
13
+ end
14
+ to_mail = []
15
+ drop.assets.each do |a|
16
+ if regex
17
+ (to_mail << a) if a.name =~ asset_name
18
+ else
19
+ (to_mail << a) if a.name == asset_name
20
+ end
21
+ end
22
+ to_mail.each do |a|
23
+ print "Emailing #{a.name}... "
24
+ a.send_to_emails(emails, message)
25
+ puts "done"
26
+ end
27
+ puts "\nNo matching asset found in drop #{drop_name}\n\n" if to_mail.empty?
28
+ rescue Dropio::MissingResourceError
29
+ $stderr.puts "Drop/Asset does not exist"
30
+ rescue Dropio::AuthorizationError
31
+ $stderr.puts "Authorization error. This drop is private or the admin token is invalid."
32
+ end
33
+ end
34
+
35
+ command :mail do |c|
36
+ c.description = 'Email an asset'
37
+ c.option '--addresses ADDRESSES', 'Destination email addresses (separated by comma)'
38
+ c.option '--message MESSAGE', 'Optional message'
39
+ c.when_called do |args, options|
40
+ if options.addresses.nil?
41
+ $stderr.puts 'No email specified. --addresses is required'
42
+ abort
43
+ end
44
+ param = args.first
45
+ drop_name = nil
46
+ asset = nil
47
+ if param =~ /^\w+:.*/
48
+ drop_name, asset = param.split(':')
49
+ emails = options.addresses.split(',')
50
+ mail_asset(drop_name, asset, emails, options.message)
51
+ else
52
+ $stderr.puts 'Invalid drop/asset.'
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,53 @@
1
+ def send_to_drop(drop_name, asset_name, target_drop)
2
+ details = IORB::DropManager.find(drop_name)
3
+ regex = false
4
+ if asset_name =~ /^\/.*\/$/
5
+ regex = true
6
+ asset_name = Regexp.new(asset_name[1..-2])
7
+ end
8
+ begin
9
+ if details.nil?
10
+ drop = Drop.find(drop_name)
11
+ else
12
+ drop = Drop.find(drop_name, details.admin_token)
13
+ end
14
+ to_copy = []
15
+ drop.assets.each do |a|
16
+ if regex
17
+ (to_copy << a) if a.name =~ asset_name
18
+ else
19
+ (to_copy << a) if a.name == asset_name
20
+ end
21
+ end
22
+ to_copy.each do |a|
23
+ print "Copying #{a.name}... "
24
+ a.send_to_drop(target_drop)
25
+ puts "done"
26
+ end
27
+ puts "\nNo matching asset found in drop #{drop_name}\n\n" if to_copy.empty?
28
+ rescue Dropio::MissingResourceError
29
+ $stderr.puts "Drop/Asset does not exist"
30
+ rescue Dropio::AuthorizationError
31
+ $stderr.puts "Authorization error. This drop is private or the admin token is invalid."
32
+ end
33
+ end
34
+
35
+ command :send_to_drop do |c|
36
+ c.description = 'Sends an asset to another drop'
37
+ c.option '--target-drop NAME', 'Target drop name (must accept files from guests)'
38
+ c.when_called do |args, options|
39
+ param = args.first
40
+ drop_name = nil
41
+ asset = nil
42
+ if options.target_drop.nil?
43
+ $stderr.puts '--target-drop not specified'
44
+ break
45
+ end
46
+ if param =~ /^\w+:.*/
47
+ drop_name, asset = param.split(':')
48
+ send_to_drop(drop_name, asset, options.target_drop)
49
+ else
50
+ $stderr.puts 'Invalid drop/asset.'
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,52 @@
1
+ command :update do |c|
2
+ c.description = 'Update drop attributes'
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 '--guests-can-comment YES/NO', String, 'Guest can add comments (defaut: yes)'
6
+ c.option '--guests-can-add YES/NO', String, 'Guest can add to this drop (defaut: yes)'
7
+ c.option '--guests-can-delete YES/NO', String, 'Guest can delete assets in this drop (defaut: yes)'
8
+ c.option '--admin-password PASSWORD', String, 'Admin password to manage this drop (defaut: none)'
9
+ c.option '--password PASSWORD', String, 'Password to access this drop (defaut: none)'
10
+ c.option '--premium-code CODE', String, 'Premium code to apply to the drop (defaut: none)'
11
+ c.when_called do |args, drop_options|
12
+ drop_name = args.first
13
+ begin
14
+ details = IORB::DropManager.find(drop_name)
15
+ drop = Drop.find(drop_name, details.admin_token )
16
+ if drop_options.expiration_length
17
+ drop.expiration_length = drop_options.expiration_length
18
+ end
19
+ if drop_options.guests_can_delete
20
+ drop.guests_can_delete = (drop_options.guests_can_delete =~ /^yes|y$/ ? true : false)
21
+ end
22
+ if drop_options.guests_can_comment
23
+ drop.guests_can_comment = (drop_options.guests_can_comment =~ /^yes|y$/ ? true : false)
24
+ end
25
+ if drop_options.guests_can_add
26
+ drop.guests_can_add = (drop_options.guests_can_add =~ /^yes|y$/ ? true : false)
27
+ end
28
+ if drop_options.admin
29
+ drop.admin_password = drop_options.admin_password
30
+ end
31
+ if drop_options.password
32
+ if drop_options.password.chomp.strip.eql?('no')
33
+ drop.password = nil
34
+ else
35
+ drop.password = drop_options.password
36
+ end
37
+ end
38
+ if drop_options.premium
39
+ drop.premium_code = drop_options.premium_code
40
+ end
41
+ drop.save
42
+ details = IORB::DropDetails.build_from(drop)
43
+ details.print
44
+ details.save if drop_options.save
45
+ rescue Dropio::MissingResourceError
46
+ $stderr.puts "Drop/Asset does not exist"
47
+ rescue Dropio::AuthorizationError => e
48
+ $stderr.puts e.message
49
+ $stderr.puts 'Error updating drop.'
50
+ end
51
+ end
52
+ 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.4"
4
+ version: 0.5.1
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-27 00:00:00 -07:00
12
+ date: 2009-05-04 00:00:00 -07:00
13
13
  default_executable: iorb
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -73,7 +73,10 @@ files:
73
73
  - lib/iorb/commands/destroy.rb
74
74
  - lib/iorb/commands/info.rb
75
75
  - lib/iorb/commands/list.rb
76
+ - lib/iorb/commands/mail.rb
76
77
  - lib/iorb/commands/mydrops.rb
78
+ - lib/iorb/commands/send_to_drop.rb
79
+ - lib/iorb/commands/update.rb
77
80
  - scripts/newrelease
78
81
  has_rdoc: true
79
82
  homepage: http://github.com/rubiojr/iorb