class Readlists::Anonymous
Constants
- API_ENDPOINT
- DEFAULT_HEADERS
- DEFAULT_READLIST_PARAMS
- VERSION
Attributes
description[R]
edit_id[R]
id[R]
session_id[R]
title[R]
Public Class Methods
base_uri()
click to toggle source
# File lib/readlists/anonymous.rb, line 32 def self.base_uri URI.parse API_ENDPOINT end
create()
click to toggle source
# File lib/readlists/anonymous.rb, line 36 def self.create res = request(:post, base_uri, DEFAULT_READLIST_PARAMS) id, session_id = nil, nil res.each_header {|key, value| case key when 'set-cookie' # "sessionid=#{id}; expires=Fri, 17-Jan-2014 05:05:06 GMT; httponly; Max-Age=1209600; Path=/" session_id = value.match(/sessionid=(\S+?);/)[1] when 'location' # 'http://readlists.com/api/v1/readlists/#{id}/' id = value.split('/')[-1] end } new(id, session_id) end
new(id, session_id)
click to toggle source
# File lib/readlists/anonymous.rb, line 53 def initialize(id, session_id) @id = id @session_id = session_id set_edit_id end
request(method, url, params, headers = {})
click to toggle source
# File lib/readlists/anonymous.rb, line 12 def self.request(method, url, params, headers = {}) headers = DEFAULT_HEADERS.merge headers req = case method when :get Net::HTTP::Get.new(url, headers) when :post Net::HTTP::Post.new(url, headers) when :put Net::HTTP::Put.new(url, headers) end req.basic_auth url.user, url.password if url.user req.body = params.to_json res = nil Net::HTTP.start(url.hostname, url.port, :use_ssl => url.scheme == 'https' ) {|http| res = http.request(req) } raise RequestError.new("#{res.code}: #{res.body}") unless res.code =~ /[234]/ res end
Public Instance Methods
<<(url)
click to toggle source
# File lib/readlists/anonymous.rb, line 94 def <<(url) headers = { "Cookie" => cookie } params = { "readlist" => DEFAULT_READLIST_PARAMS }.merge("article_url" => url) self.class.request(:post, entry_endpoint, params, headers) end
Also aliased as: add
description=(desc)
click to toggle source
# File lib/readlists/anonymous.rb, line 85 def description=(desc) request(:put, "description" => desc) @description = desc end
endpoint()
click to toggle source
# File lib/readlists/anonymous.rb, line 76 def endpoint URI "#{API_ENDPOINT}#{id}/" end
entry_endpoint()
click to toggle source
# File lib/readlists/anonymous.rb, line 72 def entry_endpoint URI "#{API_ENDPOINT}#{id}/entries/" end
public_edit_url()
click to toggle source
# File lib/readlists/anonymous.rb, line 64 def public_edit_url "http://readlists.com/#{edit_id}/" end
request(method, params = {}, headers = {})
click to toggle source
# File lib/readlists/anonymous.rb, line 101 def request(method, params = {}, headers = {}) headers = { "Cookie" => cookie } params = DEFAULT_READLIST_PARAMS.merge(params) self.class.request(method, endpoint, params, headers) end
set_edit_id()
click to toggle source
# File lib/readlists/anonymous.rb, line 59 def set_edit_id res = request(:get) @edit_id = JSON.parse(res.body)['edit_id'] end
title=(title)
click to toggle source
# File lib/readlists/anonymous.rb, line 80 def title=(title) request(:put, "readlist_title" => title) @title = title end