hnrb 0.0.3 → 0.0.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d2fd38443742fa03dfe38137bf22a7f000701844
4
- data.tar.gz: b1ae92e7d2cf22c4f52c04b17effe999010be37e
3
+ metadata.gz: 652e5e022c535b11b53a1c909b560591f41a9833
4
+ data.tar.gz: c16d82b51474a9a20181e36b553d56b62ca3566a
5
5
  SHA512:
6
- metadata.gz: be3f86c0acdd3cbccad4e0ebae68034b61955a1c37f9615fb8ff92da86df4634b3251e9da5d2e135d52b9b1819acf1b8005c6143ffad633b3840d0def9bc2e5c
7
- data.tar.gz: e36f6b93d7fb69af0ff6d9aea88755189dfbc01dae7da43b822d6e1ec8918c3111fd2d106ce54cf74b761a49017c1723de67bdaae548e09390506d6b5385716e
6
+ metadata.gz: b2af77e93d21b5102982fd11f195b61aa12845ffcd4639fb536af280ec7e1dcdfe27baefd0f4be39cafd1c33c1096fff84521a90663c1059e889067bbd355a32
7
+ data.tar.gz: c69d7f15e021470a1fab796a2e3275af2aef9bd82308e085d29f0e46e0a25d69e3f4a6e8d13f2fb6f950c9974bbdd1aff257d73b8c607f553ef7c03c34153406
@@ -4,45 +4,47 @@ require 'net/http'
4
4
  require 'hnrb/user'
5
5
  require 'hnrb/item'
6
6
 
7
- class HNrb
8
-
9
- BASE_URL = "https://hacker-news.firebaseio.com/v0/"
7
+ module HNrb
8
+ class APIWrapper
9
+
10
+ BASE_URL = "https://hacker-news.firebaseio.com/v0/"
11
+
12
+ def fetch_json_at(url)
13
+ resp = Net::HTTP.get_response(URI.parse(url))
14
+ begin
15
+ JSON.parse(resp.body)
16
+ rescue
17
+ resp.body
18
+ end
19
+ end
10
20
 
11
- def fetch_json_at(url)
12
- resp = Net::HTTP.get_response(URI.parse(url))
13
- begin
14
- JSON.parse(resp.body)
15
- rescue
16
- resp.body
21
+ def send_get_request_to(endpoint)
22
+ begin
23
+ fetch_json_at endpoint
24
+ rescue
25
+ raise "The requested resource is not available"
26
+ end
17
27
  end
18
- end
19
28
 
20
- def send_get_request_to(endpoint)
21
- begin
22
- fetch_json_at endpoint
23
- rescue
24
- raise "The requested resource is not available"
29
+ def get_item(item_id)
30
+ Item.new(send_get_request_to BASE_URL + "item/#{item_id}.json")
25
31
  end
26
- end
27
32
 
28
- def get_item(item_id)
29
- Item.new(send_get_request_to BASE_URL + "item/#{item_id}.json")
30
- end
33
+ def get_user(username)
34
+ User.new(send_get_request_to BASE_URL + "user/#{username}.json")
35
+ end
31
36
 
32
- def get_user(username)
33
- User.new(send_get_request_to BASE_URL + "user/#{username}.json")
34
- end
37
+ def get_top_stories
38
+ send_get_request_to BASE_URL + "topstories.json"
39
+ end
35
40
 
36
- def get_top_stories
37
- send_get_request_to BASE_URL + "topstories.json"
38
- end
41
+ def get_max_item_id
42
+ send_get_request_to BASE_URL + "maxitem.json"
43
+ end
39
44
 
40
- def get_max_item_id
41
- send_get_request_to BASE_URL + "maxitem.json"
42
- end
45
+ def get_changed_items_and_profiles
46
+ send_get_request_to BASE_URL + "updates.json"
47
+ end
43
48
 
44
- def get_changed_items_and_profiles
45
- send_get_request_to BASE_URL + "updates.json"
46
49
  end
47
-
48
50
  end
@@ -1,14 +1,16 @@
1
- class Item
1
+ module HNrb
2
+ class Item
2
3
 
3
- PROPERTIES = [:id, :deleted, :type, :by, :time, :text, :dead, :parent, :kids, :url, :score, :title, :parts]
4
- PROPERTIES.each do |p|
5
- attr_accessor p
6
- end
4
+ PROPERTIES = [:id, :deleted, :type, :by, :time, :text, :dead, :parent, :kids, :url, :score, :title, :parts]
5
+ PROPERTIES.each do |p|
6
+ attr_accessor p
7
+ end
7
8
 
8
- def initialize(attributes = {})
9
- attributes.each do |k, v|
10
- self.send("#{k.to_sym}=", v) if PROPERTIES.member? k.to_sym
9
+ def initialize(attributes = {})
10
+ attributes.each do |k, v|
11
+ self.send("#{k.to_sym}=", v) if PROPERTIES.member? k.to_sym
12
+ end
11
13
  end
12
- end
13
14
 
15
+ end
14
16
  end
@@ -1,14 +1,16 @@
1
- class User
1
+ module HNrb
2
+ class User
2
3
 
3
- PROPERTIES = [:id, :delay, :created, :karma, :about, :submitted]
4
- PROPERTIES.each do |p|
5
- attr_accessor p
6
- end
4
+ PROPERTIES = [:id, :delay, :created, :karma, :about, :submitted]
5
+ PROPERTIES.each do |p|
6
+ attr_accessor p
7
+ end
7
8
 
8
- def initialize(attributes = {})
9
- attributes.each do |k, v|
10
- self.send("#{k.to_sym}=", v) if PROPERTIES.member? k.to_sym
9
+ def initialize(attributes = {})
10
+ attributes.each do |k, v|
11
+ self.send("#{k.to_sym}=", v) if PROPERTIES.member? k.to_sym
12
+ end
11
13
  end
12
- end
13
14
 
15
+ end
14
16
  end
@@ -1,3 +1,3 @@
1
1
  module HNrb
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hnrb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jingwen Chen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-08 00:00:00.000000000 Z
11
+ date: 2014-10-09 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A ruby interface for Hacker News API at Firebase.
14
14
  email: jin@crypt.sg