jgm-cloudlib 0.3.5 → 0.3.8
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/cloudlib +15 -4
- data/cloudlib.gemspec +2 -2
- data/lib/cloudlib.rb +2 -2
- metadata +6 -2
data/bin/cloudlib
CHANGED
@@ -99,7 +99,7 @@ def menu(items)
|
|
99
99
|
while true
|
100
100
|
commands = ["find KEYWORDS", "quit"]
|
101
101
|
if items.length > 0
|
102
|
-
then commands = ["bib NUM", "get NUM", "del NUM", "mod NUM"] + commands
|
102
|
+
then commands = ["bib NUM", "get NUM", "del NUM", "mod NUM", "url NUM"] + commands
|
103
103
|
end
|
104
104
|
choices = commands.join(' | ')
|
105
105
|
ans = ask("#{choices} ? ", String) { |q| q.readline = true; q.case = :downcase }
|
@@ -116,7 +116,7 @@ def menu(items)
|
|
116
116
|
query = $1
|
117
117
|
token, items = Cloudlib::Entry.query(query, NUMITEMS)
|
118
118
|
show_items(items, more=(not token.empty?))
|
119
|
-
elsif ans =~ /^(get|del|mod|bib) *(\d+)$/
|
119
|
+
elsif ans =~ /^(get|del|mod|bib|url) *(\d+)$/
|
120
120
|
num = $2.to_i
|
121
121
|
if (num < 0) || (num >= items.length)
|
122
122
|
next
|
@@ -134,6 +134,9 @@ def menu(items)
|
|
134
134
|
item.delete
|
135
135
|
when "bib":
|
136
136
|
puts item.to_bibtex
|
137
|
+
when "url":
|
138
|
+
validminutes = ask("How long (in minutes) should the link be valid? ", Integer) { |q| q.default = 10; q.readline = true; }
|
139
|
+
puts item.url(validminutes)
|
137
140
|
else
|
138
141
|
raise "Unknown command."
|
139
142
|
end
|
@@ -191,7 +194,11 @@ if ARGV.length >= 1
|
|
191
194
|
end
|
192
195
|
if ARGV[0] == "list"
|
193
196
|
STDERR.puts "Generating list of entries (this may take a while)..."
|
194
|
-
|
197
|
+
token, entries = Cloudlib::Entry.query("",100)
|
198
|
+
while not (token.empty?)
|
199
|
+
token, next_entries = Cloudlib::Entry.query("", 100, token)
|
200
|
+
entries += next_entries
|
201
|
+
end
|
195
202
|
total_size = entries.inject(0) do |accum, e|
|
196
203
|
size = e.attributes['size'][0].to_i / (1024.0 * 1024.0)
|
197
204
|
printf "%7.2f MB %s\n", size, e.to_s
|
@@ -205,7 +212,11 @@ if ARGV.length >= 1
|
|
205
212
|
if ARGV[0] == "dump"
|
206
213
|
path = ARGV[1] || ask("Dump to which directory? ", String) { |q| q.default = "."; q.echo = true }
|
207
214
|
new_entries = 0
|
208
|
-
|
215
|
+
token, entries = Cloudlib::Entry.query("",100)
|
216
|
+
while not (token.empty?)
|
217
|
+
token, next_entries = Cloudlib::Entry.query("", 100, token)
|
218
|
+
entries += next_entries
|
219
|
+
end
|
209
220
|
total_size = entries.inject(0) {|accum, e| accum + e.attributes['size'][0].to_i}
|
210
221
|
printf("Total size is %.2f megabytes.\n", (total_size / (1024.0 * 1024.0)))
|
211
222
|
open("#{path}/#{ENV['CLOUDLIB_LIBRARY_NAME']}.db", 'w') do |file|
|
data/cloudlib.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "cloudlib"
|
3
|
-
s.version = "0.3.
|
4
|
-
s.date = "
|
3
|
+
s.version = "0.3.8"
|
4
|
+
s.date = "2009-04-26"
|
5
5
|
s.summary = "Tools for maintaining a library of books and articles in Amazon S3 and SimpleDB"
|
6
6
|
s.email = "jgm@berkeley.edu"
|
7
7
|
s.homepage = "http://github.com/jgm/cloudlib"
|
data/lib/cloudlib.rb
CHANGED
@@ -366,8 +366,8 @@ class Entry
|
|
366
366
|
Entry.fields(entry_type)
|
367
367
|
end
|
368
368
|
|
369
|
-
def url
|
370
|
-
AWS::S3::S3Object.
|
369
|
+
def url(minutes = 10)
|
370
|
+
AWS::S3::S3Object.url_for(self.name, @@bucket, :expires_in => 60 * minutes)
|
371
371
|
end
|
372
372
|
|
373
373
|
private
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jgm-cloudlib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John MacFarlane
|
@@ -9,11 +9,12 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2009-04-26 00:00:00 -07:00
|
13
13
|
default_executable: cloudlib
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: aws-s3
|
17
|
+
type: :runtime
|
17
18
|
version_requirement:
|
18
19
|
version_requirements: !ruby/object:Gem::Requirement
|
19
20
|
requirements:
|
@@ -23,6 +24,7 @@ dependencies:
|
|
23
24
|
version:
|
24
25
|
- !ruby/object:Gem::Dependency
|
25
26
|
name: aws-sdb
|
27
|
+
type: :runtime
|
26
28
|
version_requirement:
|
27
29
|
version_requirements: !ruby/object:Gem::Requirement
|
28
30
|
requirements:
|
@@ -32,6 +34,7 @@ dependencies:
|
|
32
34
|
version:
|
33
35
|
- !ruby/object:Gem::Dependency
|
34
36
|
name: sinatra
|
37
|
+
type: :runtime
|
35
38
|
version_requirement:
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
37
40
|
requirements:
|
@@ -41,6 +44,7 @@ dependencies:
|
|
41
44
|
version:
|
42
45
|
- !ruby/object:Gem::Dependency
|
43
46
|
name: highline
|
47
|
+
type: :runtime
|
44
48
|
version_requirement:
|
45
49
|
version_requirements: !ruby/object:Gem::Requirement
|
46
50
|
requirements:
|