Git Product home page Git Product logo

rom-rails-skeleton's Introduction

rom-rails-skeleton

This is a skeleton of a rails app that uses following gems:

  • rom for persistence
  • rom-sql adapter for sqlite db
  • rom-repository for extracting structs from db
  • database_cleaner for, well, cleaning the db (in test mode)
  • dry-container for application IoC container
  • dry-auto_inject for auto-DI from the container
  • rspec for tests
  • figaro for setting up env vars in test and development mode

Important places

  • config/initializer/rom.rb is where we configure ROM
  • config/initializer/my_app.rb is where we configure our app container
  • lib/my_app a simple app container which also has access to Rails.application

TODO

  • add controller with some views and a capybara spec
  • show how to use dry-auto_inject

rom-rails-skeleton's People

Contributors

solnic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

rom-rails-skeleton's Issues

Trading one global for another

In the Rails >> Setup documentation for ROM you say:

Accessing the global container directly is considered as a bad practice. The recommended way is to use a DI mechanism to inject specific ROM components as dependencies into your objects. See rom-rails-skeleton for an example of such setup.

However, it appears that you are only substituting the global singleton MyApp.instance for Rom.env. How is this not just another global container?

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.