hnrb 0.0.1

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.
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: []