workinstartups-api 0.0.0
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 +7 -0
- data/api.rb +114 -0
- metadata +44 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e0e4947a5c211bdfa0c8a4992979d0320fa13995
|
4
|
+
data.tar.gz: 4a438920e80d1c2b6e45d30ee8b50fedec5ef337
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 15b9d8470775d0cb641ca8574f29a92e7cd84bddaaa8f2193483541ec6bd0591310fa898184d3f8f453f6412b87263da9d68f42373ee9c90ca70e69a756b117b
|
7
|
+
data.tar.gz: 41f2ead941cbe07d644a9ee95d3b8c72306041420361f4f32fb0989ea773ffee235bb606a40522c9b7d76b22a8f7b070f67c4a011c0cfeffdae54542f17322e0
|
data/api.rb
ADDED
@@ -0,0 +1,114 @@
|
|
1
|
+
require 'open-uri'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
class API
|
5
|
+
def initialize(category=0, count = 20, random = false, type = 0)
|
6
|
+
@category = category
|
7
|
+
@count = count
|
8
|
+
@random = (random ? 1 : 0)
|
9
|
+
@type = type
|
10
|
+
@from_date = 0
|
11
|
+
@format = 'id title'
|
12
|
+
end
|
13
|
+
def set_from date
|
14
|
+
@from_date = date
|
15
|
+
end
|
16
|
+
def set_format format
|
17
|
+
@format = format
|
18
|
+
end
|
19
|
+
# Categories:
|
20
|
+
# 1: Programmers
|
21
|
+
# 2: Designers
|
22
|
+
# 3: Interns
|
23
|
+
# 4: undefined
|
24
|
+
# 5: Testers
|
25
|
+
# 6: undefined
|
26
|
+
# 7: Marketers
|
27
|
+
# 8: Managers
|
28
|
+
# 9: Consultants
|
29
|
+
# 10: undefined
|
30
|
+
# 11: undefined
|
31
|
+
# 12: undefined
|
32
|
+
# 13: undefined
|
33
|
+
# 14: undefined
|
34
|
+
# 15: Sales
|
35
|
+
# 16: Co-Founders
|
36
|
+
|
37
|
+
# Type:
|
38
|
+
# 0: all
|
39
|
+
# fulltime
|
40
|
+
# parttime
|
41
|
+
# freelance
|
42
|
+
|
43
|
+
# Ordering:
|
44
|
+
# 0: by post date
|
45
|
+
# 1: randomly
|
46
|
+
|
47
|
+
def create_query
|
48
|
+
base_uri = URI.parse("http://workinstartups.com/job-board/api/api.php")
|
49
|
+
params = {
|
50
|
+
action: 'getJobs',
|
51
|
+
type: @type,
|
52
|
+
category: @category,
|
53
|
+
count: @count,
|
54
|
+
random: @random,
|
55
|
+
days_behind: 0,
|
56
|
+
response: 'json'
|
57
|
+
}
|
58
|
+
query_string = params.map{|k,v| "#{k}=#{v}"}.join('&')
|
59
|
+
@query = base_uri
|
60
|
+
@query.query = query_string
|
61
|
+
@query
|
62
|
+
end
|
63
|
+
def format string
|
64
|
+
formatted = ""
|
65
|
+
if @format.include?"id"
|
66
|
+
formatted += "id: " + string["id"]
|
67
|
+
end
|
68
|
+
if @format.include?"title"
|
69
|
+
formatted += "\nTitle: " + string["title"]
|
70
|
+
end
|
71
|
+
if @format.include?"category"
|
72
|
+
formatted += "\nCategory: " + string["category_name"]
|
73
|
+
end
|
74
|
+
if @format.include?"description"
|
75
|
+
formatted += "\nDescription: " + string["description"]
|
76
|
+
end
|
77
|
+
formatted
|
78
|
+
end
|
79
|
+
def get_latest formatted=true
|
80
|
+
query = create_query
|
81
|
+
open(query) do |f|
|
82
|
+
f.each_line do |line|
|
83
|
+
raw = line
|
84
|
+
unless raw.nil?
|
85
|
+
data = raw.gsub('var jobs = ','').gsub(';', '')
|
86
|
+
obj = JSON.parse(data)
|
87
|
+
@formatted = Array.new
|
88
|
+
@latest = Array.new
|
89
|
+
@from_date ||= Date.today
|
90
|
+
obj.each do |job|
|
91
|
+
if Date.parse(job["created_on"]) > @from_date
|
92
|
+
@formatted << (format job)
|
93
|
+
@latest << job
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
if formatted
|
100
|
+
@formatted
|
101
|
+
else
|
102
|
+
@latest
|
103
|
+
end
|
104
|
+
end
|
105
|
+
def get_job id=nil
|
106
|
+
if @latest.nil?
|
107
|
+
get_latest
|
108
|
+
end
|
109
|
+
if id.nil?
|
110
|
+
raise "No Id for job"
|
111
|
+
end
|
112
|
+
format @latest.select{|obj| obj["id"] == id}.first
|
113
|
+
end
|
114
|
+
end
|
metadata
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: workinstartups-api
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.0
|
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
|
+
description: API wrapper around a publicly exposed endpoint
|
14
|
+
email: hugo@awebots.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- api.rb
|
20
|
+
homepage: http://hugodf.github.io/workinstartups-api
|
21
|
+
licenses:
|
22
|
+
- MIT
|
23
|
+
metadata: {}
|
24
|
+
post_install_message:
|
25
|
+
rdoc_options: []
|
26
|
+
require_paths:
|
27
|
+
- lib
|
28
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
34
|
+
requirements:
|
35
|
+
- - ">="
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
requirements: []
|
39
|
+
rubyforge_project:
|
40
|
+
rubygems_version: 2.4.8
|
41
|
+
signing_key:
|
42
|
+
specification_version: 4
|
43
|
+
summary: Work In Startups UK API wrapper
|
44
|
+
test_files: []
|