parse_apply_infuriation_engine 0.0.1gamma
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +37 -0
- data/bin/parse_apply_infuriation_engine +147 -0
- data/gem-public_cert.pem +20 -0
- data/parse_apply_infuriation_engine.gemspec +22 -0
- data.tar.gz.sig +0 -0
- metadata +79 -0
- metadata.gz.sig +0 -0
data/README.md
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
# TL;DR troll parse.com hiring
|
2
|
+
|
3
|
+
|
4
|
+
## Emotional Liability Disclaimer
|
5
|
+
|
6
|
+
If you take it personally, the open source license will not cover you and you will owe me a royalty check for merely viewing (rounded up to the nearest second). Don't think of llamas because those thoughts cost an additional $0.09/second before taxes and late fees. We're sorry if you cannot afford this at this time, we may offer your an installment plan option. There may be a month-to-month subscription in the next release if funding runway doesn't run out.
|
7
|
+
|
8
|
+
## Disclaimer Disclaimer
|
9
|
+
This is not real software, this is psuedofiction or whatever that means. It may also work, but it's untested without specs and may only work as the side-effect of a Haskell IO monad that happens to sneeze during compilation. Personification, it's a character building device. C'mon, work with me here, people.
|
10
|
+
|
11
|
+
# Why?
|
12
|
+
|
13
|
+
Becuse being a douchebag bastard while pretending to help people attempt the employment ritual is just too much schedenfreudic fun to pass up. Without malevolent intervention, offices would be boring pits of hell ruled by us mechanical assholes. Size 49 relaxed fit assholes (managers`**` always have weight problems, it's de riguer for enhancing alpha dominance. I want my drycleaning hung vertically all the way through the lava pits, no wrinkles on my blazers, lowly peasant. )
|
14
|
+
|
15
|
+
`**` New rule: Can't be held responsible for your feelings. The warning about emotions is amended retroactively in spite of estopell. Ha-ha.
|
16
|
+
|
17
|
+
|
18
|
+
# Go
|
19
|
+
|
20
|
+
## Broken down into two step. So simple, management can almost handle it.
|
21
|
+
|
22
|
+
### 1. Install `[sudo] gem install parse_apply_infuriation_engine`
|
23
|
+
|
24
|
+
### 2. Run `parse_apply_infuriation_engine`
|
25
|
+
|
26
|
+
|
27
|
+
## License
|
28
|
+
|
29
|
+
MIT
|
30
|
+
|
31
|
+
## Author
|
32
|
+
|
33
|
+
Barry Allard
|
34
|
+
|
35
|
+
## Copyright
|
36
|
+
|
37
|
+
Now. Whenever it is for you.
|
@@ -0,0 +1,147 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: UTF-8
|
3
|
+
#
|
4
|
+
# barry.allard@gmail.com
|
5
|
+
#
|
6
|
+
# https://github.com/steakknife
|
7
|
+
#
|
8
|
+
# MIT License
|
9
|
+
|
10
|
+
def prompt(prompt) ; puts "#{prompt}: " end
|
11
|
+
|
12
|
+
def get_line ; gets.chomp end
|
13
|
+
|
14
|
+
def ask(prompt)
|
15
|
+
prompt(prompt)
|
16
|
+
get_line
|
17
|
+
end
|
18
|
+
|
19
|
+
def unchecked_raw_typed_ask(prompt, type)
|
20
|
+
prompt("Input #{prompt} (#{type})")
|
21
|
+
puts "<Enter> on a blank line to end." if type == :array
|
22
|
+
get_line
|
23
|
+
end
|
24
|
+
|
25
|
+
def validate(value, validator_proc)
|
26
|
+
( ! validator_proc.nil? ) ? ( ! ! validator_proc.call(value) )
|
27
|
+
: true
|
28
|
+
end
|
29
|
+
|
30
|
+
def raw_typed_ask(prompt, type, validator_proc, empty_okay=false)
|
31
|
+
loop do
|
32
|
+
value = unchecked_raw_typed_ask(prompt, type)
|
33
|
+
return nil if ( value.nil? || value.empty? ) && empty_okay
|
34
|
+
return value if validate(value, validator_proc)
|
35
|
+
puts "Invalid format. Try again or Ctrl-C to exit."
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def typed_ask(prompt, type, validator_proc)
|
40
|
+
|
41
|
+
value = nil
|
42
|
+
|
43
|
+
case type
|
44
|
+
when :array
|
45
|
+
value = []
|
46
|
+
while !(temp_value=raw_typed_ask(prompt, type, validator_proc, empty_okay=true)).nil?
|
47
|
+
value << temp_value
|
48
|
+
end
|
49
|
+
when :string
|
50
|
+
until !(value=raw_typed_ask(prompt, type, validator_proc, empty_okay=false)).nil?
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
value
|
55
|
+
end
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
# Start here. Map and flashlight with batteries included.
|
60
|
+
|
61
|
+
trap("INT") { $stderr.puts "\n ! Aborted." ; exit 1 }
|
62
|
+
|
63
|
+
|
64
|
+
# Obvious.
|
65
|
+
|
66
|
+
puts
|
67
|
+
puts "parse.com application submission app"
|
68
|
+
puts
|
69
|
+
puts "Copyright Barry Allard 2012 MIT Licensed"
|
70
|
+
puts
|
71
|
+
|
72
|
+
|
73
|
+
# Fields to take from the user to be converted to JSON.
|
74
|
+
|
75
|
+
application_object = {}
|
76
|
+
|
77
|
+
{
|
78
|
+
'name' => [:string, lambda { |s| s =~ /\S/ } ], # Not contrained by Latin.
|
79
|
+
'email' => [:string, lambda { |e| e =~ /[^@]+@[^@]+/ } ], # gTLDs and other weirdness.
|
80
|
+
'position' => [:string, lambda { |p| !p.empty? } ], # Let's not get HR involved right away on this one.
|
81
|
+
'about' => [:array, lambda { |a| a.is_a? String } ], # Life epic here. In only 49 cantos.
|
82
|
+
'urls' => [:array, lambda { |s| s =~ /:/ } ], # https://, mailto:, etc.
|
83
|
+
}.map do |name, other|
|
84
|
+
application_object[name] = typed_ask(name, *other)
|
85
|
+
end
|
86
|
+
|
87
|
+
|
88
|
+
# Make it JSON. Make it awesome.
|
89
|
+
|
90
|
+
require 'json'
|
91
|
+
|
92
|
+
application_json = JSON.pretty_generate(application_object)
|
93
|
+
|
94
|
+
|
95
|
+
# Show the final draft. Last chance to remove all those false degrees you had in your "pretend" résumé.
|
96
|
+
|
97
|
+
puts application_json
|
98
|
+
|
99
|
+
exit 1 unless ask('Are you sure you wish to apply? "Yes" to approve', [:string, lambda { |s| s.downcase =~ /yes/ } ])
|
100
|
+
|
101
|
+
|
102
|
+
# Send it.
|
103
|
+
|
104
|
+
Net::HTTP.new 'parse.com' do |http|
|
105
|
+
|
106
|
+
http.use_ssl = true
|
107
|
+
|
108
|
+
response, _ = http.post '/jobs/apply', application_json, 'Content-Type' => 'application/json'
|
109
|
+
|
110
|
+
if response.code.to_s == '200'
|
111
|
+
puts "Your submission at #{Time.now} to parse.com was successful. Have a martini."
|
112
|
+
exit 0
|
113
|
+
else
|
114
|
+
puts <<-eos
|
115
|
+
Your submission at #{Time.now} to parse.com was spectacularly UNsuccessful.
|
116
|
+
|
117
|
+
You came off as a noob to your potential coworkers. *Formerly* potential...
|
118
|
+
|
119
|
+
You can almost hear the non-psychotic hilarity brewing in just a few hours (or less, depending on timezones) (XKCD and PHDcomics eat your hearts out. Don't fuck with Dilbert.).
|
120
|
+
|
121
|
+
Just listen (come closer to the screen, I won't bite hard):
|
122
|
+
|
123
|
+
'
|
124
|
+
Hey everybody, I can't fucking believe it. Get a load of this noob's application in the server log.
|
125
|
+
It it's so hilarious I've got to post this on the 3 upstair fridges and the on the mezzanine level.
|
126
|
+
Post as in POST method, that this genius couldn't obviously handle obviously. Pre-interview fail #38. HAHAHAHA. :D
|
127
|
+
This is way too good for reddit. Subject: Even the user agent says lamer.
|
128
|
+
'
|
129
|
+
|
130
|
+
Pack it up, junior. It's over. Accept the fact like 90's hipster punk reunion bands, it's not gonna work out.
|
131
|
+
|
132
|
+
{H/Sh}e wants h{is/er} key back too. Via postal mail. No drama or awkward notes. I mean it.
|
133
|
+
|
134
|
+
This isn't television or an episode of The Office. Unfortunately, this has now become your life. Wow, I'm not speechless.
|
135
|
+
|
136
|
+
Code #{response.code}
|
137
|
+
|
138
|
+
PS: I'm glad I'm not you. If you would like an application for unemployment, click here: http://‽.ws/disab Good luck.
|
139
|
+
|
140
|
+
eos
|
141
|
+
|
142
|
+
exit 1
|
143
|
+
|
144
|
+
end
|
145
|
+
|
146
|
+
end
|
147
|
+
|
data/gem-public_cert.pem
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDOjCCAiKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBDMRUwEwYDVQQDDAxiYXJy
|
3
|
+
eS5hbGxhcmQxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkW
|
4
|
+
A2NvbTAeFw0xMzA0MDgwMTI0NThaFw0xNDA0MDgwMTI0NThaMEMxFTATBgNVBAMM
|
5
|
+
DGJhcnJ5LmFsbGFyZDEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPy
|
6
|
+
LGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvDcmlxJH
|
7
|
+
eySiUBcYTqGXaWETRVYmgfGwWRPZzqkmBdIVZkbk9SWxseiHWIReFWjP438UoUTs
|
8
|
+
J17G/HuQb0SmjPCMZy8967Fb2wqs+QRbcmpnmtYA1vilgC2CIzntFOFLSA2KpfZH
|
9
|
+
dJSsg6aaXqwS4/KJxK6ooDsp+iR6zGTINwkdUt4ktpqgCHz1VYuzvii2slnazbm4
|
10
|
+
cQUi/wWIynHyzzdrPvDhGgaZm161MYHidCtV+wzqwjeVeFsyQwCFVEkrD/0G98ho
|
11
|
+
Gti8vB6Xj6VjO3n+kh/KlYZgmM7SWauLpo+2RGlIYVYdpQQWGwhMEmvSgBxjfX4c
|
12
|
+
unDFxO1ZAQIRBQIDAQABozkwNzAJBgNVHRMEAjAAMB0GA1UdDgQWBBS+Kk7ypi9u
|
13
|
+
kFUcaqJlpaKO7eWiUTALBgNVHQ8EBAMCBLAwDQYJKoZIhvcNAQEFBQADggEBALie
|
14
|
+
YCNeW9EIQ/j8+2emMm0484JVtycOqPyIu5UALtsU42En392HVOZ6oEA/rh2KFRvq
|
15
|
+
dcDwcJPI/u7PzWp9TNp81PTShtHMtSs7Wv1UsC04vQ9b6XBEomWbbzoxxgzyjP7l
|
16
|
+
ZV4L5HzmX0nDOSEFJyYkqbwgYjIoldg2TMlw2BeoVqGm7Gx1ljXKb2Kg5iasyDpI
|
17
|
+
C/gAiGBIAX7FxyIXmjZq38xWBOxyGF3NFL/W6z+vhJg81HGdNBCpIdwrQ/eXOjba
|
18
|
+
VqwwfY+Ms3gcCHSERG1X4AFW1zesX+UWcTCwVLtAsuRWQhC8odDSVDWzUfkZmOQt
|
19
|
+
ViIxU1ZphInql7L5g34=
|
20
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib/', __FILE__)
|
3
|
+
$:.unshift lib unless $:.include?(lib)
|
4
|
+
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "parse_apply_infuriation_engine"
|
8
|
+
s.version = '0.0.1gamma'
|
9
|
+
s.platform = Gem::Platform::RUBY
|
10
|
+
s.authors = ["Barry Allard"]
|
11
|
+
s.email = ["barry@barryallard.name"]
|
12
|
+
s.homepage = "http://github.com/steakknife"
|
13
|
+
s.summary = %q{Streamlined parse.com application submission process.}
|
14
|
+
s.description = %q{The best way to spoil their fun.}
|
15
|
+
|
16
|
+
s.required_ruby_version = ">= 1.8.7"
|
17
|
+
s.required_rubygems_version = ">= 1.3.6"
|
18
|
+
|
19
|
+
s.files = `git ls-files`.split("\n") rescue ''
|
20
|
+
s.executables = %w(parse_apply_infuriation_engine)
|
21
|
+
end
|
22
|
+
.tap {|gem| gem.signing_key = File.expand_path(File.join('~/.keys', 'gem-private_key.pem')) ; gem.cert_chain = ['gem-public_cert.pem']} # pressed firmly by waxseal
|
data.tar.gz.sig
ADDED
Binary file
|
metadata
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: parse_apply_infuriation_engine
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1gamma
|
5
|
+
prerelease: 5
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Barry Allard
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain:
|
12
|
+
- !binary |-
|
13
|
+
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURPakNDQWlLZ0F3SUJB
|
14
|
+
Z0lCQURBTkJna3Foa2lHOXcwQkFRVUZBREJETVJVd0V3WURWUVFEREF4aVlY
|
15
|
+
SnkKZVM1aGJHeGhjbVF4RlRBVEJnb0praWFKay9Jc1pBRVpGZ1ZuYldGcGJE
|
16
|
+
RVRNQkVHQ2dtU0pvbVQ4aXhrQVJrVwpBMk52YlRBZUZ3MHhNekEwTURnd01U
|
17
|
+
STBOVGhhRncweE5EQTBNRGd3TVRJME5UaGFNRU14RlRBVEJnTlZCQU1NCkRH
|
18
|
+
Smhjbko1TG1Gc2JHRnlaREVWTUJNR0NnbVNKb21UOGl4a0FSa1dCV2R0WVds
|
19
|
+
c01STXdFUVlLQ1pJbWlaUHkKTEdRQkdSWURZMjl0TUlJQklqQU5CZ2txaGtp
|
20
|
+
Rzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF2RGNtbHhKSApleVNpVUJj
|
21
|
+
WVRxR1hhV0VUUlZZbWdmR3dXUlBaenFrbUJkSVZaa2JrOVNXeHNlaUhXSVJl
|
22
|
+
RldqUDQzOFVvVVRzCkoxN0cvSHVRYjBTbWpQQ01aeTg5NjdGYjJ3cXMrUVJi
|
23
|
+
Y21wbm10WUExdmlsZ0MyQ0l6bnRGT0ZMU0EyS3BmWkgKZEpTc2c2YWFYcXdT
|
24
|
+
NC9LSnhLNm9vRHNwK2lSNnpHVElOd2tkVXQ0a3RwcWdDSHoxVll1enZpaTJz
|
25
|
+
bG5hemJtNApjUVVpL3dXSXluSHl6emRyUHZEaEdnYVptMTYxTVlIaWRDdFYr
|
26
|
+
d3pxd2plVmVGc3lRd0NGVkVrckQvMEc5OGhvCkd0aTh2QjZYajZWak8zbitr
|
27
|
+
aC9LbFlaZ21NN1NXYXVMcG8rMlJHbElZVllkcFFRV0d3aE1FbXZTZ0J4amZY
|
28
|
+
NGMKdW5ERnhPMVpBUUlSQlFJREFRQUJvemt3TnpBSkJnTlZIUk1FQWpBQU1C
|
29
|
+
MEdBMVVkRGdRV0JCUytLazd5cGk5dQprRlVjYXFKbHBhS083ZVdpVVRBTEJn
|
30
|
+
TlZIUThFQkFNQ0JMQXdEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBTGllCllD
|
31
|
+
TmVXOUVJUS9qOCsyZW1NbTA0ODRKVnR5Y09xUHlJdTVVQUx0c1U0MkVuMzky
|
32
|
+
SFZPWjZvRUEvcmgyS0ZSdnEKZGNEd2NKUEkvdTdQeldwOVROcDgxUFRTaHRI
|
33
|
+
TXRTczdXdjFVc0MwNHZROWI2WEJFb21XYmJ6b3h4Z3p5alA3bApaVjRMNUh6
|
34
|
+
bVgwbkRPU0VGSnlZa3Fid2dZaklvbGRnMlRNbHcyQmVvVnFHbTdHeDFsalhL
|
35
|
+
YjJLZzVpYXN5RHBJCkMvZ0FpR0JJQVg3Rnh5SVhtalpxMzh4V0JPeHlHRjNO
|
36
|
+
RkwvVzZ6K3ZoSmc4MUhHZE5CQ3BJZHdyUS9lWE9qYmEKVnF3d2ZZK01zM2dj
|
37
|
+
Q0hTRVJHMVg0QUZXMXplc1grVVdjVEN3Vkx0QXN1UldRaEM4b2REU1ZEV3pV
|
38
|
+
ZmtabU9RdApWaUl4VTFacGhJbnFsN0w1ZzM0PQotLS0tLUVORCBDRVJUSUZJ
|
39
|
+
Q0FURS0tLS0tCg==
|
40
|
+
date: 2013-04-08 00:00:00.000000000 Z
|
41
|
+
dependencies: []
|
42
|
+
description: The best way to spoil their fun.
|
43
|
+
email:
|
44
|
+
- barry@barryallard.name
|
45
|
+
executables:
|
46
|
+
- parse_apply_infuriation_engine
|
47
|
+
extensions: []
|
48
|
+
extra_rdoc_files: []
|
49
|
+
files:
|
50
|
+
- README.md
|
51
|
+
- bin/parse_apply_infuriation_engine
|
52
|
+
- gem-public_cert.pem
|
53
|
+
- parse_apply_infuriation_engine.gemspec
|
54
|
+
homepage: http://github.com/steakknife
|
55
|
+
licenses: []
|
56
|
+
post_install_message:
|
57
|
+
rdoc_options: []
|
58
|
+
require_paths:
|
59
|
+
- lib
|
60
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: 1.8.7
|
66
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ! '>='
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: 1.3.6
|
72
|
+
requirements: []
|
73
|
+
rubyforge_project:
|
74
|
+
rubygems_version: 1.8.23
|
75
|
+
signing_key:
|
76
|
+
specification_version: 3
|
77
|
+
summary: Streamlined parse.com application submission process.
|
78
|
+
test_files: []
|
79
|
+
has_rdoc:
|
metadata.gz.sig
ADDED
Binary file
|