Código fuente presentado en la charla dictada por Alistair Cockburn y Andrés N. Robalino. Se implementa el hexágono pedazo por pedazo hasta cumplir con todas las funciones (PriceMaker
) que son:
- Devolver el mismo valor entregado.
- Devolver tasa de impuesto para algún estado del país Estados Unidos (El estado Florida sería ~6%)
- Precio total tomando en cuenta la tasa de impuesto de un estado en particular.
Adicionalmente se incluyen adaptadores demostrando el intercambio de tecnologías y las ejecutadoras (actores) principales.
Para poder ejecutar las pruebas se necesita JUnit y Hamcrest (maneras de descargarlo aquí).
Puedes hacerlo directamente desde el IDE o también compilar todas las clases. Asumiendo que burnlino.jar
existe y se encuentra en /Users/andrasio/Code/cobolin/burnlino.jar
podemos hacer:
java -cp .:/Users/andrasio/Code/cobolin/burnlino.jar com.andrab.flares.cobolino.Main echoValue 500
java -cp .:/Users/andrasio/Code/cobolin/burnlino.jar com.andrab.flares.cobolino.Main getTaxRateForState FL
java -cp .:/Users/andrasio/Code/cobolin/burnlino.jar com.andrab.flares.cobolino.Main calculatePriceWithTaxRate 50 FL
Este repositorio proporciona burnlino.jar
para usarlo de esa manera. Si deseas experimentar con puertos e intercambiarlos, necesitas editar el código fuente y recompilar. Puedes realizar la generación de burnlino.jar
usando uno de los scripts en la carpeta bin
o nu
también de la siguiente manera:
En Nushell
nu nu/generate_jar.nu
Bash
./bin/generate_jar
También puedes ejecutar el script para ejecutar la aplicación (verifica que la fuente donde se encuentra burnlino.jar
en el script es el mismo de tu máquina). Solamente está de conveniencia para ejecutar tres veces la aplicacíon y generando burnlino.jar
previo a ese paso también.
En Nushell
nu nu/cli_examples.nu
Bash
./bin/cli_examples
Para poder arrancar la aplicación web, vas a necesitar instalar JRuby 9.2.13.0. Una vez hecho eso, asegúrate de que se encuentre en el PATH
los binarios de la carpeta bin
de JRuby en la shell que usas de preferencia y que no hayan conflictos si se tienen otros ámbitos de desarrollo de Ruby (rvm también es otra opción).
Verifica que se encuentra satisfactoriamente lo siguiente:
Ⲗ > which gem
─────────┬───────────────────────────────────────────────────────
arg │ gem
path │ /Users/andrasio/code/cobolin/jruby-9.2.13.0/bin/gem
builtin │ No
─────────┴───────────────────────────────────────────────────────
Ⲗ > which jruby
─────────┬─────────────────────────────────────────────────────────
arg │ jruby
path │ /Users/andrasio/code/cobolin/jruby-9.2.13.0/bin/jruby
builtin │ No
─────────┴─────────────────────────────────────────────────────────
Si logras ver algo similar (es decir, gem
y jruby
se encuentren dentro del directorio de JRuby que descargaste jruby-9.2.13.0
), instala bundler
:
gem install bundler
Ahora en la carpeta web_app
, instala las dependencias así:
bundle install
Si todo sale bien y se instalan las dependencias, puedes instanciar la aplicación web (¡y no olvides que tiene que existir burnlino.jar
también!) así:
./price_maker