Project

foobara

0.0
The project is in a healthy, maintained state
Implements command pattern for encapsulating and managing domain complexity as well as many supporting libraries including entities.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

 Project Readme

Foobara

Foobara is a command-based software framework with an emphasis on reflection features to facilitate integration with other systems or subsystems. The focus of the framework is to provide these features to help with managing domain complexity in projects with higher domain complexity. However, Foobara is also expected to be pleasant for use in projects with simpler domains as well.

Installation

To add foobara to an existing project, you can add foobara gem to your Gemfile or .gemspec as you normally would.

To create a new project using a foobara generator, you could install the foob gem with gem install foob and then run foob generate ruby-project --name your-org/your-new-project-name

Usage

You can find a code demo video and an overview video of what Foobara is at https://foobara.com

Contributing

Can contribute via a github pull request as is typical but see info about licensing below first.

Make sure the test suite and linter pass locally before opening a pull request. The build will fail if test coverage is below 100%.

It might be a good idea to reach out for advice if unsure how to chip away at the part of this project that you are interested in.

Developing locally

You should be able to run bundle install and then rake to run the test suite and the linter.

Monorepo Structure

Foobara is split up into many projects. Many are in separate repositories. This repository however is unique in the Foobara ecosystem of projects because it is a monorepo. Sometimes projects are extracted from here into their own repositories.

Each project has its own directory in the projects/ directory.

Licensing

Foobara is licensed under the Mozilla Public License Version 2.0. Please see LICENSE.txt for more info.