kindle_highlights_api 0.2.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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