/steam

The rendering stack used by both Wagon and Station (new name of the engine). It includes the rack stack and the liquid drops/filters/tags.

Primary LanguageRubyMIT LicenseMIT

Steam

The rendering stack used by both Wagon and Engine. It includes:

  • the rack stack to pages and already precompiled assets (through webpack, vite or other).
  • the liquid drops/filters/tags libs to parse and render liquid templates.
  • a Filesystem adapter which reads the source of a site written for Wagon.
  • a MongoDB adapter which reads an existing site hosted by the Locomotive Engine.

Note: Steam passes all the specifications of both Wagon and Engine.

Installation [WIP]

gem install puma
gem install locomotivecms_steam

Usage

Command line:

Warning: For now, Steam is not aimed to be run standalone. The following is just a proof of concept.

Display all the options:

steam --help

Render a local Wagon site:

steam --path=<PATH to a Wagon site>

Render a Engine site:

steam --database=<NAME of the MongoDB database used by the Engine> --assets-path=<PATH to the public folder of the Locomotive>

Once launched, open your browser

open localhost:8080

Inside Engine / Wagon:

https://github.com/locomotivecms/engine/blob/master/lib/locomotive/steam_adaptor.rb https://github.com/locomotivecms/engine/blob/master/spec/dummy/config/routes.rb

https://github.com/locomotivecms/wagon/blob/master/lib/locomotive/wagon/commands/serve_command.rb https://github.com/locomotivecms/wagon/blob/master/lib/locomotive/wagon/commands/serve_command.rb

TODO

see the list in the issues section.

Contributing

  1. Fork it ( http://github.com//locomotivecms/steam )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Running test with docker

A docker configuration is included in this repository, you can run all the tests with the following procedure

First run a bash shell inside the container

docker-compose run steam gosu ubuntu bash

Now you are inside the container you can

Init the database with demo data

rake mongodb:test:seed

Run all the test with

rake spec

Run specific test with rspec

rspec spec/unit/middlewares/locale_spec.rb

Note: you do not need to prefix with bundle exec as the docky-ruby image already add it automatically

License

Copyright (c) 2010-2024 NoCoffee. MIT Licensed, see MIT-LICENSE for details.