| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Email does not support relative links since there is no implicit host. Therefore all links inside of emails must be fully qualified URLs. All path helpers are now deprecated. When removed, the error will give early indication to developers to use `*_url` methods instead.
Currently if a developer uses a `*_path` helper, their tests and `mail_view` will not catch the mistake. The only way to see the error is by sending emails in production. Preventing sending out emails with non-working path's is the desired end goal of this PR.
Currently path helpers are mixed-in to controllers (the ActionMailer::Base acts as a controller). All `*_url` and `*_path` helpers are made available through the same module. This PR separates this behavior into two modules so we can extend the `*_path` methods to add a Deprecation to them. Once deprecated we can use this same area to raise a NoMethodError and add an informative message directing the developer to use `*_url` instead.
The module with warnings is only mixed in when a controller returns false from the newly added `supports_relative_path?`.
Paired @sgrif & @schneems
|
|
|
|
|
|
|
|
| |
In 1.9, it doesn't live in its own file, so we'll have to define it
ourselves.
Check RUBY_VERSION, instead of rescuing the require, because we want
this to break if `psych/y` moves in a future Ruby release.
|
|
|
|
|
|
|
|
| |
Previously, we relied on the IRB-detection in Psych itself. But that
doesn't work when we're running under spring: the application boots (and
thus psych is required) before we switch to console mode and load IRB.
Fixes #14587.
|
| |
|
|
|
|
| |
remove unused requires
|
|\
| |
| |
| |
| |
| | |
Conflicts:
activesupport/lib/active_support/core_ext/hash/deep_merge.rb
activesupport/lib/active_support/core_ext/hash/keys.rb
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
According to our guideline, we leave 1 space between `#` and `=>`, so we
want `# =>` instead of `#=>`.
Thanks to @fxn for the suggestion.
[ci skip]
|
| |
| |
| |
| |
| |
| | |
In order to simplify profiling loading of initializers,
added instument for tracking load config initializer event from
`config/initializers`
|
|/ |
|
|
|
|
|
|
|
|
|
| |
* we no more have to manipulate the each caller strings by ourselves using caller_locations
* caller_locations runs slightly faster, and creates less objects than good old caller
Benchmark (loading an Engine 1000 times):
caller: 262.89 ms
caller_locations: 186.068 ms
|
| |
|
|
|
|
|
|
|
| |
This reverts commit 70d6e16fbad75b89dd1798ed697e7732b8606fa3, reversing
changes made to ea4db3bc078fb3093ecdddffdf4f2f4ff3e1e8f9.
Seems to be a code merge done by mistake.
|
|
|
|
| |
This reverts commit 157dc275da0ad38635337b7c1d96de656d91de8e.
|
| |
|
|
|
|
|
|
|
|
|
| |
* we no more have to manipulate the each caller strings by ourselves using caller_locations
* caller_locations runs slightly faster, and creates less objects than good old caller
Benchmark (loading an Engine 1000 times):
caller: 262.89 ms
caller_locations: 186.068 ms
|
| |
|
|
|
|
|
| |
syntax. This helps removing the class level abstraction of an
application.
|
|
|
|
|
| |
Railtie itself abstract. This stops the weird behavior of forcing
subclasses of Railtie to include the Configurable module.
|
| |
|
| |
|
|
|
|
| |
Closes #9386
|
|
|
|
|
|
|
|
|
|
|
| |
Because of the possibility of lib being unintentionally eager loaded
it's been agreed that we'll leave autoload paths and eager load paths
separate for Rails 4.0.
This reverts commit 0757b3388ffe4f44b60de950d40e18ef05055931.
Conflicts:
railties/CHANGELOG.md
|
|
|
|
|
|
|
|
|
|
| |
Since the default in Rails 4.0 is to run in 'threadsafe' mode we need
to eager load all of the paths in `autoload_paths` so we alias
`eager_load_paths` to it. This may have unintended consequences if
you have added 'lib' to `autoload_paths` such as loading unneeded
code or code intended only for development and/or test environments.
If this applies to your application you should thoroughly check what
is being eager loaded.
|
|\
| |
| |
| |
| |
| |
| | |
Adding Back Rails::Engine::Railties#engines
Conflicts:
railties/CHANGELOG.md
|
| |
| |
| |
| |
| | |
Removing it breaks functionality with gems such as Thinking Sphinx.
This restores it with a deprecation warning. Closes #8551
|
|\ \
| | |
| | |
| | |
| | | |
Conflicts:
guides/source/getting_started.md
|
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These warnings were actually a bug in Ruby 2.0, the accessors should not
be raising such warnings, they are only meant for ivars.
-
Revert "fix warnings in Ruby 2.0"
This reverts commit 26702a6d3461f4a1c75165030b96886514ecb877.
-
Revert "Merge pull request #8282 from arunagw/warning_removed_for_ruby2"
This reverts commit f63d6544e45e78cda29c0c56fbdf3d9e1f405340, reversing
changes made to 3a890681fad8218305585036abed6d7463a44e41.
|
|/ |
|
|
|
|
|
|
|
|
| |
They was extracted from a plugin.
See https://github.com/rails/rails-observers
[Rafael Mendonça França + Steve Klabnik]
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
The new option allows any Ruby namespace to be registered and set
up for eager load. We are effectively exposing the structure existing
in Rails since v3.0 for all developers in order to make their applications
thread-safe and CoW friendly.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When you mount your application at a path, for example /myapp, server
should set SCRIPT_NAME to /myapp. With such information, rails
application knows that it's mounted at /myapp path and it should generate
routes relative to that path.
Before this patch, rails handled SCRIPT_NAME correctly only for regular
apps, but it failed to do it for mounted engines. The solution was to
hardcode default_url_options[:script_name], which is not the best answer
- it will work only when application is mounted at a fixed path.
This patch fixes the situation by respecting original value of
SCRIPT_NAME when generating application's routes from engine and the
other way round - when you generate engine's routes from application.
This is done by using one of 2 pieces of information in env - current
SCRIPT_NAME or SCRIPT_NAME for a corresponding router. This is because
we have 2 cases to handle:
- generating engine's route from application: in this situation
SCRIPT_NAME is basically SCRIPT_NAME set by the server and it
indicates the place where application is mounted, so we can just pass
it as :original_script_name in url_options. :original_script_name is
used because if we use :script_name, router will ignore generating
prefix for engine
- generating application's route from engine: in this situation we
already lost information about the SCRIPT_NAME that server used. For
example if application is mounted at /myapp and engine is mounted at
/blog, at this point SCRIPT_NAME is equal /myapp/blog. Because of that
we need to keep reference to /myapp SCRIPT_NAME by binding it to the
current router. Later on we can extract it and use when generating url
Please note that starting from now you *should not* use
default_url_options[:script_name] explicitly if your server already
passes correct SCRIPT_NAME to rack env.
(closes #6933)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 6acebb38bc0637bc05c19d87f8767f16ce79189b.
Usage of this feature did not reveal any improvement in existing apps.
Conflicts:
actionpack/lib/action_dispatch/routing/mapper.rb
guides/source/routing.textile
railties/lib/rails/engine.rb
railties/lib/rails/paths.rb
railties/test/paths_test.rb
|
|
|
|
|
|
|
|
| |
Since plugins were removed, we can clean up a few methods in engines.
We also use this opportunity to move `load_console`, `load_tasks` and
`load_runner` to Rails::Engine. This means that, if someone wants to
improve script/rails for engines to support console or runner commands,
part of the work is already done.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Many engines rely on being able to join directories to the Rails root:
Rails.root.join('somedir')
- This was now impossible because Rails.root returned a String:
NoMethodError: undefined method `join' for "/code/myrailsapp":String
- This was broken in 4001835db00ce44cb75bca33ec02cd76b8ccc790
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
Provided fix for calling rake tasks within mountable engines
|