kindleclippings 1.1.3 → 1.2.0

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