hackone 0.0.1 → 0.0.2
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 +8 -8
- data/lib/hackone.rb +51 -24
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
YjM1MDBhOTgyZTI4OGUwNzIyMzE4MTIwOWFiY2JhZmZhNTEwYTQ0Nw==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
6
|
+
YWM2NmQxYTNiY2FlMDI2N2NkOWU1YWQ3ZmQyNTRlZmQ4YTU1NTIxOA==
|
|
7
7
|
SHA512:
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
YjQ1YjcwM2EyOGQ5N2E4Y2JjNzAxMzVhZWM2ZWQ0MGY3MTgzY2JkZjY0NzBl
|
|
10
|
+
ODI1NDM2NmMzNjhhZTY1ZTJjNzM4NWUwZjkwYWRhNTJmNTQ5NTBiZWNjMzdh
|
|
11
|
+
M2UzMjE5NGExZDgzZjRhODlmNzRmNDcxM2E0ZTYxNWYyM2QwMjk=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
Nzc0YzFmYjZkYjczNTQwYzQyNDQxYmM0NTIzYTNjMjMyNTRmODM3NzYwMDgx
|
|
14
|
+
OWUyMzg3OGRkOGQ4NGVkMzEzODY1Y2M2YjA3Nzk2YWYwZjFmMDMxNTQ4NzAx
|
|
15
|
+
OTMwOTEwODI3Mjc0OGNiNDQ5MzBiM2VlZjM0ODFjMzk0OTU0MWI=
|
data/lib/hackone.rb
CHANGED
|
@@ -20,8 +20,13 @@ class HackOne
|
|
|
20
20
|
@api_key || ""
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
+
def self.parse(url)
|
|
24
|
+
new(url)
|
|
25
|
+
end
|
|
26
|
+
|
|
23
27
|
def initialize(url)
|
|
24
28
|
if url.include? "http://" or url.include? "https://"
|
|
29
|
+
url += "?api_key=#{HackOne.api_key}" if HackOne.api_key != ""
|
|
25
30
|
body = open(url)
|
|
26
31
|
contents = body.read
|
|
27
32
|
else
|
|
@@ -31,7 +36,7 @@ class HackOne
|
|
|
31
36
|
end
|
|
32
37
|
|
|
33
38
|
begin
|
|
34
|
-
@result = JSON.parse(contents)
|
|
39
|
+
@result = cleanse(JSON.parse(contents))
|
|
35
40
|
rescue
|
|
36
41
|
raise HackOneInvalidCommonHackDocument
|
|
37
42
|
end
|
|
@@ -45,13 +50,20 @@ class HackOne
|
|
|
45
50
|
end
|
|
46
51
|
|
|
47
52
|
# Basic level.
|
|
48
|
-
@username = @result[
|
|
49
|
-
@email = @result[
|
|
50
|
-
@lastUpdated = @result[
|
|
51
|
-
@shirtSize = @result[
|
|
52
|
-
@is_private = @result[
|
|
53
|
+
@username = @result[:username]
|
|
54
|
+
@email = @result[:email]
|
|
55
|
+
@lastUpdated = @result[:lastUpdated]
|
|
56
|
+
@shirtSize = @result[:shirtSize]
|
|
57
|
+
@is_private = @result[:private]
|
|
53
58
|
end
|
|
54
59
|
|
|
60
|
+
def private?
|
|
61
|
+
@is_private
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def public?
|
|
65
|
+
!@is_private
|
|
66
|
+
end
|
|
55
67
|
|
|
56
68
|
# A helper method. All the names methods use it to
|
|
57
69
|
# interact with the named method
|
|
@@ -67,25 +79,28 @@ class HackOne
|
|
|
67
79
|
|
|
68
80
|
# A method to help extract the bio part of the application
|
|
69
81
|
# "fields", returns a list of fields
|
|
70
|
-
def bio
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
"gender",
|
|
78
|
-
"email",
|
|
79
|
-
"phone",
|
|
80
|
-
"dietaryRestrictions",
|
|
81
|
-
"summary",
|
|
82
|
-
"location",
|
|
83
|
-
"websites",
|
|
84
|
-
"resume",
|
|
85
|
-
"picture"
|
|
86
|
-
]
|
|
87
|
-
end
|
|
82
|
+
def bio
|
|
83
|
+
return @result[:bio]
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def education
|
|
87
|
+
return @result[:education]
|
|
88
|
+
end
|
|
88
89
|
|
|
90
|
+
def work
|
|
91
|
+
return @result[:work]
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def hackathons
|
|
95
|
+
return @result[:hackathons]
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def projects
|
|
99
|
+
return @result[:projects]
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def skills
|
|
103
|
+
return @result[:skills]
|
|
89
104
|
end
|
|
90
105
|
|
|
91
106
|
def method_missing(method, *args, &block)
|
|
@@ -96,4 +111,16 @@ class HackOne
|
|
|
96
111
|
super
|
|
97
112
|
end
|
|
98
113
|
end
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
private
|
|
117
|
+
def cleanse(h)
|
|
118
|
+
nh = nil
|
|
119
|
+
nh = {} if h.is_a? Hash
|
|
120
|
+
nh = [] if h.is_a? Array
|
|
121
|
+
nh = h if nh.nil?
|
|
122
|
+
h.each { |k, v| nh[k.to_sym] = cleanse(v) } if h.is_a? Hash
|
|
123
|
+
h.each { |k| nh.push(cleanse(k)) } if h.is_a? Array
|
|
124
|
+
nh
|
|
125
|
+
end
|
|
99
126
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hackone
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Marcus Yearwood
|
|
@@ -11,16 +11,16 @@ bindir: bin
|
|
|
11
11
|
cert_chain: []
|
|
12
12
|
date: 2014-09-03 00:00:00.000000000 Z
|
|
13
13
|
dependencies: []
|
|
14
|
-
description: This gem is a ruby wrapper that similifies the parsing CommonHack
|
|
15
|
-
More information about HackOne can be seen at http://www.hackone.co
|
|
16
|
-
about CommonHack can be seen at http://commonhack.org
|
|
14
|
+
description: This gem is a ruby wrapper that similifies the parsing CommonHack and
|
|
15
|
+
HackOne JSON. More information about HackOne can be seen at http://www.hackone.co
|
|
16
|
+
and more information about CommonHack can be seen at http://commonhack.org
|
|
17
17
|
email: bilawal@hackcard.org
|
|
18
18
|
executables: []
|
|
19
19
|
extensions: []
|
|
20
20
|
extra_rdoc_files: []
|
|
21
21
|
files:
|
|
22
22
|
- lib/hackone.rb
|
|
23
|
-
homepage: http://github.com/hackcard/hackone
|
|
23
|
+
homepage: http://github.com/hackcard/hackone-ruby
|
|
24
24
|
licenses:
|
|
25
25
|
- MIT
|
|
26
26
|
metadata: {}
|