Skip to main content Design points
- Create an intuitive method of defining rules and automation
- Rule language should “flow” in a way that you can read the rules out loud
- Abstract away complexities of OpenHAB (Timers, Item.state vs Item)
- Enable all the power of Ruby and OpenHAB
- Create a Frictionless experience for building automation
- The common, yet tricky tasks are abstracted and made easy. e.g. Running a rule between only certain hours of the day
- Tested
- Extensible
- Anyone should be able to customize and add/remove core language features
- Easy access to the Ruby ecosystem in rules through ruby gems.
Why Ruby?
- Ruby is designed for programmer productivity with the idea that programming should be fun for programmers.
- Ruby emphasizes the necessity for software to be understood by humans first and computers second.
- For me, automation is a hobby, I want to enjoy writing automation not fight compilers and interpreters
- Rich ecosystem of tools, including things like Rubocop to help developers create good code and cucumber to test the libraries
- Ruby is really good at letting one express intent and creating a DSL within ruby to make that expression easier.