rails/actioncable
Eugene Kenny ee525ff663 Load framework test files in deterministic order
`Dir.glob` doesn't guarantee the order of its results:

https://ruby-doc.org/core-2.6.5/Dir.html#method-c-glob

> Case sensitivity depends on your system (File::FNM_CASEFOLD is
> ignored), as does the order in which the results are returned.

Minitest stores a list of all test cases in the order that they were
defined; it shuffles them before they're run, but doesn't sort them:

https://github.com/seattlerb/minitest/blob/v5.13.0/lib/minitest.rb#L1048
https://github.com/seattlerb/minitest/blob/v5.13.0/lib/minitest.rb#L156

This means that the order in which framework tests run is platform
dependent, and running a test command that failed in CI locally won't
necessarily reproduce the error, even when the same seed is provided.

`Rake::FileList` resolves glob patterns to a sorted list of files:

https://github.com/ruby/rake/blob/v13.0.1/lib/rake/file_list.rb#L408

By using `Rake::FileList` instead of `Dir.glob`, framework tests will
always run in the same order when given the same seed, and reproducing
order dependent CI failures will be easier.
2019-12-16 16:55:06 +00:00
..
app Fix typo in ACa documentation [ci skip] 2019-10-28 11:09:22 -04:00
bin Use frozen string literal in actioncable/ 2017-07-23 23:30:29 +03:00
lib Implicitly assert no exception is raised in block assertions 2019-10-07 11:01:24 +02:00
test Enforce that actioncable compiled JS bundle is in sync with source code 2019-10-19 02:26:31 +02:00
.babelrc Convert ActionCable javascript to ES2015 modules with modern build environment 2018-11-02 08:41:05 -07:00
.eslintrc Convert ActionCable javascript to ES2015 modules with modern build environment 2018-11-02 08:41:05 -07:00
.gitignore Ensure @rails/actioncable package contains complete source 2019-08-15 09:19:59 -04:00
CHANGELOG.md Fixup CHANGELOGs [ci skip] 2019-11-24 09:20:00 +09:00
MIT-LICENSE Bump license years for 2019 2018-12-31 10:24:38 +07:00
README.md Updated links from http to https in guides, docs, etc 2019-03-09 16:43:47 +05:30
Rakefile Load framework test files in deterministic order 2019-12-16 16:55:06 +00:00
actioncable.gemspec Add bug tracker/documentation/mailing list URIs to the gemspecs 2019-10-11 20:47:19 -04:00
karma.conf.js s/Travis/Buildkite/ 2019-04-09 11:28:49 +09:30
package.json update package.json files to use https homepage value 2019-10-02 12:00:11 +02:00
rollup.config.js Remove circular dependency warnings in ActionCable javascript and publish source modules with fine-grained exports (#34370) 2018-12-01 16:25:02 -05:00
rollup.config.test.js Convert ActionCable tests from CoffeeScript to ES2015 and replace Blade with Karma and Rollup (#34440) 2018-11-26 17:16:02 -05:00

README.md

Action Cable Integrated WebSockets for Rails

Action Cable seamlessly integrates WebSockets with the rest of your Rails application. It allows for real-time features to be written in Ruby in the same style and form as the rest of your Rails application, while still being performant and scalable. It's a full-stack offering that provides both a client-side JavaScript framework and a server-side Ruby framework. You have access to your full domain model written with Active Record or your ORM of choice.

You can read more about Action Cable in the Action Cable Overview guide.

Support

API documentation is at:

Bug reports for the Ruby on Rails project can be filed here:

Feature requests should be discussed on the rails-core mailing list here: