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.
- checksums.yaml +4 -4
 - data/lib/readmill/client.rb +14 -0
 - data/lib/readmill/client/books.rb +14 -1
 - data/lib/readmill/client/closing_remarks.rb +22 -0
 - data/lib/readmill/client/comments.rb +34 -0
 - data/lib/readmill/client/highlights.rb +52 -0
 - data/lib/readmill/client/locations.rb +22 -0
 - data/lib/readmill/client/periods.rb +22 -0
 - data/lib/readmill/client/readings.rb +77 -0
 - data/lib/readmill/client/users.rb +33 -0
 - data/lib/readmill/version.rb +1 -1
 - data/spec/cassettes/readmill/client/books_book/should_request_a_book_from_readmill.yml +4 -4
 - data/spec/cassettes/readmill/client/books_book/should_return_a_book.yml +4 -4
 - data/spec/cassettes/readmill/client/books_book/with_closing_remarks_true_should_request_readers_for_a_book_from_readmill.yml +58 -0
 - data/spec/cassettes/readmill/client/books_book/with_closing_remarks_true_should_return_an_array_of_users.yml +58 -0
 - data/spec/cassettes/readmill/client/books_book/with_readers_true_should_request_readers_for_a_book_from_readmill.yml +52 -0
 - data/spec/cassettes/readmill/client/books_book/with_readers_true_should_return_an_array_of_users.yml +52 -0
 - data/spec/cassettes/readmill/client/books_books/should_request_all_books_from_readmill.yml +67 -17
 - data/spec/cassettes/readmill/client/books_books/should_return_an_array_of_books.yml +66 -47
 - data/spec/cassettes/readmill/client/closing_remarks_closing_remark/should_request_a_closing_remark_from_readmill.yml +54 -0
 - data/spec/cassettes/readmill/client/closing_remarks_closing_remark/should_return_a_closing_remark.yml +54 -0
 - data/spec/cassettes/readmill/client/comments_comment/should_request_a_comment_from_readmill.yml +53 -0
 - data/spec/cassettes/readmill/client/comments_comment/should_return_a_comment.yml +53 -0
 - data/spec/cassettes/readmill/client/comments_comments/should_request_all_comments_from_readmill.yml +54 -0
 - data/spec/cassettes/readmill/client/comments_comments/should_return_an_array_of_comments.yml +54 -0
 - data/spec/cassettes/readmill/client/highlights_highlight/should_request_a_highlight_from_readmill.yml +61 -0
 - data/spec/cassettes/readmill/client/highlights_highlight/should_return_a_highlight.yml +61 -0
 - data/spec/cassettes/readmill/client/highlights_highlight/with_comments_true_should_return_an_array_of_comments.yml +54 -0
 - data/spec/cassettes/readmill/client/highlights_highlight/with_comments_true_should_return_comments_for_the_highlight_from_readmill.yml +54 -0
 - data/spec/cassettes/readmill/client/highlights_highlights/should_request_all_highlights_from_readmill.yml +182 -0
 - data/spec/cassettes/readmill/client/highlights_highlights/should_return_an_array_of_highlights.yml +182 -0
 - data/spec/cassettes/readmill/client/highlights_highlights/with_a_reading_id_should_request_all_highlights_for_the_reading.yml +66 -0
 - data/spec/cassettes/readmill/client/highlights_highlights/with_a_user_id_should_request_all_highlights_for_the_user.yml +191 -0
 - data/spec/cassettes/readmill/client/locations_locations/should_request_all_locations_from_readmill.yml +52 -0
 - data/spec/cassettes/readmill/client/locations_locations/should_return_an_array_of_locations.yml +52 -0
 - data/spec/cassettes/readmill/client/periods_periods/should_request_all_periods_from_readmill.yml +52 -0
 - data/spec/cassettes/readmill/client/periods_periods/should_return_an_array_of_periods.yml +52 -0
 - data/spec/cassettes/readmill/client/readings_reading/should_request_a_reading_from_readmill.yml +54 -0
 - data/spec/cassettes/readmill/client/readings_reading/should_return_a_reading.yml +54 -0
 - data/spec/cassettes/readmill/client/readings_reading/with_highlights_true_should_request_highlights_for_the_reading_from_readmill.yml +90 -0
 - data/spec/cassettes/readmill/client/readings_reading/with_highlights_true_should_return_an_array_of_highlights.yml +90 -0
 - data/spec/cassettes/readmill/client/readings_reading/with_locations_true_should_request_locations_for_the_reading_from_readmill.yml +52 -0
 - data/spec/cassettes/readmill/client/readings_reading/with_locations_true_should_return_an_array_of_locations.yml +52 -0
 - data/spec/cassettes/readmill/client/readings_reading/with_periods_true_and_locations_true_should_raise_an_argument_error.yml +52 -0
 - data/spec/cassettes/readmill/client/readings_reading/with_periods_true_should_request_periods_for_the_reading_from_readmill.yml +52 -0
 - data/spec/cassettes/readmill/client/readings_reading/with_periods_true_should_return_an_array_of_periods.yml +52 -0
 - data/spec/cassettes/readmill/client/readings_readings/should_request_all_readings_from_readmill.yml +85 -0
 - data/spec/cassettes/readmill/client/readings_readings/should_return_an_array_of_readings.yml +85 -0
 - data/spec/cassettes/readmill/client/readings_readings/with_a_book_id_should_request_all_readings_for_the_book.yml +54 -0
 - data/spec/cassettes/readmill/client/readings_readings/with_a_book_id_should_return_an_array_of_readings.yml +54 -0
 - data/spec/cassettes/readmill/client/readings_readings/with_a_user_id_should_request_all_readings_for_the_user.yml +94 -0
 - data/spec/cassettes/readmill/client/readings_readings/with_a_user_id_should_return_an_array_of_readings.yml +94 -0
 - data/spec/cassettes/readmill/client/users_user/should_request_a_user_from_readmill.yml +54 -0
 - data/spec/cassettes/readmill/client/users_user/should_return_a_user.yml +54 -0
 - data/spec/cassettes/readmill/client/users_user/with_followers_true_should_request_all_followers_for_a_user.yml +86 -0
 - data/spec/cassettes/readmill/client/users_user/with_followers_true_should_return_an_array_of_users.yml +86 -0
 - data/spec/cassettes/readmill/client/users_user/with_followings_true_should_request_all_followings_for_a_user.yml +80 -0
 - data/spec/cassettes/readmill/client/users_user/with_followings_true_should_return_an_array_of_users.yml +80 -0
 - data/spec/readmill/client/books_spec.rb +44 -5
 - data/spec/readmill/client/closing_remarks_spec.rb +19 -0
 - data/spec/readmill/client/comments_spec.rb +33 -0
 - data/spec/readmill/client/highlights_spec.rb +69 -0
 - data/spec/readmill/client/locations_spec.rb +19 -0
 - data/spec/readmill/client/periods_spec.rb +19 -0
 - data/spec/readmill/client/readings_spec.rb +127 -0
 - data/spec/readmill/client/users_spec.rb +57 -0
 - metadata +108 -1
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 55c086e83317810f068f131e638c71755df3078e
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: ccbea744db0d118d0583043f10431f2d43ceac97
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: be1e06390ff1343a8b003e3fc3a3e75476e807fdb17264c148c1bab41bb7c3fa126e6a7ac34391806e191a4d6ffced624b6741369b285813fc20a531fa832402
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 5454a0d403da7b5dfe47cb378ea43f5653a3aee31563ba54d72f038762b6e3e56a57896bf64c8a4e952a0e338953528579991938a8f99ecf98a189f93006dcf3
         
     | 
    
        data/lib/readmill/client.rb
    CHANGED
    
    | 
         @@ -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 
     | 
    
         
            -
                     
     | 
| 
      
 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
         
     | 
    
        data/lib/readmill/version.rb
    CHANGED
    
    
| 
         @@ -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  
     | 
| 
      
 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 
     | 
    
         
            -
                  -  
     | 
| 
      
 38 
     | 
    
         
            +
                  - e37c882f979146cf8efdce621165ad51
         
     | 
| 
       39 
39 
     | 
    
         
             
                  X-Runtime:
         
     | 
| 
       40 
     | 
    
         
            -
                  - '0. 
     | 
| 
      
 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  
     | 
| 
      
 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  
     | 
| 
      
 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 
     | 
    
         
            -
                  -  
     | 
| 
      
 38 
     | 
    
         
            +
                  - 4c16ab75295336aa6f7c82bf37c26afd
         
     | 
| 
       39 
39 
     | 
    
         
             
                  X-Runtime:
         
     | 
| 
       40 
     | 
    
         
            -
                  - '0. 
     | 
| 
      
 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  
     | 
| 
      
 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
         
     |