kindle_highlights_api 0.2.3 → 0.3.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.
- checksums.yaml +4 -4
- data/Gemfile +2 -2
- data/kindle_highlights_api.gemspec +2 -2
- data/lib/kindle_highlights_api/fetcher.rb +12 -10
- data/lib/kindle_highlights_api/version.rb +1 -1
- data/test/fetcher_test.rb +21 -5
- data/test/test_helper.rb +7 -1
- metadata +9 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d88880472a411d98de9d6c577f557a1f9a78c1b2
|
4
|
+
data.tar.gz: 935b5303889bfb1ceeb38fbb134eef2ea7852288
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68d8df2004c4ed1e6b975a27da214f5a334817c48eb3ff473850866295cfd2f620bf017b028e29ac93637a0c1328ffc829c08bbe6ed21830f44d10ac5ee2d706
|
7
|
+
data.tar.gz: c2fdb6fb03d4b65b6010d3abbc8ac9659bc697923c09b3f76ae4b1070f950e39bd804e3dc855794cf8f00731a93e55fa120ccbf3a1c4150f41b882f77c9ad5ae
|
data/Gemfile
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = KindleHighlightsAPI::VERSION
|
9
9
|
spec.authors = ["Gaurav Chande"]
|
10
10
|
spec.email = ["gmail@gauravchande.com"]
|
11
|
-
spec.summary = %q{A
|
11
|
+
spec.summary = %q{A small library that helps fetch book highlights from Amazon's Kindle service.}
|
12
12
|
spec.homepage = "https://github.com/gauravmc/kindle_highlights_api"
|
13
13
|
spec.license = "MIT"
|
14
14
|
|
@@ -19,5 +19,5 @@ Gem::Specification.new do |spec|
|
|
19
19
|
|
20
20
|
spec.add_development_dependency "bundler", "~> 1.6"
|
21
21
|
spec.add_development_dependency "rake", "~> 0"
|
22
|
-
spec.
|
22
|
+
spec.add_runtime_dependency 'mechanize', '~> 2.7', '>= 2.7.2'
|
23
23
|
end
|
@@ -6,23 +6,25 @@ module KindleHighlightsAPI
|
|
6
6
|
@email, @password = email, password
|
7
7
|
end
|
8
8
|
|
9
|
-
def
|
10
|
-
|
9
|
+
def fetch_all
|
10
|
+
Array.new.tap do |books|
|
11
|
+
fetch_each do |book|
|
12
|
+
books << book
|
13
|
+
end
|
14
|
+
end
|
11
15
|
end
|
12
16
|
|
13
|
-
|
14
|
-
|
15
|
-
def fetch_all_books
|
17
|
+
def fetch_each
|
16
18
|
page = get_highlights_page
|
17
19
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
page = next_book_link.click
|
22
|
-
end
|
20
|
+
while next_book_link = page.link(id: 'nextBookLink') do
|
21
|
+
yield Book.from_page(page)
|
22
|
+
page = next_book_link.click
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
+
private
|
27
|
+
|
26
28
|
def get_highlights_page
|
27
29
|
kindle_home_page = login_to_amazon_kindle
|
28
30
|
kindle_home_page.link(href: "/your_highlights").click
|
data/test/fetcher_test.rb
CHANGED
@@ -5,9 +5,28 @@ module KindleHighlightsAPI
|
|
5
5
|
def test_fetch_returns_an_array_of_all_the_books
|
6
6
|
fetcher = Fetcher.new('some@email.com', 'password')
|
7
7
|
|
8
|
-
books = fetcher.
|
8
|
+
books = fetcher.fetch_all
|
9
9
|
|
10
|
-
|
10
|
+
assert_equal expected_book_titles, books.map(&:title)
|
11
|
+
assert_equal 6, books.size
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_fetch_each_returns_one_book_at_a_time
|
15
|
+
fetcher = Fetcher.new('some@email.com', 'password')
|
16
|
+
books = []
|
17
|
+
|
18
|
+
fetcher.fetch_each do |book|
|
19
|
+
books << book
|
20
|
+
end
|
21
|
+
|
22
|
+
assert_equal expected_book_titles, books.map(&:title)
|
23
|
+
assert_equal 6, books.size
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def expected_book_titles
|
29
|
+
[
|
11
30
|
"Drawing on the Right Side of the Brain: The Definitive, 4th Edition",
|
12
31
|
"Mucusless Diet Healing System",
|
13
32
|
"Crucial Conversations Tools for Talking When Stakes Are High, Second Edition",
|
@@ -15,9 +34,6 @@ module KindleHighlightsAPI
|
|
15
34
|
"Smalltalk Best Practice Patterns",
|
16
35
|
"A Short History of Nearly Everything"
|
17
36
|
]
|
18
|
-
|
19
|
-
assert_equal expected_books, books.map(&:title)
|
20
|
-
assert_equal 6, books.size
|
21
37
|
end
|
22
38
|
end
|
23
39
|
end
|
data/test/test_helper.rb
CHANGED
@@ -4,11 +4,17 @@ require 'minitest/autorun'
|
|
4
4
|
require 'kindle_highlights_api'
|
5
5
|
require 'pry'
|
6
6
|
require 'mocha/mini_test'
|
7
|
-
require 'pry-rescue/minitest'
|
8
7
|
require 'fakeweb'
|
9
8
|
|
10
9
|
TEST_ROOT = File.expand_path('..', __FILE__)
|
11
10
|
|
11
|
+
module FakeWeb
|
12
|
+
class StubSocket
|
13
|
+
def read_timeout=(ignored)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
12
18
|
def mock_web_requests
|
13
19
|
FakeWeb.allow_net_connect = false
|
14
20
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kindle_highlights_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gaurav Chande
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -43,6 +43,9 @@ dependencies:
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.7'
|
48
|
+
- - ">="
|
46
49
|
- !ruby/object:Gem::Version
|
47
50
|
version: 2.7.2
|
48
51
|
type: :runtime
|
@@ -50,6 +53,9 @@ dependencies:
|
|
50
53
|
version_requirements: !ruby/object:Gem::Requirement
|
51
54
|
requirements:
|
52
55
|
- - "~>"
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '2.7'
|
58
|
+
- - ">="
|
53
59
|
- !ruby/object:Gem::Version
|
54
60
|
version: 2.7.2
|
55
61
|
description:
|
@@ -105,7 +111,7 @@ rubyforge_project:
|
|
105
111
|
rubygems_version: 2.2.2
|
106
112
|
signing_key:
|
107
113
|
specification_version: 4
|
108
|
-
summary: A
|
114
|
+
summary: A small library that helps fetch book highlights from Amazon's Kindle service.
|
109
115
|
test_files:
|
110
116
|
- test/book_test.rb
|
111
117
|
- test/fetcher_test.rb
|