Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Rails 5 support #400

Merged
merged 1 commit into from
Aug 10, 2016
Merged

Add Rails 5 support #400

merged 1 commit into from
Aug 10, 2016

Conversation

seanpdoyle
Copy link
Contributor

Closes #376.

Improve setup_ember script

  • Don't overwrite gemfiles/ changes with appraisal install
  • Localize Ember setup to bin/setup_ember
  • Always invoke, let bin/setup_ember decide whether or not to no-op

Required changes

Run test suite against the latest 5.0.0.betaX and master branches of
rails/rails.

Since EmberController extends ApplicationController, which can now
extend from either ActionController::Base (which implements
helper_method) and ActionController::API (which doesn't implement
helper_method), we can't depend on that API existing.

Remove call to helper_method from EmberController, as it is no
longer supported.

Fix EmberCli::EmberController inheritance

The EmberCli::EmberController used to inherit from
ApplicationController in order to reap the benefits of
application-wide configurations and behavior (such as
authentication-based before_action calls and other macros).

Unfortunately, with the introduction of Rails 5's rails new --api,
applications' ApplicationController can now inherit from
ActionController::API, which doesn't serve HTML by default.

To support Rails 5's default --api behavior,
EmberCli::EmberController must inherit from ActionController::Base,
forcing the controller to forfeit all the benefits of sharing behavior
with ApplicationController.

Support changes

Rails 5 depends on rack@2.0.x, which requires Ruby 2.2.2 or
greater.

In order to support Rails 5, we will no longer support versions of Ruby
prior to 2.2.2.

@@ -1,12 +1,11 @@
module EmberCli
class EmberController < ::ApplicationController
def index
render layout: false
(::ActionController::Base::MODULES - ::ActionController::API::MODULES).each do |mod|

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line is too long. [88/80]

@rwjblue
Copy link
Contributor

rwjblue commented Apr 5, 2016

Where are we at with this? Any additional blockers?

@seanpdoyle
Copy link
Contributor Author

@rwjblue I've gotten all versions of Ruby / Rails passing except for JRuby / rails {5,master}.

I would love some help addressing these failures

@seanpdoyle seanpdoyle force-pushed the sd-rails-5 branch 3 times, most recently from b110d57 to ceed542 Compare August 10, 2016 14:49
Closes [#376].

Required changes
----------------

Run test suite against the latest `5.0.0.betaX` and `master` branches of
[`rails/rails`][rails].

Since `EmberController` extends `ApplicationController`, which can now
extend from either `ActionController::Base` (which implements
`helper_method`) and `ActionController::API` (which doesn't implement
`helper_method`), we can't depend on that API existing.

Remove call to `helper_method` from `EmberController`, as it is no
longer supported.

**Allow JRuby failures in CI**

**Improve `setup_ember` script**

* Don't overwrite `gemfiles/` changes with `appraisal install`
* Localize Ember setup to `bin/setup_ember`
* Always invoke, let `bin/setup_ember` decide whether or not to no-op

**Fix `EmberCli::EmberController` inheritance**

The `EmberCli::EmberController` used to inherit from
`ApplicationController` in order to reap the benefits of
application-wide configurations and behavior (such as
authentication-based `before_action` calls and other macros).

Unfortunately, with the introduction of Rails 5's `rails new --api`,
applications' `ApplicationController` can now inherit from
[`ActionController::API`][api], which doesn't serve HTML by default.

To support Rails 5's default `--api` behavior,
`EmberCli::EmberController` must inherit from `ActionController::Base`,
forcing the controller to forfeit all the benefits of sharing behavior
with `ApplicationController`.

[api]: http://edgeapi.rubyonrails.org/classes/ActionController/API.html

**Depend on `test-unit`**

```
Ruby 2.2+ has removed test/unit from the core library. Rails requires
this as a dependency. Please add test-unit gem to your Gemfile:
`gem 'test-unit', '~> 3.0'` (cannot load such file -- test/unit)"
```

Support changes
---------------

Rails 5 depends on `rack@2.0.x`, which **requires** Ruby `2.2.2` or
greater.

In order to support Rails 5, we will no longer support versions of Ruby
prior to `2.2.2`.

[#376]: #376
[rails]: https://github.com/rails/rails
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants