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