bookscan 0.4.1 → 0.4.3
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.
- data/README.rdoc +1 -0
- data/VERSION +1 -1
- data/bookscan.gemspec +1 -1
- data/lib/bookscan/cli.rb +11 -0
- data/lib/bookscan/commands.rb +67 -14
- metadata +3 -3
data/README.rdoc
CHANGED
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.4.
|
|
1
|
+
0.4.3
|
data/bookscan.gemspec
CHANGED
data/lib/bookscan/cli.rb
CHANGED
|
@@ -13,6 +13,7 @@ module Bookscan
|
|
|
13
13
|
def execute(argv)
|
|
14
14
|
begin
|
|
15
15
|
@opt = OptionParser.new
|
|
16
|
+
@opt.on('--version', 'show version') { version;exit }
|
|
16
17
|
@opt.on('--help', 'show this message') { usage;exit }
|
|
17
18
|
@opt.on('--debug', 'debug mode') { @options[:debug] = true }
|
|
18
19
|
cmd_argv = @opt.order!(argv)
|
|
@@ -27,6 +28,16 @@ module Bookscan
|
|
|
27
28
|
|
|
28
29
|
def usage(e=nil)
|
|
29
30
|
puts @opt
|
|
31
|
+
puts "\nCommands:\n"
|
|
32
|
+
COMMANDS.each { |c|
|
|
33
|
+
puts " " + c
|
|
34
|
+
}
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def version
|
|
38
|
+
File.open(File.dirname(__FILE__) + '/../../VERSION',"r") { |file|
|
|
39
|
+
puts file.gets
|
|
40
|
+
}
|
|
30
41
|
end
|
|
31
42
|
|
|
32
43
|
class << self
|
data/lib/bookscan/commands.rb
CHANGED
|
@@ -10,6 +10,9 @@ require "bookscan/agent"
|
|
|
10
10
|
require "bookscan/cache"
|
|
11
11
|
|
|
12
12
|
module Bookscan
|
|
13
|
+
COMMANDS = ["list","help", "login","logout","download","tune","update",
|
|
14
|
+
"groups","tuned"]
|
|
15
|
+
|
|
13
16
|
class Commands
|
|
14
17
|
def initialize(cmd_options,options)
|
|
15
18
|
@options = options
|
|
@@ -17,9 +20,30 @@ module Bookscan
|
|
|
17
20
|
@agent = Agent.new
|
|
18
21
|
@cache_file = ENV['HOME']+"/.bookscan.cache"
|
|
19
22
|
@cache = Cache.new(@cache_file)
|
|
23
|
+
@help = false
|
|
24
|
+
@banner = ""
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def help
|
|
28
|
+
opt = OptionParser.new
|
|
29
|
+
opt.parse!(@command_options)
|
|
30
|
+
@banner = "command"
|
|
31
|
+
return opt if @help
|
|
32
|
+
@help = true
|
|
33
|
+
command = @command_options.shift
|
|
34
|
+
raise "Unknown command: " + command unless COMMANDS.include?(command)
|
|
35
|
+
opt = send(command)
|
|
36
|
+
opt.banner="Usage: bookscan [options] #{command} #{@banner}"
|
|
37
|
+
puts opt
|
|
38
|
+
|
|
20
39
|
end
|
|
21
40
|
|
|
22
41
|
def login
|
|
42
|
+
opt = OptionParser.new
|
|
43
|
+
opt.parse!(@command_options)
|
|
44
|
+
@banner = ""
|
|
45
|
+
return opt if @help
|
|
46
|
+
|
|
23
47
|
email = ask('Enter email: ') do |q|
|
|
24
48
|
q.validate = /\w+/
|
|
25
49
|
end
|
|
@@ -44,24 +68,15 @@ module Bookscan
|
|
|
44
68
|
end
|
|
45
69
|
|
|
46
70
|
def logout
|
|
47
|
-
|
|
48
|
-
|
|
71
|
+
opt = OptionParser.new
|
|
72
|
+
opt.parse!(@command_options)
|
|
73
|
+
@banner = ""
|
|
74
|
+
return opt if @help
|
|
49
75
|
|
|
50
|
-
|
|
51
|
-
return true if @agent.login?
|
|
52
|
-
email = Keystorage.list("bookscan").shift
|
|
53
|
-
if email
|
|
54
|
-
@agent.login(email,Keystorage.get("bookscan",email))
|
|
55
|
-
unless @agent.login?
|
|
56
|
-
login
|
|
57
|
-
end
|
|
58
|
-
else
|
|
59
|
-
login
|
|
60
|
-
end
|
|
76
|
+
Keystorage.delete("bookscan")
|
|
61
77
|
end
|
|
62
78
|
|
|
63
79
|
def update
|
|
64
|
-
start
|
|
65
80
|
all = false
|
|
66
81
|
hash = false
|
|
67
82
|
|
|
@@ -73,7 +88,10 @@ module Bookscan
|
|
|
73
88
|
hash = v
|
|
74
89
|
end
|
|
75
90
|
opt.parse!(@command_options)
|
|
91
|
+
@banner = ""
|
|
92
|
+
return opt if @help
|
|
76
93
|
|
|
94
|
+
start
|
|
77
95
|
gs = @agent.groups
|
|
78
96
|
if all
|
|
79
97
|
gs.each_index do |index|
|
|
@@ -105,6 +123,10 @@ module Bookscan
|
|
|
105
123
|
end
|
|
106
124
|
|
|
107
125
|
def groups
|
|
126
|
+
opt = OptionParser.new
|
|
127
|
+
opt.parse!(@command_options)
|
|
128
|
+
@banner = ""
|
|
129
|
+
return opt if @help
|
|
108
130
|
gs = @cache.groups
|
|
109
131
|
puts gs.to_s
|
|
110
132
|
end
|
|
@@ -119,6 +141,8 @@ module Bookscan
|
|
|
119
141
|
opt.on('-t TYPE','--tuned=TYPE', 'download tuned') { |v| type = v; browsing = false }
|
|
120
142
|
opt.on('-m PATTERN','--match=PATTERN','pattern match') { |v| pattern = v; browsing = false }
|
|
121
143
|
opt.parse!(@command_options)
|
|
144
|
+
@banner = "[command options]"
|
|
145
|
+
return opt if @help
|
|
122
146
|
|
|
123
147
|
if hash or browsing
|
|
124
148
|
puts ask_group(hash,gs).books.to_s
|
|
@@ -152,6 +176,9 @@ module Bookscan
|
|
|
152
176
|
dry_run = true
|
|
153
177
|
end
|
|
154
178
|
opt.parse!(@command_options)
|
|
179
|
+
@banner = "[command options] isbn|all"
|
|
180
|
+
return opt if @help
|
|
181
|
+
|
|
155
182
|
book_id = @command_options.shift
|
|
156
183
|
|
|
157
184
|
if book_id == "all"
|
|
@@ -206,6 +233,9 @@ module Bookscan
|
|
|
206
233
|
pattern = v
|
|
207
234
|
end
|
|
208
235
|
opt.parse!(@command_options)
|
|
236
|
+
@banner = "[command options] isbn|all tune_type"
|
|
237
|
+
return opt if @help
|
|
238
|
+
|
|
209
239
|
book_id = @command_options.shift
|
|
210
240
|
type = ask_tune_type(@command_options.shift)
|
|
211
241
|
|
|
@@ -231,17 +261,40 @@ module Bookscan
|
|
|
231
261
|
end
|
|
232
262
|
|
|
233
263
|
def tuning
|
|
264
|
+
opt = OptionParser.new
|
|
265
|
+
opt.parse!(@command_options)
|
|
266
|
+
@banner = ""
|
|
267
|
+
return opt if @help
|
|
268
|
+
|
|
234
269
|
start
|
|
235
270
|
books = @agent.tuning
|
|
236
271
|
puts books.to_s
|
|
237
272
|
end
|
|
238
273
|
|
|
239
274
|
def tuned
|
|
275
|
+
opt = OptionParser.new
|
|
276
|
+
opt.parse!(@command_options)
|
|
277
|
+
@banner = ""
|
|
278
|
+
return opt if @help
|
|
240
279
|
puts @cache.tuned.to_s
|
|
241
280
|
end
|
|
242
281
|
|
|
243
282
|
private
|
|
244
283
|
|
|
284
|
+
|
|
285
|
+
def start
|
|
286
|
+
return true if @agent.login?
|
|
287
|
+
email = Keystorage.list("bookscan").shift
|
|
288
|
+
if email
|
|
289
|
+
@agent.login(email,Keystorage.get("bookscan",email))
|
|
290
|
+
unless @agent.login?
|
|
291
|
+
login
|
|
292
|
+
end
|
|
293
|
+
else
|
|
294
|
+
login
|
|
295
|
+
end
|
|
296
|
+
end
|
|
297
|
+
|
|
245
298
|
def ask_group(hash,gs)
|
|
246
299
|
unless hash
|
|
247
300
|
puts gs.to_s
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bookscan
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 9
|
|
5
5
|
prerelease:
|
|
6
6
|
segments:
|
|
7
7
|
- 0
|
|
8
8
|
- 4
|
|
9
|
-
-
|
|
10
|
-
version: 0.4.
|
|
9
|
+
- 3
|
|
10
|
+
version: 0.4.3
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- Yoshihiro TAKAHARA
|