aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/engine.rb
Commit message (Collapse)AuthorAgeFilesLines
* Get rid of config.preload_frameworks in favor of config.eager_load_namespacesJosé Valim2012-08-211-0/+5
| | | | | | | 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.
* Fix handling SCRIPT_NAME from within mounted engine'sPiotr Sarnacki2012-08-111-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* There is only task for installing migrations when using enginesWojciech Wnętrzak2012-07-041-2/+1
|
* Revert "Allow loading external route files from the router"José Valim2012-06-291-6/+1
| | | | | | | | | | | | | | 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
* Remove unused responsibilities and add a few load definitions to enginesJosé Valim2012-06-291-64/+59
| | | | | | | | 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.
* Remove unnecessary Railties structure now that plugins are goneJosé Valim2012-06-291-12/+12
|
* Add support runner hook.kennyj2012-05-291-0/+5
|
* Fixed backward incompatibility for engines.Philip Arndt2012-05-241-1/+1
| | | | | | | | | | | | - 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
* removing more pathnameismsAaron Patterson2012-05-231-3/+3
|
* I guess we have to return a pathname object. o_OAaron Patterson2012-05-221-1/+1
|
* use File.realpath and avoid making Pathname objectsAaron Patterson2012-05-221-2/+1
|
* use RUBY_PLATFORM in case of cross compiled rubyAaron Patterson2012-05-221-1/+1
|
* initialize our instance variablesAaron Patterson2012-05-221-2/+14
|
* Load all the env files available in config.paths (closes #6335)Piotr Sarnacki2012-05-161-2/+3
|
* Removing ==Examples and last blank lines of docs from railtiesFrancesco Rodriguez2012-05-141-5/+0
|
* Merge pull request #5821 from Deradon/fix-engine-tasksPiotr Sarnacki2012-05-031-1/+6
|\ | | | | Provided fix for calling rake tasks within mountable engines
| * Provided fix for calling rake tasks within mountable enginesPatrick Helm2012-04-121-1/+6
| |
* | Merge branch 'master' of github.com:lifo/docrailsVijay Dev2012-05-011-1/+1
|\ \
| * | Code-format references to config settingsMark Rushakoff2012-04-271-1/+1
| | |
* | | Fix Engine#routes to not call draw_paths multiple timesPiotr Sarnacki2012-04-281-2/+4
| | |
* | | Engine#routes? method has been fixedRoman V. Babenko2012-04-281-1/+1
|/ /
* | Routes reloader knows how to reload external filesYehuda Katz2012-04-251-0/+2
| |
* | Fix the buildYehuda Katz2012-04-251-1/+1
| |
* | Allow loading external route files from the routerJose and Yehuda2012-04-251-1/+2
| | | | | | | | | | | | | | | | | | This feature enables the ability to load an external routes file from the router via: draw :filename External routes files go in +config/routes+. This feature works in both engines and applications.
* | Remove default match without specified methodJose and Yehuda2012-04-241-4/+4
|/ | | | | | | | | | | | | | | | In the current router DSL, using the +match+ DSL method will match all verbs for the path to the specified endpoint. In the vast majority of cases, people are currently using +match+ when they actually mean +get+. This introduces security implications. This commit disallows calling +match+ without an HTTP verb constraint by default. To explicitly match all verbs, this commit also adds a :via => :all option to +match+. Closes #5964
* Simplify helpers handling. Ensure Metal can run AC hooks.José Valim2012-03-151-1/+1
|
* Fix typo in isolated engine docsCaius Durling2012-03-061-1/+1
|
* update engines guide to explicitly reference relative-to-engine-root-path ↵Ryan Bigg2012-02-161-1/+1
| | | | for db/seeds.rb
* Rails::Engine docs should use helper method, not helpersRyan Bigg2012-02-161-1/+1
|
* Fix documentation bug in Rails::EngineTrotter Cashion2012-01-191-1/+1
|
* Fixed small typo in the Rails::Engine documentation.Rafael Valverde2011-12-151-1/+1
|
* seed file was already tested for existence. ಠ_ಠAaron Patterson2011-12-141-1/+1
|
* Revert "Provide a unique point for running initializers."José Valim2011-12-131-2/+4
| | | | | | | | | | This reverts commit c2e3ce8d1e1174e66536d59d8d97eb2cc8ce6f25. Conflicts: railties/lib/rails/application/configuration.rb railties/lib/rails/application/finisher.rb railties/lib/rails/engine.rb
* Speed up development by only reloading classes if dependencies files changed.José Valim2011-12-121-1/+1
| | | | | | | | This can be turned off by setting `config.reload_classes_only_on_change` to false. Extensions like Active Record should add their respective files like db/schema.rb and db/structure.sql to `config.watchable_files` if they want their changes to affect classes reloading. Thanks to https://github.com/paneq/active_reload and Pastorino for the inspiration. <3
* Provide a unique point for running initializers.José Valim2011-12-121-4/+2
|
* Allow to change engine's loading priority with config.railties_order=Piotr Sarnacki2011-11-231-2/+22
|
* Rely on a public contract between railties instead of accessing railtie ↵José Valim2011-11-231-17/+26
| | | | methods directly.
* fixed example code indentationWojciech Wnętrzak2011-11-101-6/+6
|
* Removing db/seeds.rb is fine. Don't blow up.Jeremy Kemper2011-10-291-1/+1
|
* :group => :assets should only run in the assets environment.José Valim2011-10-021-1/+1
|
* `rake assets:precompile` loads the application but does not initialize it.José Valim2011-09-241-2/+2
| | | | | | | | | | | | | To the app developer, this means configuration add in config/initializers/* will not be executed. Plugins developers need to special case their initializers that are meant to be run in the assets group by adding :group => :assets. Conflicts: railties/CHANGELOG railties/test/application/assets_test.rb
* dealing with some -w warnings on startupAaron Patterson2011-08-241-0/+1
|
* Merge pull request #2324 from zenapsis/3-1-stableSantiago Pastorino2011-08-011-3/+3
| | | | Rails 3.1 throws a Errno::ENOTDIR if files are put in assets directories
* Changed a few instances of of words in the API docs written in British ↵Oemuer Oezkir2011-07-241-5/+5
| | | | | | English to American English(according to Weber)
* little details seen while doing a pass through what's new in docrailsXavier Noria2011-07-231-1/+2
|
* spacing fixVijay Dev2011-07-201-1/+1
|
* misc grammar and clarity changes for rails/engine docsMatt Jankowski2011-07-121-26/+29
|
* Fix has_migrations? check in Rails::EngineSam Pohlenz2011-07-031-1/+1
|
* OrderedOptions must implement respond_to? if it implements method_missing.Chris Eppstein2011-06-271-9/+3
|
* Cherry-picking patch for https://github.com/rails/rails/issues/1460Joseph Wong2011-06-161-2/+10
| | | | | | | | | | | | | | | | | | | | | | | from 3-1-stable to master [3.1.0.rc1] Plugins inside engines not eager-loaded properly and their rake tasks ignored Working with the new support for plugins inside engines in Rails 3.1, I found that certain things that work for regular plugins don't work for these new nested plugins. In particular, these methods in Rails::Engine don't seem to understand that an engine could have nested plugins: #load_tasks #load_generators #load_console #eager_load! A solution which worked out for me is to move the calls to railties.all { ... } from the overriding methods in Rails::Application into Rails::Engine.