README.md in keynote-0.3.1 vs README.md in keynote-1.0.0

- old
+ new

@@ -27,11 +27,11 @@ def display_name "#{user.first_name} #{user.last_name}" end def profile_link - link_to user, display_name, data: {user_id: user.id} + link_to user, display_name, data: { user_id: user.id } end end ``` You can then instantiate it by calling the `present` method (aliased to `k`) in @@ -60,12 +60,12 @@ library. Rumble gives us a simple block-based syntax for generating HTML fragments. Here's a small example: ``` ruby build_html do - div :id => :content do - h1 'Hello World', :class => :main + div id: :content do + h1 'Hello World', class: :main end end ``` Becomes: @@ -145,20 +145,20 @@ ``` ruby # app/presenters/user_presenter.rb class UserPresenter < Keynote::Presenter presents :user - delegate :first_name, :last_name, :to => :user + delegate :first_name, :last_name, to: :user def display_name "#{first_name} #{last_name}" end end ``` You can also generate prefixed methods like `user_first_name` by passing -`:prefix => true` to the `delegate` method. +`prefix: true` to the `delegate` method. ## Rationale ### Why use presenters or decorators at all? @@ -223,25 +223,34 @@ That project uses RSpec, but the generator can also create test files for Test::Unit or MiniTest::Rails if applicable. ## Compatibility -Keynote is supported on Rails 3.1, 3.2, 4.0, 4.1, and 4.2. Keynote presenters -are testable with Test::Unit, RSpec, and MiniTest::Rails (>= 2.0). +Keynote is supported on Rails 3.1 through 5.1. Keynote presenters are testable +with Test::Unit, RSpec, and MiniTest::Rails (>= 2.0). If you find problems with any of the above integrations, please open an issue. ## Development -You can run Keynote's tests across all supported versions of Rails as follows: +This repo uses [Roadshow] to generate a [Docker Compose] file for each +supported version of Rails (with a compatible version of Ruby for each one). -``` bash -$ bundle install -$ bundle exec appraisal install -$ bundle exec rake appraisal +To run specs across all versions, you can either [get the Roadshow tool] and +run `roadshow run`, or use Docker Compose directly: + ``` +$ for fn in scenarios/*.docker-compose-yml; do docker-compose -f $fn run --rm scenario; done +``` +To update the set of scenarios, edit `scenarios.yml` and run `roadshow +generate`, although the Gemfiles in the `scenarios` directory need to be +maintained manually. + Feel free to submit pull requests according to the usual conventions for Ruby projects. [DisplayCase]: https://github.com/objects-on-rails/display-case [Draper]: https://github.com/drapergem/draper +[Roadshow]: https://github.com/rf-/roadshow +[Docker Compose]: https://docs.docker.com/compose/ +[get the Roadshow tool]: https://github.com/rf-/roadshow/releases