kindleclippings 1.1.3 → 1.2.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/README.markdown CHANGED
@@ -39,6 +39,8 @@ The annotations can also be parsed directly.
39
39
 
40
40
  ### Retrieve only the information you care about
41
41
 
42
+ #### Annotation types
43
+
42
44
  You can retrieve only the annotationstypes you care about. After parsing, you can call `highlights`, `notes` or `bookmarks` on the collection to get only annotations of that type.
43
45
 
44
46
  require 'kindleclippings'
@@ -48,4 +50,17 @@ You can retrieve only the annotationstypes you care about. After parsing, you ca
48
50
 
49
51
  clippings.notes # All the notes
50
52
  clippings.highlights # All the highlights
51
- clippings.bookmarks # All the bookmarks
53
+ clippings.bookmarks # All the bookmarks
54
+
55
+ #### Author and book title
56
+
57
+ You can filter the results by author and booktitle by using the methods `by_author` and `by_book` on a `ClippingResult` object.
58
+
59
+ require 'kindleclippings'
60
+
61
+ parser = KindleClippings::Parser.new
62
+ clippings = parser.parse_file('My Clippings.txt')
63
+
64
+ clippings.by_author('Malcolm Gladwell') # All annotations for all the books by Malcolm Gladwell
65
+
66
+ clippings.by_book('Born to Run') # All annotations for the book Born to Run
@@ -3,22 +3,30 @@ module KindleClippings
3
3
  class ClippingResult < Array
4
4
 
5
5
  def highlights
6
- filter_by_type(:Highlight)
6
+ filter_by_property(:type, :Highlight)
7
7
  end
8
8
 
9
9
  def notes
10
- filter_by_type(:Note)
10
+ filter_by_property(:type, :Note)
11
11
  end
12
12
 
13
13
  def bookmarks
14
- filter_by_type(:Bookmark)
14
+ filter_by_property(:type, :Bookmark)
15
+ end
16
+
17
+ def by_author(author)
18
+ filter_by_property(:author, author)
19
+ end
20
+
21
+ def by_book(book)
22
+ filter_by_property(:book_title, book)
15
23
  end
16
24
 
17
25
  private
18
26
 
19
- def filter_by_type(type)
20
- return self unless type
21
- self.select { |item| item.type == type }
27
+ def filter_by_property(property, value)
28
+ return self unless value
29
+ self.select { |annotation| annotation.send(property).downcase == value.downcase }
22
30
  end
23
31
 
24
32
  end
@@ -40,7 +40,7 @@ module KindleClippings
40
40
 
41
41
  lines = Array.new
42
42
 
43
- if RUBY_VERSION > "1.9.1"
43
+ if RUBY_VERSION >= "1.9.1"
44
44
  lines = clipping.lines.to_a
45
45
  else
46
46
  lines = clipping.to_a
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 1
7
- - 1
8
- - 3
9
- version: 1.1.3
7
+ - 2
8
+ - 0
9
+ version: 1.2.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Georg Alexander Boe
@@ -14,13 +14,14 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-05-29 00:00:00 +02:00
17
+ date: 2010-08-21 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rspec
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
24
25
  requirements:
25
26
  - - ">="
26
27
  - !ruby/object:Gem::Version
@@ -56,6 +57,7 @@ rdoc_options:
56
57
  require_paths:
57
58
  - lib
58
59
  required_ruby_version: !ruby/object:Gem::Requirement
60
+ none: false
59
61
  requirements:
60
62
  - - ">="
61
63
  - !ruby/object:Gem::Version
@@ -63,6 +65,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
63
65
  - 0
64
66
  version: "0"
65
67
  required_rubygems_version: !ruby/object:Gem::Requirement
68
+ none: false
66
69
  requirements:
67
70
  - - ">="
68
71
  - !ruby/object:Gem::Version
@@ -72,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
75
  requirements: []
73
76
 
74
77
  rubyforge_project:
75
- rubygems_version: 1.3.6
78
+ rubygems_version: 1.3.7
76
79
  signing_key:
77
80
  specification_version: 3
78
81
  summary: A gem to parse Kindle's "My Clippings.txt" file into ruby objects.