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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 31a28a034f72cd65578f891e4b31b80bb306bf30
4
- data.tar.gz: a3dde5c6f549b6bfa44fe4ec351f92c50bc68e6b
3
+ metadata.gz: d88880472a411d98de9d6c577f557a1f9a78c1b2
4
+ data.tar.gz: 935b5303889bfb1ceeb38fbb134eef2ea7852288
5
5
  SHA512:
6
- metadata.gz: c4b231326438932d45dcb7821704d129f182fd2d7c067cc65231567a13e875f8ee47ec79a0a53c94f7360ead6fd97b15bab8d2b2f61aaf4616784ad1c651a4d0
7
- data.tar.gz: a4f22146f3f666725506bad3df7a405f4e48e3daa436e0d1fe616644ed12e7d22d4b40f33ecde2390a13091488a560a7f16c6fcfcef38d450a92e188ec31b1b1
6
+ metadata.gz: 68d8df2004c4ed1e6b975a27da214f5a334817c48eb3ff473850866295cfd2f620bf017b028e29ac93637a0c1328ffc829c08bbe6ed21830f44d10ac5ee2d706
7
+ data.tar.gz: c2fdb6fb03d4b65b6010d3abbc8ac9659bc697923c09b3f76ae4b1070f950e39bd804e3dc855794cf8f00731a93e55fa120ccbf3a1c4150f41b882f77c9ad5ae
data/Gemfile CHANGED
@@ -7,7 +7,7 @@ group :development, :test do
7
7
  gem 'mocha'
8
8
  gem 'fakeweb'
9
9
  gem 'pry'
10
- gem 'pry-debugger'
11
- gem 'pry-rescue'
10
+ gem 'pry-doc'
11
+ gem 'pry-byebug'
12
12
  gem 'pry-stack_explorer'
13
13
  end
@@ -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 wrapper that helps fetch Kindle highlights and play around with them.}
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.add_dependency "mechanize", "~> 2.7.2"
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 fetch
10
- fetch_all_books
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
- private
14
-
15
- def fetch_all_books
17
+ def fetch_each
16
18
  page = get_highlights_page
17
19
 
18
- Array.new.tap do |books|
19
- while next_book_link = page.link(id: 'nextBookLink') do
20
- books << Book.from_page(page)
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
@@ -1,3 +1,3 @@
1
1
  module KindleHighlightsAPI
2
- VERSION = "0.2.3"
2
+ VERSION = "0.3.0"
3
3
  end
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.fetch
8
+ books = fetcher.fetch_all
9
9
 
10
- expected_books = [
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.2.3
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-08-03 00:00:00.000000000 Z
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 wrapper that helps fetch Kindle highlights and play around with them.
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