This fork brings:
* A tiny refresh of the default theme.
* SEO tags to class files.
* The removal of HTML tags from search results.
* Some general template clean-up (HTML 5, removal of the jQuery
effect library, etc.).
* A speed up of the generation time (by ~30 seconds).
"httparty" is only added in #30020 to write two tests to make PUT requests
against S3 and GCS.
The same requests can be made with net/http, removing a dependency from the Gemfile.
Bootsnap precomputes load path resolution and caches ruby ISeq
and YAML parsing/compilation, reducing application boot time by
approximately 50% on supported configurations.
The test using mathn was first introduced in f1d9179 to check that the
`distance_of_time_in_words` properly doesn't use the `Fixnum#/` method
by explicitly requiring this library as it redefines this method.
Given that `mathn` has been gemified in Ruby 2.5 and is deprecated since
version 2.2, we can certainly safely assume that people will most-likely
not require this library in their application.
However, to make sure that we don't regress, let's add a test similar to
the one before f1d9179.
Capybara was updated in teamcapybara/capybara#1841 to use Minitest style
assertions so that system test output shows x number of assertions, x
numbe of failures, etc.
Before:
```
6 runs, 0 assertions, 0 failures, 0 errors, 0 skips
```
After:
```
6 runs, 7 assertions, 1 failures, 0 errors, 0 skips
```
This change bumps Capybara from 2.7.0 to 2.13.0 and includes the
required minitest assertion file in the test case. 🎉
* Move system tests back into Action Pack
* Rename `ActionSystemTest` to `ActionDispatch::SystemTestCase`
* Remove private base module and only make file for public
`SystemTestCase` class, name private module `SystemTesting`
* Rename `ActionSystemTestCase` to `ApplicationSystemTestCase`
* Update corresponding documentation and guides
* Delete old `ActionSystemTest` files
Erubi offers the following advantages for Rails:
* Works with ruby's --enable-frozen-string-literal option
* Has 88% smaller memory footprint
* Does no freedom patching (Erubis adds a method to Kernel)
* Has simpler internals (1 file, <150 lines of code)
* Has an open development model (Erubis doesn't have a
public source control repository or bug tracker)
* Is not dead (Erubis hasn't been updated since 2011)
Erubi is a simplified fork of Erubis that contains just the
parts that are generally needed (which includes the parts
that Rails uses). The only intentional difference in
behavior is that it does not include support for <%=== tags
for debug output. That could be added to the ActionView ERB
handler if it is desired.
The Erubis template handler remains in a deprecated state
so that code that accesses it directly does not break. It
can be removed after Rails 5.1.
When the initial evented monitor feature was written, the latest version of listen
was the 3.0.x series. Since then the listen project has moved on to the 3.1.x series.
This patch allows the use of the new versions.
Mostly, this is just to avoid EventMachine. But there's also an argument
to be made that we're better off using a different protocol library for
our test suite than the one we use to implement the server.
When run test of Active Job with resque 1.26, occurs following error.
```
QueuingTest#test_current_locale_is_kept_while_running_perform_later:
NoMethodError: undefined method `current_tags' for #<Resque::QuietFormatter:0x0055b44f63ed50>
/home/yaginuma/program/rails/master_y_yagi/rails/activejob/lib/active_job/logging.rb:51:in `logger_tagged_by_active_job?'
```
This was happening for the formatter class of resque not the formatter class of
Rails is they've been used to logger.formatter.
This was happening because become fomatter is changed during the instantiation
of worker in the resque 1.26.
In the master, unless the environment variable is set, fomatter is so as not to
be changed, test will pass.
Ref: https://github.com/resque/resque/pull/1439
Apps that depend on Action Cable don't need Blade for app development,
so we can remove the gem dependency.
We do need Blade for Action Cable dev, so we bundle it in the Gemfile.
Signed-off-by: Jeremy Daer <jeremydaer@gmail.com>
Without the `wdm` gem, it appears that `listen` keeps an open handle to
each of these files, causing them not to be removed when the tempdir
tries to clean iteslf up, and then directory to fail to unlink. In
addition to fixing that particular failure, we now construct OS agnostic
paths, and capture exceptions if the directory fails to unlink so that
minitest will report it rather than crash
This new adapter does get a little more intimate with the redis-rb gem's
implementation than I would like, but it's the least bad of the
approaches I've come up with.
This PR includes two changes for 2.0.0:
- Breaking API change around `async.perform` --> `perform_async`
- New addition of `perform_in`, which now allows end users of the
adapter to use the `enqueued_at` public API method.
platform `:ruby` is only MRI on Linux or Mac. Windows MRI shows up as
`:mswin` or `:mswin64` depending on if it was installed as 32 or 64 bit. I
am unsure if this will cause conflicts with JRuby on Windows, but I don't
have the means to test this at the moment.
In listen 3.0.4 and below, the `#stop` method on the notification
backends are a no-op, meaning that we are leaking them per test. This
ended up triggering another bug in Ruby that causes our builds to fail
randomly on CI.
listen bug: https://github.com/guard/listen/issues/353
ruby bug: https://bugs.ruby-lang.org/issues/11744
This is the implementation of the file update checker written
by Puneet Agarwal for GSoC 2015 (except for the tiny version
of the listen gem, which was 3.0.2 in the original patch).
Puneet's branch became too out of sync with upstream. This is
the final work in one single clean commit.
Credit goes in the first line using a convention understood
by the contrib app.
* Revises the name of Rails components (they have a space).
* Uniform word wrap at column 80..
* Uniform punctuation, according to our guidelines.
* Minor edits of details seen in passing.
* Move `app/assets/manifest.js` to `app/assets/config/manifest.js`.
Avoid the suggestion that you can/should deep-link `stylesheets/foo`.
* Pull in all toplevel stylesheets and JavaScripts, not just
`application.js` and `.css`. Demonstrate how to use `link_directory`
with a specified `.js`/`.css` type.
* Fix RAILS_ENV handling in assets tests.
* Shush warnings spam from third-party libs that distract from tests.
History:
1. `debugger` was there until d2ed433b where it was commented out, and I
couldn't figure out why
2. Since then we inherited that when switching to `byebug` in 93559da4
Reasons:
1. It's nice to have a debugger when working on framework bugs
2. It's an uncommented dependency in app Gemfiles since Rails 4.2 (see fbe38c9e)
Since we now only support Ruby 2.2+, we can safely remove the old mri
entries from the Gemfile.
This also allows us not to lock to a specific bundler version, since
:mri_22 was defined only on 1.7.11.
Closes#19611.
The edge version ships with a patch that uses composition over
inheritance for the Mail::PartsList object (see mikel/mail#782).
Let's test Action Mailer against it to prevent eventual regressions
and experience it.
Moreover, this branch makes the Action Mailer suite green against
Rubinius.
The latest version of the PG gem can actually convert the primitives for
us in C code, which gives a pretty substantial speed up. A few cases
were only there to add the `infinity` method, which I just put on the
range type (which is the only place it was used). Floats also needed to
parse `Infinity` and `NaN`, but it felt reasonable enough to put that on
the generic form.
Remove '<3.0.0' requirement for queue_classic gem. This fixes the issue
that the gem was attempting to parse the queue name as a URI, causing
all of the tests to fail.
Since the rubysl-yaml gem doesn't ship with Psych by default because of
its dependency on libyaml, on Rubinius, the default engine is Syck.
However, if we want to be able to run the application safely on
different rubies, we need to make people using Rubinius rely on Psych.
See http://git.io/uuLVag for further information.
Implemented ActionView: FullSanitizer, LinkSanitizer and WhiteListSanitizer in sanitizers.rb.
Deprecated protocol_separator and bad_tags.
Added new tests in sanitizers_test.rb and reimplemented assert_dom_equal with Loofah.
As Rack has some non backwards compatible changes added required
modifications to keep behaviour in rails close to same as before.
Also modified generators to include rack/rack for not yet released
version of rack
* master: (26 commits)
Avoid URI parsing
Add missing require so requiring `active_support/cache` works again.
depend_on_asset is not required anymore on sprockets-rails 2.1.2
upgrading section for 4.1 is no longer WIP. [ci skip]
Expand explanation of how to set secrets.yml. [ci skip]
Guides: minor typo fixed [ci skip]
Fixed problem where `1.day.eql?(1.day)` is false
new CHANGELOGs entries are in the top [ci skip]
Updates the maintenance policy with new Rails versions
Dont abbreviate that which needs no abbreviation
Dont encourage aliases now that we have variants
Use short-form for the scaffold render calls and drop the needless test
Drop in @jeremy's new database.yml template text
Don't deprecate after all
Less ambition, more deprecation
Ensure we correctly and immediately load all ENV entries
Give a deprecation message even when the lookup fails
Rearrange the config merger some more
entry is always a Hash
Check env_url only once
...
Conflicts:
Gemfile
* master: (55 commits)
[ci skip] Move association class method notes
extract common code in `uuid_test.rb`.
move PostgreSQL UUID tests from `datatype_test.rb` to `uuid_test.rb`.
[ci skip] remove guide section on models in migrations
test case for custom PostgreSQL enum type.
Remove inclusion of rubysl gem for rbx on generated Gemfile
let `insert_record` actuall save the object.
[skip ci] Fix test name typo in app generator tests.
travis s/2.1.0/2.1.1
Bump version of bcrypt gem
Skip test_migrate_revert_add_index_with_name if databases do not allow to create duplicate indexes on the same columns
Optimize getting started guide images, and use png instead of jpg
✂️ [ci skip]
Point master changelogs to 4-1-stable branch
Add missing parantheses in index_exists?
`ActionDispatch::Head` was replaced by `Rack::Head`. Closes#14191.
[skip ci] Standardized punctuation.
[skip ci] Fix typo in link_to :method option description
refactor, with_locale is not needed because I18n is mocked.
Fix ActionView label translation for more than 10 nested elements
...
* master: (311 commits)
Add a missing changelog entry for #13981 and #14035
Revert "Fixed plugin_generator test"
implements new option :month_format_string for date select helpers [Closes#13618]
add factory methods for empty alias trackers
guarantee a list in the alias tracker so we can remove a conditional
stop exposing table_joins
make most parameters to the AliasTracker required
make a singleton for AssociationScope
pass the association and connection to the scope method
pass the tracker down the stack and construct it in the scope method
clean up add_constraints signature
remove the reflection delegate
remove klass delegator
remove railties changes. fixes#14054
remove chain delegate
remove scope_chain delegate
Add verb to sanitization note
fix path shown in mailer's templates
updated Travis build status image url
fix guide active_support_core_extensions. add Note to String#indent [ci skip]
...
Conflicts:
activerecord/lib/active_record/associations/join_dependency.rb
activerecord/test/cases/associations/association_scope_test.rb
Before Rubinius 2.2.0, some parts of the stdlib were lazily loaded, even
if not included in the Gemfile. Now it's 100% required to include the
gem 'rubysl', otherwise the stdlib is not available entirely, breaking
everything.
Also, the rubysl-test-unit gem was depending on minitest ~> 4.7, thus causing
conflicts with Rails's dependency on minitest 5. That is not the case
anymore since rubysl-test-unit 2.0.2, so it is completely safe to
include it fully.
When Travis is going to update RVM to 1.24, it'll be safe to use rbx-2,
thus picking new versions automatically.
this resolves the following error when running `bundle install`
```
ArgumentError: wrong number of arguments (2 for 1)
/Users/senny/Projects/rails/.bundle/bundler/gems/arel-454a25f18c95/lib/arel/crud.rb:5:in `compile_update'
```
The build is still broken with lots of:
```
ArgumentError: wrong number of arguments (2 for 1)
/Users/senny/Projects/rails/.bundle/bundler/gems/arel-454a25f18c95/lib/arel/crud.rb:5:in `compile_update'
```
Switch to master branch which provides Version 1.3.x of AR-JDBC adapter.
It strives to provide ActiveRecord 4.x compatibility (as well as still supporting 2.3 and 3.x) from a single code base. It's a recommended update for all AR-JDBC 1.2.x users.