Class: HackernewsRuby::Client

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Request
Defined in:
lib/hackernews_ruby/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Request

#get, #request

Constructor Details

#initialize(options = {}) ⇒ Client

Returns a new instance of Client.



12
13
14
15
16
17
18
19
# File 'lib/hackernews_ruby/client.rb', line 12

def initialize(options={})
  @api_url = "https://hacker-news.firebaseio.com"
  @api_version = "v0"
  @api_url = options[:api_url].nil? ? api_url : options[:api_url]
  @api_version = options[:api_version].nil? ? @api_version : options[:api_version]

  reload_config
end

Instance Attribute Details

#api_urlObject

Returns the value of attribute api_url.



9
10
11
# File 'lib/hackernews_ruby/client.rb', line 9

def api_url
  @api_url
end

#api_versionObject

Returns the value of attribute api_version.



9
10
11
# File 'lib/hackernews_ruby/client.rb', line 9

def api_version
  @api_version
end

Instance Method Details

#connectionObject



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/hackernews_ruby/client.rb', line 21

def connection
  params = {}
  @connection = Faraday.new(url: @api_url, params: params,
                            headers: default_headers,
                            ssl: { verify: true } ) do |faraday|
                              faraday.use FaradayMiddleware::Mashify
                              faraday.use FaradayMiddleware::ParseJson, content_type: /\bjson$/
                              faraday.use FaradayMiddleware::FollowRedirects
                              faraday.adapter Faraday.default_adapter
                            end
end

#get_item(id, params = {}) ⇒ Object



33
34
35
36
# File 'lib/hackernews_ruby/client.rb', line 33

def get_item(id, params={})
  url = "/#{HackernewsRuby.api_version}/item/#{id}.json"
  get(url, params)
end

#get_user(id, params = {}) ⇒ Object



38
39
40
41
# File 'lib/hackernews_ruby/client.rb', line 38

def get_user(id, params={})
  url = "/#{HackernewsRuby.api_version}/user/#{id}.json"
  get(url, params)
end

#top_stories(params = {}) ⇒ Object



43
44
45
46
# File 'lib/hackernews_ruby/client.rb', line 43

def top_stories(params={})
  url ="/#{HackernewsRuby.api_version}/topstories.json?"
  get(url, params)
end