klipbook 2.0.0 → 2.1.0

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/lib/klipbook.rb CHANGED
@@ -7,7 +7,6 @@ require 'klipbook/commands/collate'
7
7
  require 'klipbook/commands/list_books'
8
8
  require 'klipbook/commands/pretty_print'
9
9
 
10
- require 'klipbook/sources/book_source'
11
10
  require 'klipbook/sources/book'
12
11
  require 'klipbook/sources/clipping'
13
12
  require 'klipbook/sources/invalid_source_error'
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe Klipbook::Sources::KindleDevice::File do
4
4
 
5
- let(:file) { Klipbook::Sources::KindleDevice::File.new('file path', max_books, file_parser) }
5
+ let(:file) { Klipbook::Sources::KindleDevice::File.new(input_file, max_books, file_parser) }
6
6
 
7
7
  let(:max_books) { 30 }
8
8
 
@@ -20,20 +20,6 @@ describe Klipbook::Sources::KindleDevice::File do
20
20
  end
21
21
  end
22
22
 
23
- before :each do
24
- stub(File).open.returns do |*args|
25
- passed_block = args.last
26
- passed_block.call(input_file)
27
- end
28
- end
29
-
30
- describe 'initially' do
31
- it 'reads the contents of the input file' do
32
- file
33
- File.should have_received.open('file path', 'r')
34
- end
35
- end
36
-
37
23
  describe '#books' do
38
24
  subject { file.books }
39
25
 
metadata CHANGED
@@ -1,254 +1,195 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: klipbook
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
5
- prerelease:
4
+ version: 2.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Ray Grasso
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-13 00:00:00.000000000 Z
11
+ date: 2013-12-11 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: gli
14
+ name: slop
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: mechanize
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rainbow
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rspec
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: rr
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: bundler
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - '>='
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: jeweler
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
101
  - - ~>
116
102
  - !ruby/object:Gem::Version
117
- version: 1.6.4
103
+ version: 1.8.8
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
108
  - - ~>
124
109
  - !ruby/object:Gem::Version
125
- version: 1.6.4
126
- - !ruby/object:Gem::Dependency
127
- name: rcov
128
- requirement: !ruby/object:Gem::Requirement
129
- none: false
130
- requirements:
131
- - - ! '>='
132
- - !ruby/object:Gem::Version
133
- version: '0'
134
- type: :development
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ! '>='
140
- - !ruby/object:Gem::Version
141
- version: '0'
110
+ version: 1.8.8
142
111
  - !ruby/object:Gem::Dependency
143
112
  name: pry-debugger
144
113
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
114
  requirements:
147
- - - ! '>='
115
+ - - '>='
148
116
  - !ruby/object:Gem::Version
149
117
  version: '0'
150
118
  type: :development
151
119
  prerelease: false
152
120
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
121
  requirements:
155
- - - ! '>='
122
+ - - '>='
156
123
  - !ruby/object:Gem::Version
157
124
  version: '0'
158
125
  - !ruby/object:Gem::Dependency
159
126
  name: cucumber
160
127
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
128
  requirements:
163
- - - ! '>='
129
+ - - '>='
164
130
  - !ruby/object:Gem::Version
165
131
  version: '0'
166
132
  type: :development
167
133
  prerelease: false
168
134
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
135
  requirements:
171
- - - ! '>='
136
+ - - '>='
172
137
  - !ruby/object:Gem::Version
173
138
  version: '0'
174
139
  - !ruby/object:Gem::Dependency
175
140
  name: aruba
176
141
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
142
  requirements:
179
- - - ! '>='
143
+ - - '>='
180
144
  - !ruby/object:Gem::Version
181
145
  version: '0'
182
146
  type: :development
183
147
  prerelease: false
184
148
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
149
  requirements:
187
- - - ! '>='
150
+ - - '>='
188
151
  - !ruby/object:Gem::Version
189
152
  version: '0'
190
153
  - !ruby/object:Gem::Dependency
191
154
  name: guard
192
155
  requirement: !ruby/object:Gem::Requirement
193
- none: false
194
156
  requirements:
195
- - - ! '>='
157
+ - - '>='
196
158
  - !ruby/object:Gem::Version
197
159
  version: '0'
198
160
  type: :development
199
161
  prerelease: false
200
162
  version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
163
  requirements:
203
- - - ! '>='
164
+ - - '>='
204
165
  - !ruby/object:Gem::Version
205
166
  version: '0'
206
167
  - !ruby/object:Gem::Dependency
207
168
  name: guard-rspec
208
169
  requirement: !ruby/object:Gem::Requirement
209
- none: false
210
170
  requirements:
211
- - - ! '>='
171
+ - - '>='
212
172
  - !ruby/object:Gem::Version
213
173
  version: '0'
214
174
  type: :development
215
175
  prerelease: false
216
176
  version_requirements: !ruby/object:Gem::Requirement
217
- none: false
218
177
  requirements:
219
- - - ! '>='
178
+ - - '>='
220
179
  - !ruby/object:Gem::Version
221
180
  version: '0'
222
181
  - !ruby/object:Gem::Dependency
223
182
  name: guard-cucumber
224
183
  requirement: !ruby/object:Gem::Requirement
225
- none: false
226
- requirements:
227
- - - ! '>='
228
- - !ruby/object:Gem::Version
229
- version: '0'
230
- type: :development
231
- prerelease: false
232
- version_requirements: !ruby/object:Gem::Requirement
233
- none: false
234
- requirements:
235
- - - ! '>='
236
- - !ruby/object:Gem::Version
237
- version: '0'
238
- - !ruby/object:Gem::Dependency
239
- name: terminal-notifier-guard
240
- requirement: !ruby/object:Gem::Requirement
241
- none: false
242
184
  requirements:
243
- - - ! '>='
185
+ - - '>='
244
186
  - !ruby/object:Gem::Version
245
187
  version: '0'
246
188
  type: :development
247
189
  prerelease: false
248
190
  version_requirements: !ruby/object:Gem::Requirement
249
- none: false
250
191
  requirements:
251
- - - ! '>='
192
+ - - '>='
252
193
  - !ruby/object:Gem::Version
253
194
  version: '0'
254
195
  description: Process your Kindle clippings file to generate a nicely formatted compilation
@@ -263,6 +204,7 @@ extra_rdoc_files:
263
204
  files:
264
205
  - .document
265
206
  - .rspec
207
+ - .ruby-version
266
208
  - .yardopts
267
209
  - CHANGELOG.txt
268
210
  - Gemfile
@@ -273,14 +215,14 @@ files:
273
215
  - Rakefile
274
216
  - bin/klipbook
275
217
  - example.png
276
- - features/collate.feature
277
218
  - features/fixtures/clippings-for-three-books.txt
278
219
  - features/list.feature
279
- - features/pretty_print.feature
280
- - features/step_definitions/collate_steps.rb
281
220
  - features/step_definitions/list_steps.rb
282
- - features/step_definitions/pretty_print_steps.rb
221
+ - features/step_definitions/tohtml_steps.rb
222
+ - features/step_definitions/tojson_steps.rb
283
223
  - features/support/env.rb
224
+ - features/tohtml.feature
225
+ - features/tojson.feature
284
226
  - klipbook.gemspec
285
227
  - lib/klipbook.rb
286
228
  - lib/klipbook/collate/book_file.rb
@@ -293,7 +235,6 @@ files:
293
235
  - lib/klipbook/sources/amazon_site/book_scraper.rb
294
236
  - lib/klipbook/sources/amazon_site/site_scraper.rb
295
237
  - lib/klipbook/sources/book.rb
296
- - lib/klipbook/sources/book_source.rb
297
238
  - lib/klipbook/sources/clipping.rb
298
239
  - lib/klipbook/sources/invalid_source_error.rb
299
240
  - lib/klipbook/sources/kindle_device/entry.rb
@@ -307,7 +248,6 @@ files:
307
248
  - spec/lib/klipbook/commands/list_books_spec.rb
308
249
  - spec/lib/klipbook/commands/pretty_print_spec.rb
309
250
  - spec/lib/klipbook/pretty_print/html_printer_spec.rb
310
- - spec/lib/klipbook/sources/book_source_spec.rb
311
251
  - spec/lib/klipbook/sources/book_spec.rb
312
252
  - spec/lib/klipbook/sources/kindle_device/entry_parser_spec.rb
313
253
  - spec/lib/klipbook/sources/kindle_device/file_parser_spec.rb
@@ -318,30 +258,26 @@ files:
318
258
  homepage: https://github.com/grassdog/klipbook
319
259
  licenses:
320
260
  - MIT
261
+ metadata: {}
321
262
  post_install_message:
322
263
  rdoc_options: []
323
264
  require_paths:
324
265
  - lib
325
266
  required_ruby_version: !ruby/object:Gem::Requirement
326
- none: false
327
267
  requirements:
328
- - - ! '>='
268
+ - - '>='
329
269
  - !ruby/object:Gem::Version
330
270
  version: '0'
331
- segments:
332
- - 0
333
- hash: -33745898634206631
334
271
  required_rubygems_version: !ruby/object:Gem::Requirement
335
- none: false
336
272
  requirements:
337
- - - ! '>='
273
+ - - '>='
338
274
  - !ruby/object:Gem::Version
339
275
  version: '0'
340
276
  requirements: []
341
277
  rubyforge_project:
342
- rubygems_version: 1.8.23
278
+ rubygems_version: 2.0.14
343
279
  signing_key:
344
- specification_version: 3
280
+ specification_version: 4
345
281
  summary: Klipbook creates a nice html summary of the clippings you've created on your
346
282
  Kindle.
347
283
  test_files: []
@@ -1,17 +0,0 @@
1
-
2
- When /^I collate clippings for "([^"]*)" books from the file "([^"]*)" to the output file "([^"]*)"$/ do |book_count, input_file, output_file|
3
- run_collate(book_count, output_file, input_file)
4
- end
5
-
6
- Then /^I should find a file called "([^"]*)" that contains "([^"]*)"$/ do |output_file, expected_text|
7
- in_current_dir do
8
- File.exists?(output_file).should be_true
9
- File.open(output_file, 'r') do |f|
10
- f.read.should match(/#{expected_text}/m)
11
- end
12
- end
13
- end
14
-
15
- def run_collate(book_count, output_file, input_file)
16
- run_simple(unescape("klipbook -n #{book_count} collate -c #{output_file} file:#{input_file}"), false)
17
- end
@@ -1,26 +0,0 @@
1
- module Klipbook::Sources
2
- class BookSource
3
- def initialize(source_spec, max_books)
4
- raise InvalidSourceError unless valid_source?(source_spec)
5
-
6
- if (source_spec =~ /file:(.+)/)
7
- file_path = $1
8
- @source = Klipbook::Sources::KindleDevice::File.new(file_path, max_books)
9
- elsif (source_spec =~ /site:(.+):(.+)/)
10
- username = $1
11
- password = $2
12
- @source = Klipbook::Sources::AmazonSite::SiteScraper.new(username, password, max_books)
13
- end
14
- end
15
-
16
- def books
17
- @source.books
18
- end
19
-
20
- private
21
-
22
- def valid_source?(source_spec)
23
- source_spec =~ /(file:|site:.+:.+)/
24
- end
25
- end
26
- end
@@ -1,81 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Klipbook::Sources::BookSource do
4
-
5
- let(:fake_source) do
6
- Object.new.tap do |fakey|
7
- stub(fakey).books { books }
8
- end
9
- end
10
-
11
- context 'when created with an invalid source' do
12
- it 'raises an error' do
13
- expect { Klipbook::Sources::BookSource.new('sdf' , 2) }.to raise_error(InvalidSourceError)
14
- end
15
- end
16
-
17
- context 'when created with a site source' do
18
- subject { book_source }
19
-
20
- let(:book_source) { Klipbook::Sources::BookSource.new('site:username@example.com:password', 2) }
21
-
22
- before(:each) do
23
- stub(Klipbook::Sources::AmazonSite::SiteScraper).new { fake_source }
24
- end
25
-
26
- it 'creates a site scraper with the provided credentials' do
27
- subject
28
- Klipbook::Sources::AmazonSite::SiteScraper.should have_received.new('username@example.com', 'password', 2)
29
- end
30
-
31
- describe '#books' do
32
- subject { book_source.books }
33
-
34
- let(:books) { [] }
35
-
36
- it 'returns the books returned by the site source' do
37
- subject.should == books
38
- end
39
- end
40
- end
41
-
42
- context 'when created with a file source' do
43
- subject { book_source }
44
-
45
- let(:book_source) { Klipbook::Sources::BookSource.new('file:filename', 2) }
46
-
47
- let(:fake_file) do
48
- Object.new.tap do |file|
49
- stub(file).read { file_contents }
50
- end
51
- end
52
-
53
- let(:file_contents) { 'fake contents ' }
54
-
55
- before(:each) do
56
- stub(Klipbook::Sources::KindleDevice::File).new { fake_source }
57
- stub(File).open { fake_file }
58
- end
59
-
60
- it "reads the file's contents from disk" do
61
- subject
62
- File.should have_received.open('filename', 'r')
63
- end
64
-
65
- pending 'uses the file contents to create a file source' do
66
- subject
67
-
68
- Klipbook::Sources::KindleDevice::File.should have_received.new('fake contents', 2)
69
- end
70
-
71
- describe '#books' do
72
- subject { book_source.books }
73
-
74
- let(:books) { [] }
75
-
76
- pending 'returns the books returned by the file source' do
77
- subject.should == books
78
- end
79
- end
80
- end
81
- end