Giter Club home page Giter Club logo

flor's Introduction

flor

Build Status Gem Version

Flor is a "Ruby workflow engine", if that makes any sense.

Design

  • Strives to propose a scheming interpreter for long running executions
  • Is written in Ruby a rather straightforward language with at least two wonderful implementations (MRI and JRuby, which is enterprise-friendly)
  • Stores everything as JSON (if it breaks it's still readable)
  • Stores in any database supported by Sequel (the JSON goes in the "content" columns, along with some index columns)
  • Favours naive/simple implementations over smart ones
  • All in all should be easy to maintain (engine itself and executions running on top of it)

Documentation

see doc/.

Running the specs

(Most of the time, as developer of flor, I'm writing specs, running them with FLOR_DEBUG=dbg and hammering the code until the specs are green. The following lines are about setting FLOR_DEBUG for flor development).

setting FLOR_DEBUG

This is a targetted run of a spec file:

FLOR_DEBUG=msg,err bundle exec rspec spec/punit/cancel_spec.rb
  • msg displays the flor messages in a summary, colored format
  • err displays errors with details, when and if they happen
  • src displays the source before it gets parsed and launched
  • tree displays the syntax tree as parsed from the source, right before launch
  • run shows info about each run that just ended
  • sto displays debug information about the storage, it's mostly SQL statements

FLOR_DEBUG=dbg and FLOR_DEBUG=all

There are two shortcuts for the flags above:

FLOR_DEBUG=dbg bundle exec rspec spec/punit/cancel_spec.rb
  # is equivalent to
FLOR_DEBUG=msg,err,src,tree,run bundle exec rspec spec/punit/cancel_spec.rb

and

FLOR_DEBUG=all bundle exec rspec spec/punit/cancel_spec.rb
  # is equivalent to
FLOR_DEBUG=msg,err,src,tree,run,log,sto bundle exec rspec spec/punit/cancel_spec.rb

I tend to use FLOR_DEBUG=dbg when developping flor.

LICENSE

MIT, see LICENSE.txt

flor's People

Contributors

jmettraux avatar northox avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.