hnrb 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/hnrb.rb +45 -0
  3. metadata +45 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 00a5c3041835c8c2606075b08cce72975f95d4ad
4
+ data.tar.gz: 45e2a8f625ab7a39952834c520634da09faa5919
5
+ SHA512:
6
+ metadata.gz: 067f9ddf3a50ab269db3b42b235660ca74abc3f58e221d3939151b63426e9bd8682578d25b1d9445d888ff3a359b49d7011f541b25f00ea4b4d8807483ddffd4
7
+ data.tar.gz: d28abad30432342517a175710986dacf45abdb30bf7eb70dedf3f9da87d74089e7fb7cbfcef52ce9969d96fc100a996d1b8560594748b37ad6961b6910080d83
@@ -0,0 +1,45 @@
1
+ require 'json'
2
+ require 'net/http'
3
+
4
+ class HNrb
5
+
6
+ BASE_URL = "https://hacker-news.firebaseio.com/v0/"
7
+
8
+ def fetch_json_at(url)
9
+ resp = Net::HTTP.get_response(URI.parse(url))
10
+ begin
11
+ JSON.parse(resp.body)
12
+ rescue
13
+ resp.body
14
+ end
15
+ end
16
+
17
+ def send_get_request_to(endpoint)
18
+ begin
19
+ fetch_json_at endpoint
20
+ rescue
21
+ raise "The requested resource is not available"
22
+ end
23
+ end
24
+
25
+ def get_item(item_id)
26
+ send_get_request_to BASE_URL + "item/#{item_id}.json"
27
+ end
28
+
29
+ def get_user(username)
30
+ send_get_request_to BASE_URL + "user/#{username}.json"
31
+ end
32
+
33
+ def get_top_stories
34
+ send_get_request_to BASE_URL + "topstories.json"
35
+ end
36
+
37
+ def get_max_item_id
38
+ send_get_request_to BASE_URL + "maxitem.json"
39
+ end
40
+
41
+ def get_changed_items_and_profiles
42
+ send_get_request_to BASE_URL + "updates.json"
43
+ end
44
+
45
+ end
metadata ADDED
@@ -0,0 +1,45 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hnrb
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Jingwen Chen
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-10-08 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: This rubygem aims to provide an easier way to fetch data from the Hacker
14
+ News API, especially if you're building ruby apps.
15
+ email: jin@crypt.sg
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/hnrb.rb
21
+ homepage: http://rubygems.org/gems/hnrb
22
+ licenses:
23
+ - MIT
24
+ metadata: {}
25
+ post_install_message:
26
+ rdoc_options: []
27
+ require_paths:
28
+ - lib
29
+ required_ruby_version: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: 1.3.6
39
+ requirements: []
40
+ rubyforge_project:
41
+ rubygems_version: 2.2.2
42
+ signing_key:
43
+ specification_version: 4
44
+ summary: A ruby interface for Hacker News API at Firebase.
45
+ test_files: []