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


  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