Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Lotus: because sometimes you need to reinvent the wheel

Lotus: because sometimes you need to reinvent the wheel

Arjan van der Gaag

July 08, 2015

More Decks by Arjan van der Gaag

Other Decks in Programming


  1. lotus sometimes you need to reinvent the wheel

  2. Arjan van der Gaag @avdgaag brightin

  3. Lotus is a Ruby MVC web framework comprised of many

    micro-libraries. It has a simple, stable API, a minimal DSL, and prioritises the use of plain objects over magical, over- complicated classes with too much responsibility.
  4. standalone frameworks

  5. standalone frameworks to build full-stack applications

  6. from small endpoints… require 'bundler/setup' require 'lotus/router' run Lotus::Router.new {

    get '/', to: ->(env) { [200, {}, ['Hello, world'] } }
  7. …to containers

  8. some conventions

  9. some conventions many objects

  10. some conventions many objects no monkey patches

  11. simplicity > convenience

  12. testable class Show include Lotus::Action expose :book def initialize(repository: BookRepository)

    @repository = repository end def call(params) @book = @repository.find params[:id] end end
  13. focus on maintenance

  14. writing Ruby is fun

  15. Guides and docs at lotusrb.org

  16. @avdgaag arjanvandergaag.nl