Add new posts and GPG page

This commit is contained in:
Ariejan de Vroom 2014-04-16 10:04:33 +02:00
parent 9c8a4b0047
commit e9859a904e
3 changed files with 99 additions and 29 deletions

View File

@ -9,37 +9,39 @@ title: GPG Public Key
## Proof of identity
As far as you can trust this website, this is a proof of my identity.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Yes, I use GPG. This message is here to prove my identity to you.
My name is Ariejan de Vroom and I use GPG.
My public key information is:
ID: 0xF713697B
Fingerprint: 8450 D928 4373 164E 25CC 7E0D AD73 9154 F713 697B
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.22 (Darwin)
Comment: GPGTools - https://gpgtools.org
iQQcBAEBCgAGBQJTPUABAAoJEK1zkVT3E2l7CyEf/iFXQ+hl8As1oNpHoNKLnIie
wpyWBbhOj0YAuxoYA1fmFn3IASq3+st+VZEX82M3FedBLXozxFdFRE6OzLIKlx5i
ulbTtjq9gpiPcTO6n9P8hAdn672LAc0Hgo2CDZLg+SGkeseMzrFE5Pki9j7PHUP8
3SEk7j/iPQumfoJtPKRqzsnamViFonHorJGY9pso7hHPIaQlw7hQARkU5/OkADKM
BjlfqTxcgId9da9Y+yro3MnVWtAR8j1GWZDF90t/xipOQ9Bdj86jPiF16HEtM539
VPOsayxry24gEmVMsk4cERgysxUIp2js2v/ETL0udxk+7mP2EILVtUipYGR3jSYJ
2ByhPag9LgbqSttXzyrFs3aGl/mp65xZhOuWE/RJexcSa+opB2lQX1YEY3FmgTua
cL13rALwd4oa4WSh6nSXlQX6886tV6QQLLUp76Kdss/zBIzTdfmJy51nMhV0dBx9
hN8eCAZCGBXS9fBww4Se7xPJppJvSLQbIfpmrTgL3hLaaI0P/B9vlQ0/T+bU/rxX
TGukCrM3AQ0viYjw8UvYqvYX86rf0LWzMTKeIJqvId8T4MPceWpxAkUlR64W9J/X
/B19rrn+QhOwm/yu0vo7c+LmEpdhvX/6B1Gl7B2FTtzZc1fXTLVPuWSz9s/9K+XX
wxbCX4xrNocAfM+ZjR5CpDOPYAhCSlgiTsZBFQ2InN96TjgfgtsBD0oscrFLun6b
qKCFScWGRy6ieYkpYi33Rs+UdIGyzf6MezoMmdGTJFlMdCWP8RPBZvvzA7qSfYth
HycPonFXnuRm8kjzgQWw7XTYenaaZIe/Cl9w2KtCzXF1dMpBD5SPCqejP7fPLOoW
wU3qyiHvDFwsY8dZyi1DqSMHDO0GmYc4g9vJ5jgn/j5PBPEYVnzvjwgiFHT1vTaC
rMhKZb5fVq1uLtNxpHLGDPfYIE+XwcKq/wTg7Sq4tPOiM8Hpfa3Ard5z19K9ONJK
Ks2k3YHZY/EWSQV6iPMXXogY9chc9wnJaNSMMAvrMMFkQRm1Dqbl8DQXNVn4Qe9G
3ZMS5vudACrQgr+oRuvN6sK2T7ezXrZoYorM/1Q4U24to6zk7zJJMJ7Yb1YTISck
rpveLzor1PGa9VPxVs1eNGfLwd2zWs15HG/uLNxs0oC8yC+1Hh/7kzunlFd3bLrX
MGDDfW/BBqCc5MrxXUMnG+SnKJ56juv8G5VTMe2bKtalbNPinp5BnmWC0QRf9ThN
MjIP9n/N7bdLddQjel8x3yFvma2etB+fKLvmsbSYJ3khKCO7858qWQEnur84QrCW
letzIrjldL6419I5z6CtOe8JzWwEn5j2uq7i3xy4Ss5qsNG9RM0nWqzJx6o+/mU=
=x5b0
iQQcBAEBCgAGBQJTTjZQAAoJEK1zkVT3E2l74YYgAJJ4avLqKmWcCKbaHk2uMFo8
kE947m1XZ+s45U9wEAVJXNS+zbAc/RzD/Q+Gs3qJpVLx8wECw/6E6yjXODlGbDIG
sY4cC/RKbavvW5f2eSoKKL7H5Ptmhx9O8HCPvLMg/fDA1RNUWckoTQvyzZ6XTJWb
g1z2uXzL4aQZ50k1UC0dcD0qiErl6LAk0wU+bIEYdLh8y3IH88aRhMZoG0YV5xFC
mQXkfsXu7kUHsDJsfX5nmMY6+j+qP/hNVggsOQZ65smhI6WfLyTSzXX4J8fiB3FH
cihDVB+lhzUceOFY3J0WdIOCiIxG6r/xa71cCGYFMh/BvMeYEzKU6O9KU6m8YqiH
+RPH8+km1A+2LAP9kGB9des55YJd9mivDwFRNMReYcypfs6FsXVsBU4M1H1pY62I
IejCYZxlmrHlVLdfkPls1pwO5KMy92foVlcm+TCRtSsEQrYhcVVKSFvh8U1qUJqw
GB5HrkYzlkRMQwd0DcIoNXr7NeVL0Haot/ZeQYSgc7FVBJt3Uq82erjkPaeaGQCv
D7UO7agPJy7hzeVeiJreTHwM1L48zmpv+qseLh6LAJH14r4piKZwxYxFgvGi0fp9
cH27lHi4IwLGJaeOufpCwvCE98eAxr5zYxKfCeCNNCK4abMJgYPrepnbEb1I/LDD
Wjri+BzdtUMh2GBl8ZYoVBm07XN2o1tLh1WoEpp/gV+tLTikkAIyWnJ2Y5ISOl/5
4yto5fqwB+3EBwvAsoFpclAmm7Ufr+J5jHvZ1Ea+xyc475W0DjpqNyUX3yj6rjP6
rbCwvqnvvCcrG49LOrg8cu4/WxKia+MTz8/wZboQnZLAmgxdFh+M9vvolR5UP1ao
TBtVXUQa43VLMHuYxcbUeh37L480RyMdyyDkvBNl18r9rGZCuZosa9BTRyoY45rs
Jr0HpWZGSTmSF2nej1Cg3MU8VT1ywsQARHdVwPYmNlklxI81PGcelSlqqyjFvmSH
wvRp2pokygpN4SBzoUCsHt+UStM12tbg5k3SQWG4Jb5OcVl2PMnE1eNoPeleVw+8
W3EdpMoiwzv6KPstIvnBdLe24pdLWvHzeBTI7p0CgS0qitmDIBQhGsB7Du3Nn57+
Sk6IK32/9Qn2PXiyeTMdE8NOfj52WKVD3rFaMPsjU/XeqA/nWKoJCbISQ3yp0c8J
D62HQpKhxRRcRuesVRhbFdyK+1ssLQ5ZUcx7kKPzLn2amBQzG80XNZbjb24CbY2X
CXRh3R0DoSuAnDbYefT9p1ZXiLYMamMkX2UQYavrW3rWh2oA4oJwoTbqJrWtSvjg
wXNyc35IivZxfZHegHUmtfEuVX/cFTRLpoIUOWEpZpVLC6pjVfRznVapExr8X5o=
=1VS2
-----END PGP SIGNATURE-----

View File

@ -2,7 +2,6 @@
title: "Dealing With Technical Debt"
created_at: 2014-04-04 12:38:41 +0200
kind: article
published: false
tags:
- programming
- craftsmanship

View File

@ -0,0 +1,69 @@
---
title: "Testing $HOME with Cucumber and Aruba"
created_at: 2014-04-15 21:42:43 +0200
kind: article
published: true
tags:
- programming
- cucumber
- aruba
summary: |
Cucumber and Aruba make it awesome to write acceptance tests for your
command line programs. But how do you test your program interacting with
files from a user's <code>$HOME</code> directory?
---
[Cucumber][1] and [Aruba][2] are awesome tools to write acceptance tests for your command line application. The allow you to do things like this:
```
:::gherkin
Scenario: Exit with 0 when no examples are run
Given a file named "a_no_examples_spec.rb" with:
"""ruby
"""
When I run `rspec a_no_examples_spec.rb`
Then the exit status should be 0
And the output should contain "0 examples"
```
_This example was taken rspec-core._
Aruba basically does three things for you:
* Create and inspect files and directories
* Run commands
* Inspect output and exit status
## The problem
Now, if you are writing a CLI that interacts with a configuration file in the user's home directory, you'd write a cucumber like this:
```
:::gherkin
Scenario: use .my-app configuration
Given a file named "~/.my-app" with:
"""
awesome_enabled: true
"""
When I run `my-app`
Then the output should contain "AWESOME"
```
But how does your app and Aruba differentiate between this generated test file and your actual configration file in your home directory? It doens't.
## The answer
The solution is quite easy and elegant, in your `Before` set the `$HOME` environment variable to a custom location inside the `tmp/aruba` directory.
In `features/support/env.rb`:
```
:::ruby
Before do
set_env 'HOME', File.expand_path(File.join(current_dir, 'home'))
FileUtils.mkdir_p ENV['HOME']
end
```
This will set `$HOME` to `tmp/aruba/home` in the context of your cucumbers (and execute binary). `current_dir` automatically points to the right location for the aruba temporary directory.
[1]: https://github.com/cucumber/cucumber
[2]: https://github.com/cucumber/aruba