208 Commits

Author SHA1 Message Date
Joshua Peek
f716ab92bf Disable eager loading for all rake tasks [#802 state:resolved] 2009-01-27 15:53:02 -06:00
Joshua Peek
73cc5f270a Setup ActiveRecord QueryCache middleware in the initializer 2009-01-21 12:44:07 -06:00
Joshua Peek
82334a7431 Only insert metal middleware if any exist 2009-01-21 12:37:03 -06:00
Lourens Naude
b08c968875 Decouple the local cache strategy from MemCacheStore for reuse with other remote stores [#1653 state:resolved]
Signed-off-by: Joshua Peek <josh@joshpeek.com>
2009-01-17 18:05:48 -06:00
Nahum Wild
a53ad5bba3 Added in a local per request cache to MemCacheStore. It acts as a buffer to stop unneccessary requests being sent through to memcache [#1653 state:resolved]
Signed-off-by: Joshua Peek <josh@joshpeek.com>
2009-01-15 21:29:32 -06:00
Joshua Peek
b281a6a5b2 Use Rack's MethodOverride lib [#1699 state:resolved] 2009-01-13 17:26:29 -06:00
Joshua Peek
ed2e776bde Move metal above method piggybacking middleware and add some test coverage 2009-01-03 23:02:29 -06:00
Joshua Peek
558ab327b7 Clean up view path cruft and split path implementations into Template::Path and Template::EagerPath 2008-12-29 19:27:19 -06:00
Joshua Peek
61a41154f7 Make generated Metal bits a pure rack endpoint application (not middleware)
Instead of calling super to pass the request on, return a 404.
The modified app looks like this:

  # app/metal/poller.rb
  class Poller
    def self.call(env)
      if env["PATH_INFO"] =~ /^\/poller/
        [200, {"Content-Type" => "text/html"}, "Hello, World!"]
      else
        [404, {"Content-Type" => "text/html"}, "Not Found"]
      end
    end
  end

But you aren't locked in to just Rails:

  # app/metal/api.rb
  require 'sinatra'
  Sinatra::Application.default_options.merge!(:run => false, :env => :production)
  Api = Sinatra.application unless defined? Api

  get '/interesting/new/ideas' do
    'Hello Sinatra!'
  end
2008-12-17 09:53:56 -06:00
Joshua Peek
8c3a543664 Introduce Rails Metal
# app/metal/poller.rb
  class Poller < Rails::Rack::Metal
    def call(env)
      if env["PATH_INFO"] =~ /^\/poller/
        [200, {"Content-Type" => "application/json"}, Message.recent.to_json]
      else
        super
      end
    end
  end

* There is a generator to help you get started
    `script/generate metal poller`

* Also, metal bits can be ran standalone with rackup
    `rackup app/metal/poller.rb`
2008-12-16 13:15:06 -06:00
Joshua Peek
ed70830713 Switch to Rack based session stores. 2008-12-15 16:33:31 -06:00
Jeremy Kemper
57f0b9738e Remove config dir from the load path 2008-12-03 21:46:36 -06:00
Joshua Peek
06ed8e4511 Add internal middleware stack to Dispatcher
config.middleware.use Rack::Cache
2008-12-01 13:49:34 -06:00
David Heinemeier Hansson
be140e8c6b Changed Rails.root to return a Pathname object (allows for Rails.root.join("app", "controllers") => "#{RAILS_ROOT}/app/controllers") [#1482] 2008-11-30 15:59:30 -06:00
David Heinemeier Hansson
471f024018 Me loves me some whitespace 2008-11-30 14:58:42 -06:00
Jeremy Kemper
cfb2126726 Load app initializers by path relative to Rails.root 2008-11-29 20:06:49 -08:00
Joshua Peek
cec8a92a6d Merge branch 'master' of git@github.com:rails/rails 2008-11-29 15:59:47 -06:00
David Heinemeier Hansson
fdfcdf4673 Enhanced Rails.root to take parameters that'll be join with the root, like Rails.root('app', 'controllers') => File.join(Rails.root, 'app', 'controllers') [#1482 state:committed] (Damian Janowski) 2008-11-29 10:57:36 +01:00
David Heinemeier Hansson
34905673a3 Revert "Super lazy load view paths in development mode (no indexing or caching at all). Switch layout finders to use view path api to take advantage of cache." as it killed dev mode reloading.
This reverts commit 4d910b0333.
2008-11-29 10:45:06 +01:00
Joshua Peek
9fc23745f1 Reinstate "Super lazy load view paths in development mode (no indexing or caching at all). Switch layout finders to use view path api to take advantage of cache." as it killed dev mode reloading." 2008-11-28 11:18:28 -06:00
David Heinemeier Hansson
5fa0457542 Revert "Super lazy load view paths in development mode (no indexing or caching at all). Switch layout finders to use view path api to take advantage of cache." as it killed dev mode reloading.
This reverts commit 4d910b0333.
2008-11-27 21:04:24 +01:00
David Heinemeier Hansson
6fa9957e0e Merge branch 'master' of git@github.com:rails/rails 2008-11-27 18:59:33 +01:00
David Heinemeier Hansson
f2ee056873 Added view path support for engines [DHH] 2008-11-27 18:59:24 +01:00
Joshua Peek
4d910b0333 Super lazy load view paths in development mode (no indexing or caching at all). Switch layout finders to use view path api to take advantage of cache. 2008-11-26 20:54:47 -06:00
David Heinemeier Hansson
4999d52e08 Added that config/routes.rb files in engine plugins are automatically loaded (and reloaded when they change in dev mode) [DHH] 2008-11-26 20:03:25 +01:00
Jeremy Kemper
36dcfcf126 Really remove components. 2008-11-24 18:48:00 -08:00
Jeremy Kemper
104f3a5776 Add config.preload_frameworks to load all frameworks at startup. Default to false so Rails autoloads itself as it's used. 2008-11-24 18:43:04 -08:00
Jeremy Kemper
d01f75b1f0 Initializer#env relies on StringInquirer autoload. Style fixes. 2008-11-24 18:10:23 -08:00
David Heinemeier Hansson
f42c77f927 Added ActiveSupport::BacktraceCleaner and Rails::BacktraceCleaner for cutting down on backtrace noise (inspired by the Thoughtbot Quiet Backtrace plugin) [DHH] 2008-11-22 18:06:08 +01:00
Matt Jones
45ba4ec626 add vendor/ back to load paths; catch errors in constant loading
Signed-off-by: David Heinemeier Hansson <david@loudthinking.com>
2008-11-18 14:32:46 +01:00
David Heinemeier Hansson
d9b92ee11b Added config.i18n settings gatherer to config/environment, auto-loading of all locales in config/locales/*.rb,yml, and config/locales/en.yml as a sample locale [DHH] 2008-11-18 14:23:13 +01:00
Matt Jones
01433af6a5 Make refresh_specs more resilient. Always add vendor/gems to gem search path. Use Gem.clear_paths to ensure we get a current searcher.
Signed-off-by: Michael Koziarski <michael@koziarski.com>
2008-11-01 17:35:56 +01:00
Michael Koziarski
6d1d48de6a Memoize the require and construction of the StringInquirer 2008-10-19 13:26:36 +02:00
Matt Jones
2bf58aa782 Fix a number of errors in the config.gem mechanism.
* Rails::GemDependency was missing definitions for hash and eql?, causing Array#uniq to not work.

* If several versions of a gem are unpacked in vendor, now chooses the highest if no version is specified.

* streamlined add_load_path. Now sets up Rubygems correctly to allow 'gem' to find frozen gems, with
  gems frozen to vendor/gems and specifications in vendor/gems/<gem-name>/.specification

* Rails::GemDependency#specification would return a spec for the highest installed version, even for
  frozen gems and/or previously loaded lower versions. See in part ticket #1123.

* removed vendor from default_load_paths - it was causing autoloading to append Gems::Gems::<gem-dir> to
  constant names

* added additional tests for loading frozen gems.

* incorporates the fix from #1107 for vendor rails

* defers to freeze:gems for handling the Rails framework. gems:unpack WILL NOT place a copy of Rails
  in vendor/gems. Should close #1123 completely.

* incorporates, via using the gem loader for frozen gems, fixes corresponding to #227, #324, #362, #527, and #742.

* gem plugins now work the same whether frozen or not. Correctness of the behavior is a matter for another ticket...

Signed-off-by: rick <technoweenie@gmail.com>
2008-10-05 10:16:17 -07:00
Jeremy Kemper
6f932b4790 Database connections are now pooled, one pool per #establish_connection call.
Pools start out empty and grow as necessary to a maximum size (default is 5,
configure size with key 'pool' in your database configuration). If no
connections are available, a thread will wait up to a 'wait_timeout' time
(default is 5 seconds).

Connections are verified and reset when checked out from the pool (usually
upon first access to ActiveRecord::Base.connection), and returned back to the
pool after each request.

If you would like to use connection pools outside of ActionPack, there is an
ActiveRecord::Base.connection_pool method that gives you access to the pool,
and you can manually checkout/checkin connections, or supply a block to
ActiveRecord::Base.connection_pool.with_connection which takes care of the
checkout/checkin for you.

[#936 state:resolved]
2008-09-02 18:32:54 +02:00
Jeremy Kemper
a1eb4e11c2 Get rid of 'Object#send!'. It was originally added because it's in Ruby 1.9, but it has since been removed from 1.9.
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>

Conflicts:

	actionpack/test/controller/layout_test.rb
2008-08-31 13:20:15 -07:00
Nick Sieger
c1b949869c Remove call to active_record.allow_concurrency since it's deprecated 2008-08-29 14:12:13 -05:00
Tarmo Tänav
cf28109158 Always require activesupport, even if its constant already exists
This is needed because the existance of the ActiveSupport
constant by itself does not guarantee that the whole library
has been loaded.

Also load the StringInquirer in the Rails#env method as
the it might be called inside the initializer block
before activesupport itself has been loaded.
2008-08-23 18:05:52 +03:00
Tom Ward
89d1c77dd0 Initializer to sort files before eager loading. [#859 state:resolved]
Changed Rails::Initializer to sort files before eager loading them. This ensures that
any files in a parent directory will be loaded before files in a subdirectory of the
'same' name. i.e. zoo.rb will be loaded before zoo/reptile_house.rb

Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
2008-08-22 13:06:34 +01:00
Joshua Peek
c1a8690d58 Consistently use the framework's configured logger and avoid reverting to RAILS_DEFAULT_LOGGER unless necessary. 2008-08-18 23:36:13 -05:00
Joshua Peek
f5bcbde1e3 Make sure ActionView is loaded inorder to build view paths 2008-08-06 17:40:03 -05:00
Joshua Peek
e5b1ab7cc3 MemoryStore is the only "unsafe" store. Make it threadsafe by default. 2008-08-06 14:54:18 -05:00
Joshua Peek
177a35e711 Added config.threadsafe! to toggle allow concurrency settings and disable the dependency loader 2008-08-04 22:19:41 -05:00
Ben Sandofsky
61842d97c5 Make requiring gems optional.
Signed-off-by: Michael Koziarski <michael@koziarski.com>
[#743 state:resolved]
2008-08-04 14:53:21 +02:00
Jeremy Kemper
46a458206f Merge branch 'master' of git@github.com:rails/rails 2008-07-31 16:35:58 -07:00
Jeremy Kemper
a540725f0d load_application_classes requires files relative to the load path and without .rb extension, including .rb files in subdirectories 2008-07-31 16:35:17 -07:00
Joshua Peek
030d5854ad Turn cache_classes on by default [#645 state:resolved] 2008-07-31 13:42:28 -05:00
José Valim
c4038764d2 Initializer requires ERB explicitly instead of assuming Action Pack loaded it. [#722 state:resolved] 2008-07-30 01:49:49 -07:00
José Valim
c8e80f6389 Initializer skips prepare_dispatcher if Action Controller isn't in use. [#721 state:resolved] 2008-07-30 01:41:51 -07:00
Michael Koziarski
d9452d3ab3 Remove incomplete non-blocking logger functionality 2008-07-29 20:01:25 +02:00