readmill 0.0.1 → 0.1.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.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/lib/readmill/client.rb +14 -0
  3. data/lib/readmill/client/books.rb +14 -1
  4. data/lib/readmill/client/closing_remarks.rb +22 -0
  5. data/lib/readmill/client/comments.rb +34 -0
  6. data/lib/readmill/client/highlights.rb +52 -0
  7. data/lib/readmill/client/locations.rb +22 -0
  8. data/lib/readmill/client/periods.rb +22 -0
  9. data/lib/readmill/client/readings.rb +77 -0
  10. data/lib/readmill/client/users.rb +33 -0
  11. data/lib/readmill/version.rb +1 -1
  12. data/spec/cassettes/readmill/client/books_book/should_request_a_book_from_readmill.yml +4 -4
  13. data/spec/cassettes/readmill/client/books_book/should_return_a_book.yml +4 -4
  14. data/spec/cassettes/readmill/client/books_book/with_closing_remarks_true_should_request_readers_for_a_book_from_readmill.yml +58 -0
  15. data/spec/cassettes/readmill/client/books_book/with_closing_remarks_true_should_return_an_array_of_users.yml +58 -0
  16. data/spec/cassettes/readmill/client/books_book/with_readers_true_should_request_readers_for_a_book_from_readmill.yml +52 -0
  17. data/spec/cassettes/readmill/client/books_book/with_readers_true_should_return_an_array_of_users.yml +52 -0
  18. data/spec/cassettes/readmill/client/books_books/should_request_all_books_from_readmill.yml +67 -17
  19. data/spec/cassettes/readmill/client/books_books/should_return_an_array_of_books.yml +66 -47
  20. data/spec/cassettes/readmill/client/closing_remarks_closing_remark/should_request_a_closing_remark_from_readmill.yml +54 -0
  21. data/spec/cassettes/readmill/client/closing_remarks_closing_remark/should_return_a_closing_remark.yml +54 -0
  22. data/spec/cassettes/readmill/client/comments_comment/should_request_a_comment_from_readmill.yml +53 -0
  23. data/spec/cassettes/readmill/client/comments_comment/should_return_a_comment.yml +53 -0
  24. data/spec/cassettes/readmill/client/comments_comments/should_request_all_comments_from_readmill.yml +54 -0
  25. data/spec/cassettes/readmill/client/comments_comments/should_return_an_array_of_comments.yml +54 -0
  26. data/spec/cassettes/readmill/client/highlights_highlight/should_request_a_highlight_from_readmill.yml +61 -0
  27. data/spec/cassettes/readmill/client/highlights_highlight/should_return_a_highlight.yml +61 -0
  28. data/spec/cassettes/readmill/client/highlights_highlight/with_comments_true_should_return_an_array_of_comments.yml +54 -0
  29. data/spec/cassettes/readmill/client/highlights_highlight/with_comments_true_should_return_comments_for_the_highlight_from_readmill.yml +54 -0
  30. data/spec/cassettes/readmill/client/highlights_highlights/should_request_all_highlights_from_readmill.yml +182 -0
  31. data/spec/cassettes/readmill/client/highlights_highlights/should_return_an_array_of_highlights.yml +182 -0
  32. data/spec/cassettes/readmill/client/highlights_highlights/with_a_reading_id_should_request_all_highlights_for_the_reading.yml +66 -0
  33. data/spec/cassettes/readmill/client/highlights_highlights/with_a_user_id_should_request_all_highlights_for_the_user.yml +191 -0
  34. data/spec/cassettes/readmill/client/locations_locations/should_request_all_locations_from_readmill.yml +52 -0
  35. data/spec/cassettes/readmill/client/locations_locations/should_return_an_array_of_locations.yml +52 -0
  36. data/spec/cassettes/readmill/client/periods_periods/should_request_all_periods_from_readmill.yml +52 -0
  37. data/spec/cassettes/readmill/client/periods_periods/should_return_an_array_of_periods.yml +52 -0
  38. data/spec/cassettes/readmill/client/readings_reading/should_request_a_reading_from_readmill.yml +54 -0
  39. data/spec/cassettes/readmill/client/readings_reading/should_return_a_reading.yml +54 -0
  40. data/spec/cassettes/readmill/client/readings_reading/with_highlights_true_should_request_highlights_for_the_reading_from_readmill.yml +90 -0
  41. data/spec/cassettes/readmill/client/readings_reading/with_highlights_true_should_return_an_array_of_highlights.yml +90 -0
  42. data/spec/cassettes/readmill/client/readings_reading/with_locations_true_should_request_locations_for_the_reading_from_readmill.yml +52 -0
  43. data/spec/cassettes/readmill/client/readings_reading/with_locations_true_should_return_an_array_of_locations.yml +52 -0
  44. data/spec/cassettes/readmill/client/readings_reading/with_periods_true_and_locations_true_should_raise_an_argument_error.yml +52 -0
  45. data/spec/cassettes/readmill/client/readings_reading/with_periods_true_should_request_periods_for_the_reading_from_readmill.yml +52 -0
  46. data/spec/cassettes/readmill/client/readings_reading/with_periods_true_should_return_an_array_of_periods.yml +52 -0
  47. data/spec/cassettes/readmill/client/readings_readings/should_request_all_readings_from_readmill.yml +85 -0
  48. data/spec/cassettes/readmill/client/readings_readings/should_return_an_array_of_readings.yml +85 -0
  49. data/spec/cassettes/readmill/client/readings_readings/with_a_book_id_should_request_all_readings_for_the_book.yml +54 -0
  50. data/spec/cassettes/readmill/client/readings_readings/with_a_book_id_should_return_an_array_of_readings.yml +54 -0
  51. data/spec/cassettes/readmill/client/readings_readings/with_a_user_id_should_request_all_readings_for_the_user.yml +94 -0
  52. data/spec/cassettes/readmill/client/readings_readings/with_a_user_id_should_return_an_array_of_readings.yml +94 -0
  53. data/spec/cassettes/readmill/client/users_user/should_request_a_user_from_readmill.yml +54 -0
  54. data/spec/cassettes/readmill/client/users_user/should_return_a_user.yml +54 -0
  55. data/spec/cassettes/readmill/client/users_user/with_followers_true_should_request_all_followers_for_a_user.yml +86 -0
  56. data/spec/cassettes/readmill/client/users_user/with_followers_true_should_return_an_array_of_users.yml +86 -0
  57. data/spec/cassettes/readmill/client/users_user/with_followings_true_should_request_all_followings_for_a_user.yml +80 -0
  58. data/spec/cassettes/readmill/client/users_user/with_followings_true_should_return_an_array_of_users.yml +80 -0
  59. data/spec/readmill/client/books_spec.rb +44 -5
  60. data/spec/readmill/client/closing_remarks_spec.rb +19 -0
  61. data/spec/readmill/client/comments_spec.rb +33 -0
  62. data/spec/readmill/client/highlights_spec.rb +69 -0
  63. data/spec/readmill/client/locations_spec.rb +19 -0
  64. data/spec/readmill/client/periods_spec.rb +19 -0
  65. data/spec/readmill/client/readings_spec.rb +127 -0
  66. data/spec/readmill/client/users_spec.rb +57 -0
  67. metadata +108 -1
@@ -0,0 +1,191 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.readmill.com/v2/users/35202/highlights
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.8
12
+ Authorization:
13
+ - Client READMILL_CLIENT_ID
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Cache-Control:
24
+ - must-revalidate, private, max-age=0
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Date:
28
+ - Mon, 16 Dec 2013 06:18:48 GMT
29
+ Etag:
30
+ - '"16de7375a217e06c3285a7a13ad2e23e"'
31
+ Server:
32
+ - nginx/1.0.12
33
+ Status:
34
+ - 200 OK
35
+ X-Rack-Cache:
36
+ - miss
37
+ X-Request-Id:
38
+ - 950a8ffce01ecdfde8b4a90948c868f0
39
+ X-Runtime:
40
+ - '0.351753'
41
+ X-Ua-Compatible:
42
+ - IE=Edge,chrome=1
43
+ Content-Length:
44
+ - '24081'
45
+ Connection:
46
+ - keep-alive
47
+ body:
48
+ encoding: UTF-8
49
+ string: '{"pagination":{"next":"https://api.readmill.com/v2/users/35202/highlights?offset=0&order=highlighted_at&to=2013-06-25+05%3A21%3A21+UTC&user_id=35202"},"items":[{"highlight":{"id":827438,"position":0.973732,"content":"He
50
+ always fell asleep as easily as some great lazing cat, he only had to close
51
+ his eyes and moments later he\u2019d be gone, while my own mind kept on whirring
52
+ round with scattered thoughts and images.","highlighted_at":"2013-12-16T06:17:21Z","permalink":"orbgva","permalink_url":"https://readmill.com/keels223/reads/the-winter-sea/highlights/orbgva","user":{"id":35202,"username":"keels223","firstname":"Keely","fullname":"Keely
53
+ Galgano","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":1,"followings_count":6,"permalink_url":"https://readmill.com/keels223"},"locators":{"position":0.9737325,"mid":"He
54
+ always fell asleep as easily as some great lazing cat, he only had to close
55
+ his eyes and moments later he\u2019d be gone, while my own mind kept on whirring
56
+ round with scattered thoughts and images.","post":" I felt his breathing slow
57
+ aga","rmsdk":{"start":"text/part46.xhtml#point(/1/4/2/3/67/1:47)","end":"text/part46.xhtml#point(/1/4/2/3/67/1:245)"},"pre":"I
58
+ could hear it in his voice. "},"comments_count":0,"likes_count":0,"reading":{"id":439319}}},{"highlight":{"id":826994,"position":0.729259,"content":"\u2018Hope,\u2019
59
+ he told her, \u2018rarely enters into it. \u2019Tis action moves the world.","highlighted_at":"2013-12-16T04:21:17Z","permalink":"kxelzg","permalink_url":"https://readmill.com/keels223/reads/the-winter-sea/highlights/kxelzg","user":{"id":35202,"username":"keels223","firstname":"Keely","fullname":"Keely
60
+ Galgano","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":1,"followings_count":6,"permalink_url":"https://readmill.com/keels223"},"locators":{"position":0.7292588,"mid":"\u2018Hope,\u2019
61
+ he told her, \u2018rarely enters into it. \u2019Tis action moves the world.","post":"
62
+ If ye mind nothing else I\u2019ve ","rmsdk":{"start":"text/part35.xhtml#point(/1/4/2/3/75/1:0)","end":"text/part35.xhtml#point(/1/4/2/3/75/1:81)"},"pre":"afore
63
+ too long.\u2019 \u2018I hope so.\u2019 "},"comments_count":0,"likes_count":0,"reading":{"id":439319}}},{"highlight":{"id":802305,"position":0.0838301,"content":"The
64
+ true fruit of this century has little interest in coming to living-terms with
65
+ innovations; it just greedily grabs them all as they come along.","highlighted_at":"2013-12-11T07:17:47Z","permalink":"hal86g","permalink_url":"https://readmill.com/keels223/reads/the-midwich-cuckoos/highlights/hal86g","user":{"id":35202,"username":"keels223","firstname":"Keely","fullname":"Keely
66
+ Galgano","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":1,"followings_count":6,"permalink_url":"https://readmill.com/keels223"},"locators":{"position":0.08383008,"mid":"The
67
+ true fruit of this century has little interest in coming to living-terms with
68
+ innovations; it just greedily grabs them all as they come along.","post":"
69
+ Only when it encounters somet","rmsdk":{"start":"The_Midwich_Cuckoos_split_006.html#point(/1/4/2/38/3:48)","end":"The_Midwich_Cuckoos_split_006.html#point(/1/4/2/38/3:194)"},"pre":"the
70
+ existence of the problem. "},"comments_count":0,"likes_count":0,"reading":{"id":426803}}},{"highlight":{"id":802304,"position":0.0823715,"content":"We
71
+ don\u2019t seem to be good at integrating novelties with our social lives,
72
+ do we? The world of the etiquette book fell to pieces at the end of the last
73
+ century, and there has been no code of manners to tell us how to deal with
74
+ anything invented since. Not even rules for an individualist to break, which
75
+ is itself another blow at freedom. Rather a pity, don\u2019t you think?","highlighted_at":"2013-12-11T07:17:21Z","permalink":"vn93hq","permalink_url":"https://readmill.com/keels223/reads/the-midwich-cuckoos/highlights/vn93hq","user":{"id":35202,"username":"keels223","firstname":"Keely","fullname":"Keely
76
+ Galgano","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":1,"followings_count":6,"permalink_url":"https://readmill.com/keels223"},"locators":{"position":0.08237148,"mid":"We
77
+ don\u2019t seem to be good at integrating novelties with our social lives,
78
+ do we? The world of the etiquette book fell to pieces at the end of the last
79
+ century, and there has been no code of manners to tell us how to deal with
80
+ anything invented since. Not even rules for an individualist to break, which
81
+ is itself another blow at freedom. Rather a pity, don\u2019t you think?","post":"\u2019
82
+ \u2018Er, yes,\u2019 said Alan. \u2018I \u2013 er","rmsdk":{"start":"The_Midwich_Cuckoos_split_006.html#point(/1/4/2/34/1:3)","end":"The_Midwich_Cuckoos_split_006.html#point(/1/4/2/34/1:375)"},"pre":"tell
83
+ us. We shall never know. \u2018"},"comments_count":0,"likes_count":0,"reading":{"id":426803}}},{"highlight":{"id":689919,"position":0.0246339,"content":"Once
84
+ that occurred, MTV became The Singularity, the last media force that represented
85
+ an encompassing view of pop culture.","highlighted_at":"2013-11-13T04:55:39Z","permalink":"osrlzw","permalink_url":"https://readmill.com/keels223/reads/i-want-my-mtv/highlights/osrlzw","user":{"id":35202,"username":"keels223","firstname":"Keely","fullname":"Keely
86
+ Galgano","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":1,"followings_count":6,"permalink_url":"https://readmill.com/keels223"},"locators":{"position":0.02463386,"mid":"Once
87
+ that occurred, MTV became The Singularity, the last media force that represented
88
+ an encompassing view of pop culture.","post":" HISTORY HAS NOT RECORDED THE","rmsdk":{"start":"OEBPS/mark_9781101526415_oeb_itr_r1.xhtml#point(/1/4/41/3:200)","end":"OEBPS/mark_9781101526415_oeb_itr_r1.xhtml#point(/1/4/42:0)"},"pre":"
89
+ then built its brand around. "},"comments_count":0,"likes_count":0,"reading":{"id":353007}}},{"highlight":{"id":689915,"position":0.0226485,"content":"MTV
90
+ pissed off baby boomers, in part because it signified a transition from an
91
+ era when the biggest rock stars were bands that transformed public consciousness,
92
+ to one where technology filled that role.","highlighted_at":"2013-11-13T04:54:23Z","permalink":"pkjzjg","permalink_url":"https://readmill.com/keels223/reads/i-want-my-mtv/highlights/pkjzjg","user":{"id":35202,"username":"keels223","firstname":"Keely","fullname":"Keely
93
+ Galgano","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":1,"followings_count":6,"permalink_url":"https://readmill.com/keels223"},"locators":{"position":0.02264848,"mid":"MTV
94
+ pissed off baby boomers, in part because it signified a transition from an
95
+ era when the biggest rock stars were bands that transformed public consciousness,
96
+ to one where technology filled that role.","post":" Today, that transformation
97
+ is","rmsdk":{"start":"OEBPS/mark_9781101526415_oeb_itr_r1.xhtml#point(/1/4/33/1:38)","end":"OEBPS/mark_9781101526415_oeb_itr_r1.xhtml#point(/1/4/33/1:240)"},"pre":"it
98
+ accomplished nothing else, "},"comments_count":0,"likes_count":0,"reading":{"id":353007}}},{"highlight":{"id":689913,"position":0.0201818,"content":"1992
99
+ marks the end of MTV\u2019s Golden Era","highlighted_at":"2013-11-13T04:52:22Z","permalink":"34onqa","permalink_url":"https://readmill.com/keels223/reads/i-want-my-mtv/highlights/34onqa","user":{"id":35202,"username":"keels223","firstname":"Keely","fullname":"Keely
100
+ Galgano","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":1,"followings_count":6,"permalink_url":"https://readmill.com/keels223"},"locators":{"position":0.02018182,"mid":"1992
101
+ marks the end of MTV\u2019s Golden Era","post":", which was brought to a close","rmsdk":{"start":"OEBPS/mark_9781101526415_oeb_itr_r1.xhtml#point(/1/4/26/1:12)","end":"OEBPS/mark_9781101526415_oeb_itr_r1.xhtml#point(/1/4/26/1:52)"},"pre":"new,
102
+ young blood. But for us, "},"comments_count":0,"likes_count":0,"reading":{"id":353007}}},{"highlight":{"id":689912,"position":0.0197634,"content":"As
103
+ the subject of an oral history, MTV is uniquely compelling; the network identity
104
+ morphs but never peters out. There\u2019s no dreary third act where the star
105
+ gets old, Learns an Important Lesson, and ceases being relevant. Like Charlie
106
+ Brown or Beavis and Butt-head, the passing of time does not age MTV. It is
107
+ perpetually fourteen years old, about to start high school, excited, but not
108
+ too smart. With vampiric persistence, the network perpetually finds new, young
109
+ blood.","highlighted_at":"2013-11-13T04:52:04Z","permalink":"-2bpug","permalink_url":"https://readmill.com/keels223/reads/i-want-my-mtv/highlights/-2bpug","user":{"id":35202,"username":"keels223","firstname":"Keely","fullname":"Keely
110
+ Galgano","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":1,"followings_count":6,"permalink_url":"https://readmill.com/keels223"},"locators":{"position":0.01976339,"mid":"As
111
+ the subject of an oral history, MTV is uniquely compelling; the network identity
112
+ morphs but never peters out. There\u2019s no dreary third act where the star
113
+ gets old, Learns an Important Lesson, and ceases being relevant. Like Charlie
114
+ Brown or Beavis and Butt-head, the passing of time does not age MTV. It is
115
+ perpetually fourteen years old, about to start high school, excited, but not
116
+ too smart. With vampiric persistence, the network perpetually finds new, young
117
+ blood.","post":" But for us, 1992 marks the en","rmsdk":{"start":"OEBPS/mark_9781101526415_oeb_itr_r1.xhtml#point(/1/4/24/1:0)","end":"OEBPS/mark_9781101526415_oeb_itr_r1.xhtml#point(/1/4/25:0)"},"pre":"\u201cA
118
+ Whopping, Steaming Turd.\u201d) "},"comments_count":0,"likes_count":0,"reading":{"id":353007}}},{"highlight":{"id":650414,"position":0.276296,"content":"His
119
+ whole personality was like an elaborate joke that he never stopped telling.","highlighted_at":"2013-10-21T22:09:00Z","permalink":"tsafna","permalink_url":"https://readmill.com/keels223/reads/sample-the-magicians/highlights/tsafna","user":{"id":35202,"username":"keels223","firstname":"Keely","fullname":"Keely
120
+ Galgano","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":1,"followings_count":6,"permalink_url":"https://readmill.com/keels223"},"locators":{"position":0.276296,"mid":"His
121
+ whole personality was like an elaborate joke that he never stopped telling.","post":"
122
+ It took Quentin a while to fi","rmsdk":{"start":"OEBPS/gros_9781101082287_oeb_c08_r1.xhtml#point(/1/4/12/1:207)","end":"OEBPS/gros_9781101082287_oeb_c08_r1.xhtml#point(/1/4/12/1:286)"},"pre":"
123
+ too narrow in the shoulders. "},"comments_count":0,"likes_count":0,"reading":{"id":323386}}},{"highlight":{"id":646159,"position":0.11913,"content":"Meaning\u2014is
124
+ that what magic was?\u2014was everywhere here.","highlighted_at":"2013-10-19T22:25:19Z","permalink":"uuav1w","permalink_url":"https://readmill.com/keels223/reads/sample-the-magicians/highlights/uuav1w","user":{"id":35202,"username":"keels223","firstname":"Keely","fullname":"Keely
125
+ Galgano","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":1,"followings_count":6,"permalink_url":"https://readmill.com/keels223"},"locators":{"position":0.1191297,"mid":"Meaning\u2014is
126
+ that what magic was?\u2014was everywhere here.","post":" The place was crawling
127
+ with i","rmsdk":{"start":"OEBPS/gros_9781101082287_oeb_c03_r1.xhtml#point(/1/4/106/1:725)","end":"OEBPS/gros_9781101082287_oeb_c03_r1.xhtml#point(/1/4/106/1:781)"},"pre":"s
128
+ was different. It mattered. "},"comments_count":0,"likes_count":0,"reading":{"id":323386}}},{"highlight":{"id":638352,"position":0.632044,"content":"Because
129
+ sometimes, you need to help the heroes along.","highlighted_at":"2013-10-16T03:11:19Z","permalink":"8ppxgg","permalink_url":"https://readmill.com/keels223/reads/steelheart/highlights/8ppxgg","user":{"id":35202,"username":"keels223","firstname":"Keely","fullname":"Keely
130
+ Galgano","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":1,"followings_count":6,"permalink_url":"https://readmill.com/keels223"},"locators":{"position":0.6320438,"mid":"Because
131
+ sometimes, you need to help the heroes along.","post":" I stood up. Somehow
132
+ I knew, i","rmsdk":{"start":"OEBPS/Sand_9780449818398_epub_c25_r1.htm#point(/1/4/128/1:182)","end":"OEBPS/Sand_9780449818398_epub_c25_r1.htm#point(/1/4/128/1:235)"},"pre":"
133
+ chance, to stop the murders. "},"comments_count":0,"likes_count":0,"reading":{"id":319779}}},{"highlight":{"id":532004,"position":0.43267,"content":"Doom
134
+ Bar","highlighted_at":"2013-07-31T04:55:23Z","permalink":"gvafwq","permalink_url":"https://readmill.com/keels223/reads/the-cuckoos-calling/highlights/gvafwq","user":{"id":35202,"username":"keels223","firstname":"Keely","fullname":"Keely
135
+ Galgano","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":1,"followings_count":6,"permalink_url":"https://readmill.com/keels223"},"locators":{"position":0.43266963958740234,"mid":"Doom
136
+ Bar","post":" and read his paper.Bristow wa","pre":" the water, ordered a
137
+ pint of "},"comments_count":0,"likes_count":0,"reading":{"id":242346}}},{"highlight":{"id":497904,"position":0.665903,"content":"there
138
+ is nothing more morbid than being unhappy while the sun shines down on you.","highlighted_at":"2013-07-03T04:04:22Z","permalink":"lf3bsa","permalink_url":"https://readmill.com/keels223/reads/the-perfume-collector/highlights/lf3bsa","user":{"id":35202,"username":"keels223","firstname":"Keely","fullname":"Keely
139
+ Galgano","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":1,"followings_count":6,"permalink_url":"https://readmill.com/keels223"},"locators":{"position":0.6659030318260193,"mid":"there
140
+ is nothing more morbid than being unhappy while the sun shines down on you.","post":"\u2019
141
+ She opened her handbag and t","pre":"nted out. \u2018Also,\u2019 she added,
142
+ \u2018"},"comments_count":0,"likes_count":0,"reading":{"id":229897}}},{"highlight":{"id":497903,"position":0.665452,"content":"Because
143
+ all this sunshine is uncivilized, Fran\u00e7ois. Great conversations cannot
144
+ be had by a poolside. I long for the roll of thunder, the darkening sky, the
145
+ sudden eruption of a cold refreshing shower!","highlighted_at":"2013-07-03T04:03:51Z","permalink":"95u9mq","permalink_url":"https://readmill.com/keels223/reads/the-perfume-collector/highlights/95u9mq","user":{"id":35202,"username":"keels223","firstname":"Keely","fullname":"Keely
146
+ Galgano","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":1,"followings_count":6,"permalink_url":"https://readmill.com/keels223"},"locators":{"position":0.66545170545578,"mid":"Because
147
+ all this sunshine is uncivilized, Fran\u00e7ois. Great conversations cannot
148
+ be had by a poolside. I long for the roll of thunder, the darkening sky, the
149
+ sudden eruption of a cold refreshing shower!","post":"\u2019 She sighed again.
150
+ \u2018You have ","pre":"y you want it to rain. Why?\u2019 \u2018"},"comments_count":0,"likes_count":0,"reading":{"id":229897}}},{"highlight":{"id":494431,"position":0.199305,"content":"People
151
+ take for granted what is in fact an art. To live well, to live comfortably
152
+ by one\u2019s own standards takes a certain maturity of spirit, exceptional
153
+ character, truly refined taste, and\u2014\u2019","highlighted_at":"2013-06-30T03:00:18Z","permalink":"jupvcw","permalink_url":"https://readmill.com/keels223/reads/the-perfume-collector/highlights/jupvcw","user":{"id":35202,"username":"keels223","firstname":"Keely","fullname":"Keely
154
+ Galgano","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":1,"followings_count":6,"permalink_url":"https://readmill.com/keels223"},"locators":{"position":0.19930480420589447,"mid":"People
155
+ take for granted what is in fact an art. To live well, to live comfortably
156
+ by one\u2019s own standards takes a certain maturity of spirit, exceptional
157
+ character, truly refined taste, and\u2014\u2019","post":" \u2018And money.\u2019
158
+ She tore off ano","pre":" me?\u2019 \u2018No, I\u2019m quite serious. "},"comments_count":0,"likes_count":0,"reading":{"id":229897}}},{"highlight":{"id":493759,"position":0.904657,"content":"Nothing\u2019s
159
+ ever the same,\u2019 she said. \u2018Be it a second later or a hundred years.
160
+ It\u2019s always churning and roiling. And people change as much as oceans.\u2019","highlighted_at":"2013-06-29T05:32:59Z","permalink":"4bquaq","permalink_url":"https://readmill.com/keels223/reads/the-ocean-at-the-end-of-the-lane/highlights/4bquaq","user":{"id":35202,"username":"keels223","firstname":"Keely","fullname":"Keely
161
+ Galgano","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":1,"followings_count":6,"permalink_url":"https://readmill.com/keels223"},"locators":{"position":0.9046570062637329,"mid":"Nothing\u2019s
162
+ ever the same,\u2019 she said. \u2018Be it a second later or a hundred years.
163
+ It\u2019s always churning and roiling. And people change as much as oceans.\u2019","post":"
164
+ Ginnie clambered out of the w","pre":"niest thing in the universe. \u2018"},"comments_count":0,"likes_count":0,"reading":{"id":226088}}},{"highlight":{"id":490149,"position":0.656153,"content":"Children,
165
+ as I have said, use back ways and hidden tracks, while adults take roads and
166
+ official paths.","highlighted_at":"2013-06-26T04:10:16Z","permalink":"eumu_q","permalink_url":"https://readmill.com/keels223/reads/the-ocean-at-the-end-of-the-lane/highlights/eumu_q","user":{"id":35202,"username":"keels223","firstname":"Keely","fullname":"Keely
167
+ Galgano","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":1,"followings_count":6,"permalink_url":"https://readmill.com/keels223"},"locators":{"position":0.6561525464057922,"mid":"Children,
168
+ as I have said, use back ways and hidden tracks, while adults take roads and
169
+ official paths.","post":" We went off the road, took a ","pre":"shadows dissolved
170
+ in vinegar. "},"comments_count":0,"likes_count":0,"reading":{"id":226088}}},{"highlight":{"id":490121,"position":0.557014,"content":"For
171
+ dessert, we had the pie, stuffed with apples and with swollen raisins and
172
+ crushed nuts, all topped with a thick yellow custard, creamier and richer
173
+ than anything I had ever tasted at school or at home.","highlighted_at":"2013-06-26T03:31:46Z","permalink":"4ijt8w","permalink_url":"https://readmill.com/keels223/reads/the-ocean-at-the-end-of-the-lane/highlights/4ijt8w","user":{"id":35202,"username":"keels223","firstname":"Keely","fullname":"Keely
174
+ Galgano","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":1,"followings_count":6,"permalink_url":"https://readmill.com/keels223"},"locators":{"position":0.5570139288902283,"mid":"For
175
+ dessert, we had the pie, stuffed with apples and with swollen raisins and
176
+ crushed nuts, all topped with a thick yellow custard, creamier and richer
177
+ than anything I had ever tasted at school or at home.","post":" The kitten
178
+ slept on a cushion","pre":"or the rest of my childhood). "},"comments_count":0,"likes_count":0,"reading":{"id":226088}}},{"highlight":{"id":489216,"position":0.383824,"content":"I
179
+ went away in my head, into a book. That was where I went whenever real life
180
+ was too hard or too inflexible","highlighted_at":"2013-06-25T05:25:56Z","permalink":"wljdtw","permalink_url":"https://readmill.com/keels223/reads/the-ocean-at-the-end-of-the-lane/highlights/wljdtw","user":{"id":35202,"username":"keels223","firstname":"Keely","fullname":"Keely
181
+ Galgano","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":1,"followings_count":6,"permalink_url":"https://readmill.com/keels223"},"locators":{"position":0.3838241696357727,"mid":"I
182
+ went away in my head, into a book. That was where I went whenever real life
183
+ was too hard or too inflexible","post":". I pulled down a handful of m","pre":"d,
184
+ and now my chest hurt too. "},"comments_count":0,"likes_count":0,"reading":{"id":226088}}},{"highlight":{"id":489209,"position":0.372333,"content":"the
185
+ paths, to creep beneath rhododendrons, to find the spaces between fences.","highlighted_at":"2013-06-25T05:21:29Z","permalink":"bo86zw","permalink_url":"https://readmill.com/keels223/reads/the-ocean-at-the-end-of-the-lane/highlights/bo86zw","user":{"id":35202,"username":"keels223","firstname":"Keely","fullname":"Keely
186
+ Galgano","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":1,"followings_count":6,"permalink_url":"https://readmill.com/keels223"},"locators":{"position":0.3723325729370117,"mid":"the
187
+ paths, to creep beneath rhododendrons, to find the spaces between fences.","post":"
188
+ I was a child, and I knew a d","pre":" occurs to adults to step off "},"comments_count":0,"likes_count":0,"reading":{"id":226088}}}],"status":200}'
189
+ http_version:
190
+ recorded_at: Mon, 16 Dec 2013 06:18:48 GMT
191
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,52 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.readmill.com/v2/readings/443173/locations
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.8
12
+ Authorization:
13
+ - Client READMILL_CLIENT_ID
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Cache-Control:
24
+ - must-revalidate, private, max-age=0
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Date:
28
+ - Mon, 16 Dec 2013 05:58:01 GMT
29
+ Etag:
30
+ - '"3f2b6030822df2e9cfc2cbe51a9578f6"'
31
+ Server:
32
+ - nginx/1.0.12
33
+ Status:
34
+ - 200 OK
35
+ X-Rack-Cache:
36
+ - miss
37
+ X-Request-Id:
38
+ - 02565bcdcbe4d1e5e47290af9d0af37e
39
+ X-Runtime:
40
+ - '0.053578'
41
+ X-Ua-Compatible:
42
+ - IE=Edge,chrome=1
43
+ Content-Length:
44
+ - '52'
45
+ Connection:
46
+ - keep-alive
47
+ body:
48
+ encoding: UTF-8
49
+ string: '{"pagination":{"next":null},"items":[{"location":{"id":9298,"created_at":"2011-12-25T15:50:31Z","period":{"id":7582},"reading":{"id":32900},"lat":47.442,"lng":8.59787}}],"status":200}'
50
+ http_version:
51
+ recorded_at: Mon, 16 Dec 2013 05:58:00 GMT
52
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,52 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.readmill.com/v2/readings/443173/locations
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.8
12
+ Authorization:
13
+ - Client READMILL_CLIENT_ID
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Cache-Control:
24
+ - must-revalidate, private, max-age=0
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Date:
28
+ - Mon, 16 Dec 2013 05:58:02 GMT
29
+ Etag:
30
+ - '"3f2b6030822df2e9cfc2cbe51a9578f6"'
31
+ Server:
32
+ - nginx/1.0.12
33
+ Status:
34
+ - 200 OK
35
+ X-Rack-Cache:
36
+ - miss
37
+ X-Request-Id:
38
+ - cfb10f6b7e49cff9a09a06a5287def41
39
+ X-Runtime:
40
+ - '0.046290'
41
+ X-Ua-Compatible:
42
+ - IE=Edge,chrome=1
43
+ Content-Length:
44
+ - '52'
45
+ Connection:
46
+ - keep-alive
47
+ body:
48
+ encoding: UTF-8
49
+ string: '{"pagination":{"next":null},"items":[{"location":{"id":9298,"created_at":"2011-12-25T15:50:31Z","period":{"id":7582},"reading":{"id":32900},"lat":47.442,"lng":8.59787}}],"status":200}'
50
+ http_version:
51
+ recorded_at: Mon, 16 Dec 2013 05:58:01 GMT
52
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,52 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.readmill.com/v2/readings/443173/periods
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.8
12
+ Authorization:
13
+ - Client READMILL_CLIENT_ID
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Cache-Control:
24
+ - must-revalidate, private, max-age=0
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Date:
28
+ - Mon, 16 Dec 2013 05:39:53 GMT
29
+ Etag:
30
+ - '"51dc037277c5844eb1de114db85e1af9"'
31
+ Server:
32
+ - nginx/1.0.12
33
+ Status:
34
+ - 200 OK
35
+ X-Rack-Cache:
36
+ - miss
37
+ X-Request-Id:
38
+ - 7bc609bb44b0677e6d724840583056eb
39
+ X-Runtime:
40
+ - '0.044289'
41
+ X-Ua-Compatible:
42
+ - IE=Edge,chrome=1
43
+ Content-Length:
44
+ - '291'
45
+ Connection:
46
+ - keep-alive
47
+ body:
48
+ encoding: UTF-8
49
+ string: '{"pagination":{"next":null},"items":[{"period":{"id":833450,"reading":{"id":443173},"user":{"id":45146},"started_at":"2013-12-16T04:12:43Z","duration":1500,"progress":0.368301,"identifier":"0DAEE845-E044-491E-B1BD-08A096CBE6EB-1831-000004C9D8C627EF","locations":{"items":[]}}}],"status":200}'
50
+ http_version:
51
+ recorded_at: Mon, 16 Dec 2013 05:39:53 GMT
52
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,52 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.readmill.com/v2/readings/443173/periods
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.8
12
+ Authorization:
13
+ - Client READMILL_CLIENT_ID
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Cache-Control:
24
+ - must-revalidate, private, max-age=0
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Date:
28
+ - Mon, 16 Dec 2013 05:39:54 GMT
29
+ Etag:
30
+ - '"51dc037277c5844eb1de114db85e1af9"'
31
+ Server:
32
+ - nginx/1.0.12
33
+ Status:
34
+ - 200 OK
35
+ X-Rack-Cache:
36
+ - miss
37
+ X-Request-Id:
38
+ - bcfef034d1fb0565c491fffc9ad25e39
39
+ X-Runtime:
40
+ - '0.029913'
41
+ X-Ua-Compatible:
42
+ - IE=Edge,chrome=1
43
+ Content-Length:
44
+ - '291'
45
+ Connection:
46
+ - keep-alive
47
+ body:
48
+ encoding: UTF-8
49
+ string: '{"pagination":{"next":null},"items":[{"period":{"id":833450,"reading":{"id":443173},"user":{"id":45146},"started_at":"2013-12-16T04:12:43Z","duration":1500,"progress":0.368301,"identifier":"0DAEE845-E044-491E-B1BD-08A096CBE6EB-1831-000004C9D8C627EF","locations":{"items":[]}}}],"status":200}'
50
+ http_version:
51
+ recorded_at: Mon, 16 Dec 2013 05:39:53 GMT
52
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,54 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.readmill.com/v2/readings/443173
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.8
12
+ Authorization:
13
+ - Client READMILL_CLIENT_ID
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Cache-Control:
24
+ - must-revalidate, private, max-age=0
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Date:
28
+ - Mon, 16 Dec 2013 04:19:58 GMT
29
+ Etag:
30
+ - '"4e89d2bd103ab0507d502f33a339ddb0"'
31
+ Server:
32
+ - nginx/1.0.12
33
+ Status:
34
+ - 200 OK
35
+ X-Rack-Cache:
36
+ - miss
37
+ X-Request-Id:
38
+ - ad5743138f62368f915a7503f8d68f55
39
+ X-Runtime:
40
+ - '0.109727'
41
+ X-Ua-Compatible:
42
+ - IE=Edge,chrome=1
43
+ Content-Length:
44
+ - '1385'
45
+ Connection:
46
+ - keep-alive
47
+ body:
48
+ encoding: UTF-8
49
+ string: '{"reading":{"id":443173,"state":"reading","private":false,"recommended":false,"closing_remark":null,"created_at":"2013-12-16T04:07:43Z","started_at":"2013-12-16T04:07:43Z","touched_at":"2013-12-16T04:12:43Z","ended_at":null,"duration":300,"progress":0.0861162,"estimated_time_left":3033,"average_period_time":300,"book":{"id":269082,"title":"Kiss
50
+ of the Night","author":"Sylvia Day","permalink":"kiss-of-the-night-1","permalink_url":"https://readmill.com/books/kiss-of-the-night-1","cover_url":"https://d26cmntuippvfl.cloudfront.net/?action=shrink-w&format=png&origin=https%253A%252F%252Freadmill-assets.s3.amazonaws.com%252Fcovers%252F4d5deed826e6b739311670ad175ff7029e353b21-original.png&width=120","cover_metadata":{"original_width":476,"original_height":616}},"user":{"id":45146,"username":"peckjo","firstname":"Joanna","fullname":"Joanna
51
+ Peck","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Fd15fum6h02z48v.cloudfront.net%252Fassets%252Fdefault-avatar-original-b0c7339fbb5969b50914c1a731503733.png&width=50","followers_count":0,"followings_count":1,"permalink_url":"https://readmill.com/peckjo"},"permalink_url":"https://readmill.com/peckjo/reads/kiss-of-the-night-1","comments_count":0,"highlights_count":0,"position":0.0861162,"position_updated_at":"2013-12-16T04:12:56Z","entities":{"hashtags":[]}},"status":200}'
52
+ http_version:
53
+ recorded_at: Mon, 16 Dec 2013 04:19:57 GMT
54
+ recorded_with: VCR 2.8.0