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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f35c2ae9772b9f8842eb4df1bcee5bd376c30638
4
- data.tar.gz: aed7f792b72a72241fc10a8fd8c46c08bcb10512
3
+ metadata.gz: 55c086e83317810f068f131e638c71755df3078e
4
+ data.tar.gz: ccbea744db0d118d0583043f10431f2d43ceac97
5
5
  SHA512:
6
- metadata.gz: d1f11152644b7e4632f7c8739d5c06b2dcbf6af1a156c7e83c012f353ab92ff914f4c6e9340454ace05c88bdfc7355e50b1144fc88512d552c819d4834aba59e
7
- data.tar.gz: 7fa1db95bb331efceaff34b92c2688995ac17d9ac009789418b60724b393e61299c06aeebb3f7529e45b907699f337a13594cc2868ec5554ee01e85424af8aad
6
+ metadata.gz: be1e06390ff1343a8b003e3fc3a3e75476e807fdb17264c148c1bab41bb7c3fa126e6a7ac34391806e191a4d6ffced624b6741369b285813fc20a531fa832402
7
+ data.tar.gz: 5454a0d403da7b5dfe47cb378ea43f5653a3aee31563ba54d72f038762b6e3e56a57896bf64c8a4e952a0e338953528579991938a8f99ecf98a189f93006dcf3
@@ -1,6 +1,13 @@
1
1
  require 'readmill/request'
2
2
  require 'readmill/configuration'
3
3
  require 'readmill/client/books'
4
+ require 'readmill/client/closing_remarks'
5
+ require 'readmill/client/comments'
6
+ require 'readmill/client/highlights'
7
+ require 'readmill/client/locations'
8
+ require 'readmill/client/periods'
9
+ require 'readmill/client/readings'
10
+ require 'readmill/client/users'
4
11
 
5
12
  module Readmill
6
13
 
@@ -35,6 +42,13 @@ module Readmill
35
42
 
36
43
  include Readmill::Request
37
44
  include Readmill::Client::Books
45
+ include Readmill::Client::ClosingRemarks
46
+ include Readmill::Client::Comments
47
+ include Readmill::Client::Highlights
48
+ include Readmill::Client::Locations
49
+ include Readmill::Client::Periods
50
+ include Readmill::Client::Readings
51
+ include Readmill::Client::Users
38
52
 
39
53
  end
40
54
 
@@ -22,10 +22,23 @@ module Readmill
22
22
  # opts - A Hash of options used to modify the results. All of the values
23
23
  # of this Hash will be forwarded to the API as parameters
24
24
  # (default: {}).
25
+ # :readers - Boolean whether or not to get readers of a book
26
+ # (default: false).
25
27
  #
26
28
  # Returns a Hashie::Mash.
27
29
  def book(id, opts={})
28
- get("books/#{id}", opts)
30
+ if opts[:closing_remarks] && opts[:readers]
31
+ raise ArgumentError,
32
+ 'You can pass either closing_remarks or readers, but not both.'
33
+ end
34
+
35
+ if opts.delete(:closing_remarks)
36
+ get("books/#{id}/closing_remarks", opts).items
37
+ elsif opts.delete(:readers)
38
+ get("books/#{id}/readers", opts).items
39
+ else
40
+ get("books/#{id}", opts)
41
+ end
29
42
  end
30
43
 
31
44
  end
@@ -0,0 +1,22 @@
1
+ module Readmill
2
+ class Client
3
+
4
+ # Public: This module will bring all of the methods from the closing_remark
5
+ # section of the API.
6
+ module ClosingRemarks
7
+
8
+ # Public: Get a specific closing_remark from readmill.
9
+ #
10
+ # id - The id of a closing_remark to get from readmill.
11
+ # opts - A Hash of options used to modify the results. All of the values
12
+ # of this Hash will be forwarded to the API as parameters
13
+ # (default: {}).
14
+ #
15
+ # Returns a Hashie::Mash.
16
+ def closing_remark(id, opts={})
17
+ get("closing_remarks/#{id}", opts)
18
+ end
19
+
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,34 @@
1
+ module Readmill
2
+ class Client
3
+
4
+ # Public: This module will bring all of the methods from the comment
5
+ # section of the API.
6
+ module Comments
7
+
8
+ # Public: Get all comments from readmill.
9
+ #
10
+ # highlight_id - An id of a highlight to get comments for.
11
+ # opts - A Hash of options used to modify the results. All of the
12
+ # values of this Hash will be forwarded to the API as
13
+ # parameters (default: {}).
14
+ #
15
+ # Returns an Array.
16
+ def comments(highlight_id, opts={})
17
+ get("highlights/#{highlight_id}/comments", opts).items
18
+ end
19
+
20
+ # Public: Get a specific comment from readmill.
21
+ #
22
+ # id - The id of a comment to get from readmill.
23
+ # opts - A Hash of options used to modify the results. All of the values
24
+ # of this Hash will be forwarded to the API as parameters
25
+ # (default: {}).
26
+ #
27
+ # Returns a Hashie::Mash.
28
+ def comment(id, opts={})
29
+ get("comments/#{id}", opts)
30
+ end
31
+
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,52 @@
1
+ module Readmill
2
+ class Client
3
+
4
+ # Public: This module will bring all of the methods from the highlight
5
+ # section of the API.
6
+ module Highlights
7
+
8
+ # Public: Get all highlights from readmill.
9
+ #
10
+ # opts - A Hash of options used to modify the results. All of the values
11
+ # of this Hash will be forwarded to the API as parameters
12
+ # (default: {}).
13
+ # :reading_id - Limit the highlights to a specific reading.
14
+ # :user_id - Limit the highlights to a specific user.
15
+ #
16
+ # Returns an Array.
17
+ def highlights(opts={})
18
+ if !opts[:user_id].nil? && !opts[:reading_id].nil?
19
+ raise ArgumentError,
20
+ 'You can pass either reading_id or user_id, but not both.'
21
+ end
22
+
23
+ if !opts[:user_id].nil?
24
+ url = "users/#{opts.delete(:user_id)}/highlights"
25
+ elsif !opts[:reading_id].nil?
26
+ url = "readings/#{opts.delete(:reading_id)}/highlights"
27
+ else
28
+ url = 'highlights'
29
+ end
30
+
31
+ get(url, opts).items
32
+ end
33
+
34
+ # Public: Get a specific highlight from readmill.
35
+ #
36
+ # id - The id of a highlight to get from readmill.
37
+ # opts - A Hash of options used to modify the results. All of the values
38
+ # of this Hash will be forwarded to the API as parameters
39
+ # (default: {}).
40
+ #
41
+ # Returns a Hashie::Mash.
42
+ def highlight(id, opts={})
43
+ if opts.delete(:comments)
44
+ get("highlights/#{id}/comments", opts).items
45
+ else
46
+ get("highlights/#{id}", opts)
47
+ end
48
+ end
49
+
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,22 @@
1
+ module Readmill
2
+ class Client
3
+
4
+ # Public: This module will bring all of the methods from the location
5
+ # section of the API.
6
+ module Locations
7
+
8
+ # Public: Get locations for a reading from readmill.
9
+ #
10
+ # reading_id - An id of the reading to get locations for.
11
+ # opts - A Hash of options used to modify the results. All of the
12
+ # values of this Hash will be forwarded to the API as
13
+ # parameters (default: {}).
14
+ #
15
+ # Returns an Array.
16
+ def locations(reading_id, opts={})
17
+ get("readings/#{reading_id}/locations", opts).items
18
+ end
19
+
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ module Readmill
2
+ class Client
3
+
4
+ # Public: This module will bring all of the methods from the period section
5
+ # of the API.
6
+ module Periods
7
+
8
+ # Public: Get periods for a reading from readmill.
9
+ #
10
+ # reading_id - An id of the reading to get periods for.
11
+ # opts - A Hash of options used to modify the results. All of the
12
+ # values of this Hash will be forwarded to the API as
13
+ # parameters (default: {}).
14
+ #
15
+ # Returns an Array.
16
+ def periods(reading_id, opts={})
17
+ get("readings/#{reading_id}/periods", opts).items
18
+ end
19
+
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,77 @@
1
+ module Readmill
2
+ class Client
3
+
4
+ # Public: This module will bring all of the methods from the reading section
5
+ # of the API.
6
+ module Readings
7
+
8
+ # Public: Get all readings from readmill.
9
+ #
10
+ # opts - A Hash of options used to modify the results. All of the values
11
+ # of this Hash will be forwarded to the API as parameters
12
+ # (default: {}).
13
+ # :book_id - Limit the readings to a specific book.
14
+ # :user_id - Limit the readings to a specific user.
15
+ #
16
+ # Returns an Array.
17
+ def readings(opts={})
18
+ if !opts[:user_id].nil? && !opts[:book_id].nil?
19
+ raise ArgumentError,
20
+ 'You can pass either book_id or user_id, but not both.'
21
+ end
22
+
23
+ if !opts[:user_id].nil?
24
+ url = "users/#{opts.delete(:user_id)}/readings"
25
+ elsif !opts[:book_id].nil?
26
+ url = "books/#{opts.delete(:book_id)}/readings"
27
+ else
28
+ url = 'readings'
29
+ end
30
+
31
+ get(url, opts).items
32
+ end
33
+
34
+ # Public: Get a specific reading from readmill.
35
+ #
36
+ # id - The id of a reading to get from readmill.
37
+ # opts - A Hash of options used to modify the results. All of the values
38
+ # of this Hash will be forwarded to the API as parameters
39
+ # (default: {}).
40
+ # :periods - Boolean whether to get the periods or not
41
+ # (default: false).
42
+ # :locations - Boolean whether to get the locations or not
43
+ # (default: false).
44
+ #
45
+ # Returns a Hashie::Mash.
46
+ def reading(id, opts={})
47
+ ensure_valid_reading_options(opts)
48
+
49
+ if opts.delete(:periods)
50
+ get("readings/#{id}/periods", opts).items
51
+ elsif opts.delete(:locations)
52
+ get("readings/#{id}/locations", opts).items
53
+ elsif opts.delete(:highlights)
54
+ get("readings/#{id}/highlights", opts).items
55
+ else
56
+ get("readings/#{id}", opts)
57
+ end
58
+ end
59
+
60
+
61
+ protected
62
+
63
+ # Internal: This method will raise an error if any two of periods,
64
+ # locations, or highlights is true.
65
+ #
66
+ # Raises ArgumentError.
67
+ # Returns nothing.
68
+ def ensure_valid_reading_options(opts)
69
+ if opts.values_at(:periods, :locations, :highlights).grep(true).size > 1
70
+ raise ArgumentError,
71
+ 'You can only set one of periods, locations, and highlights.'
72
+ end
73
+ end
74
+
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,33 @@
1
+ module Readmill
2
+ class Client
3
+
4
+ # Public: This module will bring all of the methods from the user
5
+ # section of the API.
6
+ module Users
7
+
8
+ # Public: Get a specific user from readmill.
9
+ #
10
+ # id - The id of a user to get from readmill.
11
+ # opts - A Hash of options used to modify the results. All of the values
12
+ # of this Hash will be forwarded to the API as parameters
13
+ # (default: {}).
14
+ #
15
+ # Returns a Hashie::Mash.
16
+ def user(id, opts={})
17
+ if opts[:followers] && opts[:followings]
18
+ raise ArgumentError,
19
+ 'You can pass either followers or followings, but not both.'
20
+ end
21
+
22
+ if opts.delete(:followers)
23
+ get("users/#{id}/followers", opts).items
24
+ elsif opts.delete(:followings)
25
+ get("users/#{id}/followings", opts).items
26
+ else
27
+ get("users/#{id}", opts)
28
+ end
29
+ end
30
+
31
+ end
32
+ end
33
+ end
@@ -1,6 +1,6 @@
1
1
  module Readmill
2
2
 
3
3
  # Public: The version of the Readmill gem.
4
- VERSION = '0.0.1'.freeze
4
+ VERSION = '0.1.0'.freeze
5
5
 
6
6
  end
@@ -25,7 +25,7 @@ http_interactions:
25
25
  Content-Type:
26
26
  - application/json; charset=utf-8
27
27
  Date:
28
- - Mon, 16 Dec 2013 02:33:14 GMT
28
+ - Mon, 16 Dec 2013 04:19:50 GMT
29
29
  Etag:
30
30
  - '"d6b8fcef7531c80136b0539e78042926"'
31
31
  Server:
@@ -35,9 +35,9 @@ http_interactions:
35
35
  X-Rack-Cache:
36
36
  - miss
37
37
  X-Request-Id:
38
- - 1c23d7b8a812a1e03f6da245ca4a35f3
38
+ - e37c882f979146cf8efdce621165ad51
39
39
  X-Runtime:
40
- - '0.104400'
40
+ - '0.035662'
41
41
  X-Ua-Compatible:
42
42
  - IE=Edge,chrome=1
43
43
  Content-Length:
@@ -68,5 +68,5 @@ http_interactions:
68
68
  Lessons to Accelerate Your Startup can get your entrepreneurial endeavor headed
69
69
  in the right direction.","published_at":"2010-10-19","language":"en","permalink":"do-more-faster-techstars-lessons-to-accelerate-your-startup","permalink_url":"https://readmill.com/books/do-more-faster-techstars-lessons-to-accelerate-your-startup","cover_url":"https://d26cmntuippvfl.cloudfront.net/?action=shrink-w&format=png&origin=https%253A%252F%252Freadmill-assets.s3.amazonaws.com%252Fcovers%252F4c22fed8ffc2f4a651ab3dd994eb452403e12cf4-original.png&width=120","cover_metadata":{"original_width":300,"original_height":452},"assets":{"items":[{"asset":{"vendor":"","uri":"http://www.feedbooks.com/item/217887/do-more-faster-techstars-lessons-to-accelerate-your-startup","acquisition_type":"store"}}]},"readings_count":98,"recommended_readings_count":0,"active_and_finished_readings_count":24,"average_duration":214,"featured":false,"price_segment":null},"status":200}'
70
70
  http_version:
71
- recorded_at: Mon, 16 Dec 2013 02:33:13 GMT
71
+ recorded_at: Mon, 16 Dec 2013 04:19:49 GMT
72
72
  recorded_with: VCR 2.8.0
@@ -25,7 +25,7 @@ http_interactions:
25
25
  Content-Type:
26
26
  - application/json; charset=utf-8
27
27
  Date:
28
- - Mon, 16 Dec 2013 03:37:29 GMT
28
+ - Mon, 16 Dec 2013 04:19:51 GMT
29
29
  Etag:
30
30
  - '"d6b8fcef7531c80136b0539e78042926"'
31
31
  Server:
@@ -35,9 +35,9 @@ http_interactions:
35
35
  X-Rack-Cache:
36
36
  - miss
37
37
  X-Request-Id:
38
- - 78fe3796424215c04a878304b69a2453
38
+ - 4c16ab75295336aa6f7c82bf37c26afd
39
39
  X-Runtime:
40
- - '0.096865'
40
+ - '0.034174'
41
41
  X-Ua-Compatible:
42
42
  - IE=Edge,chrome=1
43
43
  Content-Length:
@@ -68,5 +68,5 @@ http_interactions:
68
68
  Lessons to Accelerate Your Startup can get your entrepreneurial endeavor headed
69
69
  in the right direction.","published_at":"2010-10-19","language":"en","permalink":"do-more-faster-techstars-lessons-to-accelerate-your-startup","permalink_url":"https://readmill.com/books/do-more-faster-techstars-lessons-to-accelerate-your-startup","cover_url":"https://d26cmntuippvfl.cloudfront.net/?action=shrink-w&format=png&origin=https%253A%252F%252Freadmill-assets.s3.amazonaws.com%252Fcovers%252F4c22fed8ffc2f4a651ab3dd994eb452403e12cf4-original.png&width=120","cover_metadata":{"original_width":300,"original_height":452},"assets":{"items":[{"asset":{"vendor":"","uri":"http://www.feedbooks.com/item/217887/do-more-faster-techstars-lessons-to-accelerate-your-startup","acquisition_type":"store"}}]},"readings_count":98,"recommended_readings_count":0,"active_and_finished_readings_count":24,"average_duration":214,"featured":false,"price_segment":null},"status":200}'
70
70
  http_version:
71
- recorded_at: Mon, 16 Dec 2013 03:37:28 GMT
71
+ recorded_at: Mon, 16 Dec 2013 04:19:50 GMT
72
72
  recorded_with: VCR 2.8.0
@@ -0,0 +1,58 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.readmill.com/v2/books/1/closing_remarks
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 17:35:26 GMT
29
+ Etag:
30
+ - '"75b35c30658029e3e3c23f6022060dfd"'
31
+ Server:
32
+ - nginx/1.0.12
33
+ Status:
34
+ - 200 OK
35
+ X-Rack-Cache:
36
+ - miss
37
+ X-Request-Id:
38
+ - dcd8e7f5b33f0211b5edf653976e6b3b
39
+ X-Runtime:
40
+ - '0.101613'
41
+ X-Ua-Compatible:
42
+ - IE=Edge,chrome=1
43
+ Content-Length:
44
+ - '1393'
45
+ Connection:
46
+ - keep-alive
47
+ body:
48
+ encoding: UTF-8
49
+ string: '{"pagination":{"next":null},"items":[{"closing_remark":{"id":9088,"content":"A
50
+ must read for anyone building (or planning to build) a startup.","reading":{"id":318374},"user":{"id":34764,"username":"sagmor","firstname":"Seba","fullname":"Seba
51
+ Gamboa","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Freadmill-assets.s3.amazonaws.com%252Favatars%252F7392433d1d87b8a102089db66b9a63deca58a231-original.png&width=50","followers_count":0,"followings_count":4,"permalink_url":"https://readmill.com/sagmor"},"recommended":false,"comments_count":0,"likes_count":0,"created_at":"2013-10-17T13:18:25Z"}},{"closing_remark":{"id":5,"content":"Very
52
+ hands on and an easy read. Some of the stories had useful tips that I''ll
53
+ go back to, but also a fair share of clich\u00e9s. Fun if your starting something
54
+ yourself.","reading":{"id":45},"user":{"id":5,"username":"david","firstname":"David","fullname":"David
55
+ Kjelkerud","avatar_url":"https://d26cmntuippvfl.cloudfront.net/?action=crop&format=png&height=50&origin=https%253A%252F%252Freadmill-assets.s3.amazonaws.com%252Favatars%252F4312d134c34ca088d956790a37d696353f6f8e72-original.png&width=50","followers_count":356,"followings_count":296,"permalink_url":"https://readmill.com/david"},"recommended":false,"comments_count":0,"likes_count":0,"created_at":"2012-10-18T16:29:31Z"}}],"status":200}'
56
+ http_version:
57
+ recorded_at: Mon, 16 Dec 2013 17:35:26 GMT
58
+ recorded_with: VCR 2.8.0