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
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