Foobara 101
- Command Basics a. no-op command b. run/outcome interface
- type basics: command that has typed inputs/result a. make an Add command b. call with bad inputs to show outcome errors
- domain basics a. put Add in a Math domain b. carry out some domain method not on Module
- organization basics a. put Math in a FoobaraDemo organization b. carry out some organization method not on Module
- model basics a. Foobara::CapyCafe::Capybara model (name/age) b. IncrementAge command i. call with a capybara ii. call with attributes
- upgrade to entity a. InMemory crud driver at first? b. upgrade to LocalFilesCrudDriver?
- Command connectors a. cli b. http i. rack ii. rails
Intermediate
- Manifest metadata?
- Remote command basics a. import from another process and call IncrementAge
- commands a. make a Subtract command via #run_subcommand b. make an integer division method
- errors a. make a custom DivideByZero error
Advanced
- Domain mappers a. make a domain mapper i. Maybe map from some Animal model? Animal.names[0].first + last... Birthday to age?
- types a. custom types b. demonstrate casting by returning attributes instead of a Capybara a. attributes types w/ processors i. :required ii. :allow_nil
- entities 12. associations
- creating stand-alone foobara projects
- ruby
- typescript
Expert
- command c. callbacks: event log use-case d. transactions in commands
- creating transactions in the console/tests
- custom crud driver a. read/write to yaml file
- custom command connector a. maybe grpc or something? probably something rpc related is the easiest?
- value processors
- custom types from scratch a. complex type
- namespaces
- extract-repo tool