hnjobs 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/hnjobs.rb +33 -0
  3. metadata +58 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 933d5dfd8326e1e2eda67254bfb97b4fb6326d78
4
+ data.tar.gz: e642fc6dc3902f9207789c762bedccf505ea93fa
5
+ SHA512:
6
+ metadata.gz: 1984cbae66d410beee8b4dd7e11abc5aebba7bfc91fedd025e35841d061c52ac728b71624a2f98de13c16c73f94ba6a817d2f6fa2cd0f3e6eab11d152d3c6b57
7
+ data.tar.gz: 1276f451fe91de8fce0c32f175298af4f4cce53857bc635cf41e6255abc985fe1e9ca53b8b6680c86e91d445e28d819f35789bbf94e3188c5ef1f182060d4ad0
data/lib/hnjobs.rb ADDED
@@ -0,0 +1,33 @@
1
+ require 'open-uri'
2
+ require 'json'
3
+ require 'nokogiri'
4
+ class HNJobs
5
+ BASE_URL = "https://hacker-news.firebaseio.com/v0/"
6
+ JOBS_URL = BASE_URL + "jobstories.json"
7
+ def initialize
8
+ @jobs = Array.new
9
+ open(JOBS_URL){|f|
10
+ f.each_line do |line|
11
+ raw = line
12
+ unless raw.nil?
13
+ data = JSON.parse(raw)
14
+ data.each do |id|
15
+ job_url = BASE_URL + "item/#{id}.json"
16
+ open(job_url){|d|
17
+ d.each_line do |job_line|
18
+ unless job_line.nil?
19
+ job = JSON.parse(job_line)
20
+ job["text"] = Nokogiri::HTML(job["text"]).text
21
+ @jobs << job
22
+ end
23
+ end
24
+ }
25
+ end
26
+ end
27
+ end
28
+ }
29
+ end
30
+ def jobs
31
+ @jobs
32
+ end
33
+ end
metadata ADDED
@@ -0,0 +1,58 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hnjobs
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Hugo Di Francesco
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-02-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: nokogiri
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ description: API wrapper around a publicly exposed endpoint
28
+ email: hugo@awebots.com
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - lib/hnjobs.rb
34
+ homepage: https://github.com/HugoDF/hnjobs
35
+ licenses:
36
+ - MIT
37
+ metadata: {}
38
+ post_install_message:
39
+ rdoc_options: []
40
+ require_paths:
41
+ - lib
42
+ required_ruby_version: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ required_rubygems_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
52
+ requirements: []
53
+ rubyforge_project:
54
+ rubygems_version: 2.4.8
55
+ signing_key:
56
+ specification_version: 4
57
+ summary: HN Jobs API calls wrapper
58
+ test_files: []