readmill 0.0.1 → 0.1.0

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