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 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
+
@@ -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