README.md in voom-presenters-0.2.0 vs README.md in voom-presenters-2.0.0

- old
+ new

@@ -1,22 +1,23 @@ # Voom::Presenters ## TLDR; -Presenters are to HTML/User Interfaces what C is to assembly. +Do you wish you could write a modern user interface in pure Ruby? -A Ruby DSL for describing user interfaces. +Now you can. Presenters are a Ruby DSL for rendering user interfaces. The semantics are adopted from [Material Design](https://material.io/). -A presenter generates a Presenter Object Model (POM). -A POM fully describes a user interface. -A POM client can fully render user interface from POM. +* Presenters are to HTML/User Interfaces what C is to assembly +* A presenter generates a Presenter Object Model (POM) +* A POM fully describes a user interface +* A POM client can fully render user interface from POM ## What are voom-presenters? -* A Ruby user interface abstraction. -* A Ruby DSL to build a user interface. -* A power washer for building user interfaces. +* A Ruby user interface abstraction +* A Ruby DSL to build a user interface +* A power washer for building user interfaces ## Why? Building a user interface should like Ruby itself: > ... a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write. @@ -36,66 +37,64 @@ This concept was initially inspired by the Presenters concepts of Ivar Jacobson as presented by Robert Martin. ## Demo -[Demo](https://powerful-bastion-96181.herokuapp.com) +[Demo] Or to run locally: git clone git@github.com:rx/presenters.git cd presenters/ bundle install - rackup + bundle exec rackup open http://localhost:9292 To see the POM: open http://localhost:9292/index.pom - + +## Usage -## User Interface Engine +To use it, add this line to your Gemfile: -The POM + A POM Client is an interface engine. + gem 'voom-presenters', github('rx/presenters'), require: false -This example downloads the POM of the index page. -Then posts it to the reference web client. -That result is then saved to a file and opened up with a browser. +Create the file app/presenters/index.pom with the contents: - curl localhost:9292/index.pom > $TMPDIR/index.json && curl -d "@$TMPDIR/index.json" -X POST localhost:9292/index > $TMPDIR/index.html && open $TMPDIR/index.html + Voom::Presenters.define(:hello_world) do + heading 'hello world' + end -## Status -This project is in a pre-beta status. It is changing frequently as the first user interfaces are being built with it. -Any use should be for internal use only until the status becomes beta. +### Rails +For rails: Mount the web-client in your rails config/routes.rb -[![CircleCI](https://circleci.com/gh/rx/presenters.svg?style=svg)](https://circleci.com/gh/rx/presenters) -[![Maintainability](https://api.codeclimate.com/v1/badges/8fcea717485230e60f27/maintainability)](https://codeclimate.com/github/rx/presenters/maintainability) -[![License](https://img.shields.io/badge/license-MIT-blue.svg?style=plastic)](https://raw.githubusercontent.com/rx/presenters/master/LICENSE) + mount ::Voom::Presenters::WebClient::App, at: '/' + # the api is optional + # mount ::Voom::Presenters::Api::App, at: '/' -## Usage +Create an initializer `config/initializers/presenters.rb` with the following: + + require 'voom' -To use it, add this line to your Gemfile: +### Rack +Presenters are rack based. If your framework uses a rack config file add the following: - gem 'voom-presenters' + use Voom::Presenters::WebClient::App + # the api is optional + # use Voom::Presenters::Api::App -For rails: Mount the web-client in your rails config/routes.rb +Start your app and goto [/hello_world](http://127.0.0.1:3000/hello_world) - mount ::Voom::Presenters::WebClient::App, at: '/' - # the api is optional - mount ::Voom::Presenters::Api::App, at: '/' - - -Create the file app/presenters/index.pom with the contents: - - Voom::Presenters.define(:index) do - heading 'hello world' - end +Use the [Demo] to get example code to drop into your presetners. -Start your rails server and goto http://localhost:3000 +## Status +This project is in a released status. -Use the demo to get example code to drop into your presetners. +[![CircleCI](https://circleci.com/gh/rx/presenters.svg?style=svg)](https://circleci.com/gh/rx/presenters) +[![License](https://img.shields.io/badge/license-MIT-blue.svg?style=plastic)](https://raw.githubusercontent.com/rx/presenters/master/LICENSE) ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/rx/presenters. @@ -104,5 +103,8 @@ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT). ## Code of Conduct Everyone interacting in the Voom::Presenters project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/rx/presenters/blob/master/CODE-OF-CONDUCT.md). + + +[Demo]:https://powerful-bastion-96181.herokuapp.com