hnrb 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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