GithubHelp home page GithubHelp logo

rails-dev-boost's Introduction

Fix slow Rails development mode via rails-dev-boost

Make your Rails app 10 times faster in development mode (see FAQ below for more details).

Alternative to Josh Goebel's rails_dev_mode_performance plugin.

Alternative to Robert Pankowecki's active_reload gem.

Branches

If you are using Rails 3 and newer: rails-dev-boost/master branch.

If you are using Rails 2.3: rails-dev-boost/rails-2-3 branch.

If you are using Rails 2.2: rails-dev-boost/rails-2-2 branch.

If you are using Rails 2.1 or Rails 2.0 or anything older: you are out of luck.

Problems

If your app doesn't work with rails-dev-boost:

  • make sure you are not keeping "class-level" references to reloadable constants (see "Known limitations" section below)
  • otherwise please open an issue!

I'm very interested in making the plugin as robust as possible and will work with you on fixing any issues.

Debug mode

There is built-in debug mode in rails-dev-boost that can be enabled by putting this line a Rails initializer file:

RailsDevelopmentBoost.debug! if defined?(RailsDevelopmentBoost)

After restarting your server rails-dev-boost will start to spewing detailed tracing information about its actions into your development.log file.

Background

Why create a similar plugin? Because I couldn't get Josh Goebel's to work in my projects. His attempts to keep templates cached in a way that fails with recent versions of Rails. Also, removing the faulty chunk of code revealed another issue: it stats source files that may not exist, without trying to find their real path beforehand. That would be fixable is the code wasn't such a mess (no offense).

I needed better performance in development mode right away, so here is an alternative implementation.

Usage

Rails 3

Usage through Gemfile:

group :development do
  gem 'rails-dev-boost', :git => 'git://github.com/thedarkone/rails-dev-boost.git'
end

Installing as a plugin:

script/rails plugin install git://github.com/thedarkone/rails-dev-boost

Rails 2.3 and older

script/plugin install git://github.com/thedarkone/rails-dev-boost -r rails-2-3

When the server is started in development mode, the special unloading mechanism takes over.

It can also be used in combination with RailsTestServing for even faster test runs by forcefully enabling it in test mode. To do so, add the following in config/environments/test.rb:

def config.soft_reload() true end if RailsTestServing.active?

Known limitations

The only code rails-dev-boost is unable to handle are "class-level" reloadable constant inter-references ("reloadable" constants are classes/modules that are automatically reloaded in development mode: models, helpers, controllers etc.).

Class-level reference examples

# app/models/article.rb
class Article
end

# app/models/blog.rb
class Blog
  ARTICLE_CLASS = Article # <- stores class-level reference
  @article = Article # <- stores class-level reference
  @@article = Article # <- stores class-level reference

  MODELS_ARRAY = []
  MODELS_ARRAY << Article # <- stores class-level reference

  MODELS_CACHE = {}
  MODELS_CACHE['Article'] ||= Article # <- stores class-level reference

  class << self
    attr_accessor :article_klass
  end

  self.article_klass = Article # <- stores class-level reference

  def self.article_klass
    @article_klass ||= Article # <- stores class-level reference
  end

  def self.article_klass2
    @article_klass ||= 'Article'.constantize # <- stores class-level reference
  end

  def self.find_article_klass
    const_set(:ARTICLE_CLASS, Article) # <- stores class-level reference
  end

  def self.all_articles
    # caching object instances is as bad, because each object references its own class
    @all_articles ||= [Article.new, Article.new] # <- stores class-level reference
  end

  article_kls_ref = Article
  GET_ARTICLE_PROC = Proc.new { article_kls_ref } # <- stores class-level reference via closure
end

What goes wrong

Using the example files from above, here's the output from a Rails console:

irb(main):001:0> Article
=> Article
irb(main):002:0> Blog
=> Blog
irb(main):003:0> Blog.object_id
=> 2182137540
irb(main):004:0> Article.object_id
=> 2182186060
irb(main):005:0> Blog::ARTICLE_CLASS.object_id
=> 2182186060
irb(main):006:0> Blog.all_articles.first.class.object_id
=> 2182186060

Now imagine that we change the app/models/article.rb and add a new method:

# app/models/article.rb
class Article
  def say_hello
    puts "Hello world!"
  end
end

Back in console, trigger an app reload:

irb(main):007:0> reload!
Reloading...
=> true

When app/models/article.rb file is saved rails-dev-boost detects the change and calls ActiveSupport::Dependencies.remove_constant('Article') this unloads the Article constant. At this point Article becomes undefined and Object.const_defined?('Article') returns false.

irb(main):008:0> Object.const_defined?('Article')
=> false

However all of the Blog's references to the Article class are still valid, so doing something like Blog::ARTICLE_CLASS.new will not result into an error:

irb(main):009:0> Blog::ARTICLE_CLASS.new
=> #<Article:0x10415b3a0>
irb(main):010:0> Blog::ARTICLE_CLASS.object_id
=> 2182186060
irb(main):011:0> Object.const_defined?('Article')
=> false

Now lets try calling the newly added method:

irb(main):012:0> Blog::ARTICLE_CLASS.new.say_hello
NoMethodError: undefined method `say_hello' for #<Article:0x104143430>
	from (irb):12

As can be seen the new method is nowhere to be found. Lets see if this can be fixed by using the Article const directly:

irb(main):013:0> Article.new.say_hello
Hello world!
=> nil

Yay, it works! Lets try Blog::ARTICLE_CLASS again:

irb(main):014:0> Blog::ARTICLE_CLASS.new.say_hello
NoMethodError: undefined method `say_hello' for #<Article:0x1040b77f0>
	from (irb):14

What is happening? When we use the Article const directly, since it is undefined Rails does its magic - intercepts the exception and loads the app/models/article.rb. This creates a brand new Article class with the new object_id and stuff.

irb(main):015:0> Article.object_id
=> 2181443620
irb(main):016:0> Blog::ARTICLE_CLASS.object_id
=> 2182186060
irb(main):017:0> Article != Blog::ARTICLE_CLASS
=> true
irb(main):018:0> Article.public_method_defined?(:say_hello)
=> true
irb(main):019:0> Blog::ARTICLE_CLASS.public_method_defined?(:say_hello)
=> false

Now we've ended up with 2 distinct Article classes. To fix the situation we can force blog.rb to be reloaded:

irb(main):020:0> FileUtils.touch(Rails.root.join('app/models/blog.rb'))
=> ["mongo-boost/app/models/blog.rb"]
irb(main):021:0> reload!
Reloading...
=> true
irb(main):022:0> Blog.object_id
=> 2180872580
irb(main):023:0> Article.object_id
=> 2181443620
irb(main):024:0> Blog::ARTICLE_CLASS.object_id
=> 2181443620
irb(main):025:0> Article == Blog::ARTICLE_CLASS
=> true
irb(main):026:0> Blog::ARTICLE_CLASS.public_method_defined?(:say_hello)
=> true
irb(main):027:0> Blog::ARTICLE_CLASS.new.say_hello
Hello world!
=> nil

The fix

Code refactor

The best solution is to avoid class-level references at all. A typical bad code looking like this:

# app/models/article.rb
class Article < ActiveRecord::Base
end

# app/models/blog.rb
class Blog < ActiveRecord::Base
  def self.all_articles
    @all_articles ||= Article.all
  end
end

can easily be rewritten like this:

# app/models/article.rb
class Article < ActiveRecord::Base
  def self.all_articles
    @all_articles ||= all
  end
end

# app/models/blog.rb
class Blog < ActiveRecord::Base
  def self.all_articles
    Article.all_articles
  end
end

This way saving arcticle.rb will trigger the reload of @all_articles.

require_dependency

If the code refactor isn't possible, make use of the ActiveSupport's require_dependency:

#app/models/blog.rb
require_dependency 'article'

class Blog < ActiveRecord::Base
  def self.all_articles
    @all_articles ||= Article.all
  end
  
  def self.authors
    @all_authors ||= begin
      require_dependency 'author' # dynamic require_dependency is also fine
      Author.all
    end
  end
end

Asynchronous mode

By default rails-dev-boost now runs in an "async" mode, watching and unloading modified files in a separate thread. This allows for an even faster development mode because there is no longer a need to do a File.mtime check of all the .rb files at the beginning of the request.

To disable the async mode put the following code in a Rails initializer file (these are found in config/initializers directory):

RailsDevelopmentBoost.async = false

routes.rb potentially not reloading

Since Rails 4.0 ActiveSupport now by default reloads routes.rb file if any other auto-loaded .rb has changed. This behavior is different from all previous Rails versions, where routes.rb had been reloaded only if the routes.rb file itself had been changed. This now results in routes.rb being reloading on all requests in which any other unrelated .rb has been changed, it is in my opinion an unnecessary slowdown, thus rails-dev-boost by default reverts Rails to the pre Rails 4.0 behavior.

To disable this patch and revert to the default Rails 4.0 behavior - put the following code in a Rails initializer file (these are found in config/initializers directory):

RailsDevelopmentBoost.reload_routes_on_any_change = true

FAQ

Q: Since the plugin uses its special "unloading mechanism" won't everything break down?

A: Very unlikely... of course there are some edge cases where you might see some breakage (mainly if you're deviating from the Rails 1 file = 1 class conventions or doing some weird requires). This is a 99% solution and the seconds you're wasting waiting for the Rails to spit out a page in the dev mode do add up in the long run.

Q: How big of a boost is it going to give me?

A: It depends on the size of your app (the bigger it is the bigger your boost is going to be). The speed is then approximately equal to that of production env. plus the time it takes to stat all your app's *.rb files (which is surprisingly fast as it is cached by OS). Empty 1 controller 2 views app will become about 4x times faster more complex apps will see huge improvements.

Q: I'm using an older version of Rails than 2.2, will this work for me?

A: Unfortunately you are on your own right now :(.

Q: My Article model does not pick up changes from the articles table.

A: You need to force it to be reloaded (just hit the save button in your editor for article.rb file).

Q: I used require 'article' and the Article model is not being reloaded.

A: You really shouldn't be using require to load your files in the Rails app (if you want them to be automatically reloaded) and let automatic constant loading handle the require for you. You can also use require_dependency 'article', as it goes through the Rails stack.

Q: I'm using JRuby, is it going to work?

A: I haven't tested the plugin with JRuby, but the plugin does use ObjectSpace to do its magic. ObjectSpace is AFAIK disabled by default on JRuby.

FAQ added by thedarkone.

Credits

Written by Roman Le Négrate (contact). Released under the MIT-license: see the LICENSE file.

rails-dev-boost's People

Contributors

alxberardi avatar burke avatar iox avatar korny avatar lowjoel avatar roman2k avatar sax avatar ssoroka avatar thedarkone avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rails-dev-boost's Issues

Problem when using rb-inotify under Rails 4.1.6

When running rails-dev-boost without the gem, everything works as expected, but following the "Unable to start rails-dev-boost in an asynchronous mode. Please install the missing gem for even faster rails-dev-boost experience" advice I tried to add rb-inotify.

The error is: No such file or directory @ dir_initialize - /vagrant/Beef/test/mailers/previews

With the trace as:

rb-inotify (0.9.5) lib/rb-inotify/notifier.rb:192:in `initialize'
rb-inotify (0.9.5) lib/rb-inotify/notifier.rb:192:in `new'
rb-inotify (0.9.5) lib/rb-inotify/notifier.rb:192:in `watch'
/home/vagrant/.rvm/gems/ruby-2.1.2/bundler/gems/rails-dev-boost-bf49caca6670/lib/rails_development_boost/async/reactor.rb:134:in `block in watch_internal'
/home/vagrant/.rvm/gems/ruby-2.1.2/bundler/gems/rails-dev-boost-bf49caca6670/lib/rails_development_boost/async/reactor.rb:133:in `each'
/home/vagrant/.rvm/gems/ruby-2.1.2/bundler/gems/rails-dev-boost-bf49caca6670/lib/rails_development_boost/async/reactor.rb:133:in `watch_internal'
/home/vagrant/.rvm/gems/ruby-2.1.2/bundler/gems/rails-dev-boost-bf49caca6670/lib/rails_development_boost/async/reactor.rb:49:in `watch'
/home/vagrant/.rvm/gems/ruby-2.1.2/bundler/gems/rails-dev-boost-bf49caca6670/lib/rails_development_boost/async.rb:88:in `start!'
/home/vagrant/.rvm/gems/ruby-2.1.2/bundler/gems/rails-dev-boost-bf49caca6670/lib/rails_development_boost/async.rb:33:in `heartbeat_check!'
/home/vagrant/.rvm/gems/ruby-2.1.2/bundler/gems/rails-dev-boost-bf49caca6670/lib/rails_development_boost/dependencies_patch.rb:353:in `unload_modified_files_internal!'
/home/vagrant/.rvm/gems/ruby-2.1.2/bundler/gems/rails-dev-boost-bf49caca6670/lib/rails_development_boost/dependencies_patch.rb:213:in `block in unload_modified_files!'
/home/vagrant/.rvm/gems/ruby-2.1.2/bundler/gems/rails-dev-boost-bf49caca6670/lib/rails_development_boost/dependencies_patch.rb:381:in `block in async_synchronize'
/home/vagrant/.rvm/gems/ruby-2.1.2/bundler/gems/rails-dev-boost-bf49caca6670/lib/rails_development_boost/async.rb:39:in `block in synchronize'
/home/vagrant/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
/home/vagrant/.rvm/gems/ruby-2.1.2/bundler/gems/rails-dev-boost-bf49caca6670/lib/rails_development_boost/async.rb:39:in `synchronize'
/home/vagrant/.rvm/gems/ruby-2.1.2/bundler/gems/rails-dev-boost-bf49caca6670/lib/rails_development_boost/dependencies_patch.rb:381:in `async_synchronize'
/home/vagrant/.rvm/gems/ruby-2.1.2/bundler/gems/rails-dev-boost-bf49caca6670/lib/rails_development_boost/dependencies_patch.rb:212:in `unload_modified_files!'
/home/vagrant/.rvm/gems/ruby-2.1.2/bundler/gems/rails-dev-boost-bf49caca6670/lib/rails_development_boost/reloader.rb:43:in `execute'
(...)

I'm not using any mailers or anything like that and I'm still a newbie at RoR, so please excuse some confusion.

Incompatible with require_dependency?

I have a model that requires a class using require_dependency. After I edit the model, the require_dependency seems to be ignored (the classes defined in the required file become undefined).

undefined method 'on_load' when loading v0.1.1; gem built incorrectly?

Hey there -

I believe that the gem was built incorrectly when it was pushed to rubygems last for version 0.1.1; when you do a fresh install of the gem like so:
gem install --version='0.1.1' rails-dev-boost

...and view the installed source code, the source is from the master branch (I think), and not the rails 2-3 branch. Specifically, line 2 of lib/rails_development_boost tries to call ActiveSupport.on_load, which is only present Rails 3 and above. This means that Rails can't load the gem, or even start the server. Sad day.

However, if I clone the repo, fetch the rails-2-3 branch, check it out, and then rebuild the gem myself manually, and install the gem, Rails loads correctly. So, I suspect that someone rebuilt the gem for version 0.1.1 when on the wrong branch of their checkout and uploaded it.

Is there any way we could get that corrected? I'd like to not keep the built gem checked into my own app repo.

Thanks!

Dude you just made my day

This gem will save me hours of waiting. Since I don't know your twitter handle, I'm doing this here: THANK YOU

when i m trying to "bundle install" i get..

Using rails-dev-boost (0.1.1) from git://github.com/thedarkone/rails-dev-boost.git (at master)

NoMethodError: undefined method write' for #<Syck::Emitter:0x00000104e3bc00> An error occured while installing rails-dev-boost (0.1.1), and Bundler cannot continue. Make sure thatgem install rails-dev-boost -v '0.1.1'` succeeds before bundling.

i have:
rails 3.0.9
bundler 1.0.20

i can't use older bundler because of non-compability with other gems

in_autoload_path? doesn't work with Pathname objects

I don't know how to modify the tests to recreate this issue but if you add a Pathname object such as Rails.root.join("lib") to the autoload_paths, you get this error when loading the Rails (3.1.x) environment with the current master:

.../.rvm/gems/ruby-1.9.3-p194@trunk/bundler/gems/rails-dev-boost-7e8d8597dde8/lib/rails_development_boost/dependencies_patch.rb:235:in `block in in_autoload_path?': undefined method `ends_with?' for #<Pathname:0x007f943c323840> (NoMethodError)

https://github.com/thedarkone/rails-dev-boost/blob/master/lib/rails_development_boost/dependencies_patch.rb#L235

It seems reasonable that paths can be Pathname objects so, we should call to_s prior to using String methods.

Async mode doesn`t work with NFS

Here is a basic application to illustrate that rails-dev-boost async doesn`t work with Vagrant: https://github.com/ablebeam/rails-dev-boost-vagrant-issue-example

Without rb-notify gem everything works correctly.

It seems, there is a very similar issue - rails/rails#16678 but it is not related to rb-notify gem. Look like, that here is a description about this behavior: http://stackoverflow.com/questions/21190584/vagrant-shared-folder-take-advantage-of-inotify-over-nfs

Maybe, this issues related to rb-notify etc, but I suppose it should be mentioned in rails-dev-boost limitation docs if it is really not possible to use with Vagrant.

Stack level too deep

System: linux ubuntu 11.04, ruby 1.9.2

application: spree 0.60.1

where: In admin panel

when: after click to "edit" the product

Please, somebody fix this

It slows our project down...

...because it requires rails in its .gemspec, which includes activerecord, which takes ages to load. If you'd include railties instead of rails, it would be faster.

Async does not work with recent versions of 'listen' gem

With recent versions of the 'listen' gem, rails-dev-boost gives the message "Unable to start rails-dev-boost in an asynchronous mode. Are you running on an OS not supported by the listen gem?"

I think this is because reactor.rb refers to Listen::Adapters, which does not exist in recent versions of 'listen'.

(according to the gemspec, recent versions of 'listen' are supposed to work)

ModuleCache initializing takes a minute

I'm having problem where every reload is taking about a minute. With the debug mode on I was able to trace through the code to dependencies_patch Line: 115

Apparently iterating over ObjectSpace and mapping _mod_name takes a really long time.

For example, if I open up rails console and run
ObjectSpace.each_object(Module){|mod| mod._mod_name }

take about 100 seconds. The count returned is 26000+.

I've monkey patched Line 231 of same file module_cache = nil so that it doesn't reload the cache on every file reload. This improved the reload time significantly to around 1s, but I'm not sure what side effects I've introduced (I'm a ruby nub).

Any insights or point me to the right direction? Thanks!

warning lately with bundle update

Using rails-dev-boost (0.1.1) from git://github.com/thedarkone/rails-dev-boost.git (at master)
rails-dev-boost at /Users/inspire/.rvm/gems/ree-1.8.7-2011.03@newap/bundler/gems/rails-dev-boost-89a795373e7a did not have a valid gemspec.
This prevents bundler from installing bins or native extensions, but that may not affect its functionality.
The validation message from Rubygems was:
["init.rb"] are not files

Plugin isn't getting loaded

Hi.
I've installed rails-dev-boost on my Rails 3 (3.0.6) app as a plugin, but my app still slow on development environment.
I've tested the Gemfile installation, and it works just fine, but, on production servers, I'm prompted to install the rails-dev-boost while using production environment.

How to load the rails-dev-boost on development environment only?

Here is what I've tried:
script/rails plugin install git://github.com/thedarkone/rails-dev-boost

Change development.rb:
config.plugins = :rails_dev_boost

P.S.: I'm sorry for my bad english... :)

expected ... to define ...

I have a module that all my activerecord models mix in, called 'mybase'.

Occassionally with dev-mode enabled while browsing in dev mode (not in tests, though dev mode is enable), I get this error:

Expected /Users/inspire/Dropbox/newap/app/models/mybase.rb to define Mybase

mybase.rb defines module Mybase, and no other models.

Any suggestions? There are other model files that have more than one definition in them still (like TopicsUsers is throw in with Topics.rb), but if that was causing problems it'd be an error message with that file, right?

Thanks!

undefined local variable or method `config' in rails-2-3 branch

My team has been loving rails-dev-boost - thanks for writing it. We're seeing a problem when running specs on a Rails 2.3.2 app (see error message below). Our current workaround is to add, in vendor/plugins/rails-dev-boost/lib/rails_development_boost.rb, a line like this: def self.config; end

I'm thinking it's probably an idiosyncrasy of our app, since it doesn't explode in production, but wanted to bring it up on the off-chance that this happens to others.

Thanks,
Colin

Projects/sample (master) % ./script/spec spec/helpers/sample_helper_spec.rb 130 ↵
/home/colin/Projects/sample/vendor/plugins/rails-dev-boost/lib/rails_development_boost.rb:23:in init!': undefined local variable or methodconfig' for RailsDevelopmentBoost:Module (NameError)
from /home/colin/Projects/sample/vendor/plugins/rails-dev-boost/init.rb:2:in evaluate_init_rb' from /home/colin/Projects/sample/config/../vendor/rails/railties/lib/rails/plugin.rb:146:inevaluate_init_rb'
from /home/colin/Projects/sample/vendor/rails/activesupport/lib/active_support/core_ext/kernel/reporting.rb:11:in silence_warnings' from /home/colin/Projects/sample/config/../vendor/rails/railties/lib/rails/plugin.rb:142:inevaluate_init_rb'
from /home/colin/Projects/sample/config/../vendor/rails/railties/lib/rails/plugin.rb:48:in load' from /home/colin/Projects/sample/config/../vendor/rails/railties/lib/rails/plugin/loader.rb:38:inload_plugins'
from /home/colin/Projects/sample/config/../vendor/rails/railties/lib/rails/plugin/loader.rb:37:in each' from /home/colin/Projects/sample/config/../vendor/rails/railties/lib/rails/plugin/loader.rb:37:inload_plugins'
from /home/colin/Projects/sample/config/../vendor/rails/railties/lib/initializer.rb:348:in load_plugins' from /home/colin/Projects/sample/config/../vendor/rails/railties/lib/initializer.rb:163:inprocess'
from /home/colin/Projects/sample/config/../vendor/rails/railties/lib/initializer.rb:113:in send' from /home/colin/Projects/sample/config/../vendor/rails/railties/lib/initializer.rb:113:inrun'
from /home/colin/Projects/sample/config/environment.rb:20
from ./script/spec:7:in `require'
from ./script/spec:7 1 ↵

RailsDevelopmentBoost error

I'm testing the dev boost plugin and saw this stacktrace.

wrong number of arguments (0 for 1)
/home/brad/projects/workspace/Directory/vendor/plugins/rails-dev-boost/lib/rails_development_boost/dependencies_patch.rb:139:in name' /home/brad/projects/workspace/Directory/vendor/plugins/rails-dev-boost/lib/rails_development_boost/dependencies_patch.rb:139:infetch_module_cache'
/home/brad/projects/workspace/Directory/vendor/plugins/rails-dev-boost/lib/rails_development_boost/dependencies_patch.rb:139:in each_object' /home/brad/projects/workspace/Directory/vendor/plugins/rails-dev-boost/lib/rails_development_boost/dependencies_patch.rb:139:infetch_module_cache'
/home/brad/projects/workspace/Directory/vendor/plugins/rails-dev-boost/lib/rails_development_boost/dependencies_patch.rb:61:in remove_constant' /home/brad/projects/workspace/Directory/vendor/plugins/rails-dev-boost/lib/rails_development_boost/dependencies_patch.rb:28:inunload_modified_files'
/home/brad/projects/workspace/Directory/vendor/plugins/rails-dev-boost/lib/rails_development_boost/dependencies_patch.rb:28:in each' /home/brad/projects/workspace/Directory/vendor/plugins/rails-dev-boost/lib/rails_development_boost/dependencies_patch.rb:28:inunload_modified_files'
/home/brad/projects/workspace/Directory/vendor/plugins/rails-dev-boost/lib/rails_development_boost/dependencies_patch.rb:27:in each' /home/brad/projects/workspace/Directory/vendor/plugins/rails-dev-boost/lib/rails_development_boost/dependencies_patch.rb:27:inunload_modified_files'
/home/brad/projects/workspace/Directory/vendor/plugins/rails-dev-boost/lib/rails_development_boost/dispatcher_patch.rb:7:in apply!' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:182:incall'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:182:in evaluate_method' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:166:incall'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:90:in run' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:90:ineach'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:90:in send' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:90:inrun'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/callbacks.rb:276:in run_callbacks' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:52:insend'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:52:in run_prepare_callbacks' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:57:inreload_application'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/reloader.rb:8:in call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/failsafe.rb:11:incall'
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in call' /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:insynchronize'
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in call' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:106:incall'
/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/static.rb:31:in call' /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/urlmap.rb:46:incall'
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/urlmap.rb:40:in each' /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/urlmap.rb:40:incall'
/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/log_tailer.rb:17:in call' /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/content_length.rb:13:incall'
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/webrick.rb:46:in service' /usr/lib/ruby/1.8/webrick/httpserver.rb:104:inservice'
/usr/lib/ruby/1.8/webrick/httpserver.rb:65:in run' /usr/lib/ruby/1.8/webrick/server.rb:173:instart_thread'
/usr/lib/ruby/1.8/webrick/server.rb:162:in start' /usr/lib/ruby/1.8/webrick/server.rb:162:instart_thread'
/usr/lib/ruby/1.8/webrick/server.rb:95:in start' /usr/lib/ruby/1.8/webrick/server.rb:92:ineach'
/usr/lib/ruby/1.8/webrick/server.rb:92:in start' /usr/lib/ruby/1.8/webrick/server.rb:23:instart'
/usr/lib/ruby/1.8/webrick/server.rb:82:in start' /usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/webrick.rb:13:inrun'
/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/commands/server.rb:111
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in gem_original_require' /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:inrequire'
./script/server:3
/usr/lib/ruby/gems/1.8/gems/ruby-debug-ide-0.4.9/lib/ruby-debug-ide.rb:109:in debug_load' /usr/lib/ruby/gems/1.8/gems/ruby-debug-ide-0.4.9/lib/ruby-debug-ide.rb:109:indebug_program'
/usr/lib/ruby/gems/1.8/gems/ruby-debug-ide-0.4.9/bin/rdebug-ide:87
/usr/bin/rdebug-ide:19:in load' /usr/bin/rdebug-ide:19 -e:2:inload'
-e:2

Re-opened classes

When a class is reopened in a different file, and one file is edited, both files are not re-loaded.

lib/my_class.rb

class MyClass < ActiveRecord::Base
end

app/models/my_class.rbv

require_or_load File.expand_path("lib/my_class", Rails.root)
class MyClass
  // Extend class here
end

Not reloading model in Rails console

Hi! I found that changes in a model doesn't get applied in Rails console after executing reload! command. Though the same changes immediately available when refresing the page in browser. I am using Rails 3.1.0.

Stack level too deep with Spree 0.70.RC1

I'm getting a "Stack level too deep" after clicking on the "Add to cart" with a new Spree project
rails-dev-boot git revision: 216de40
Spree version: 0.70.RC1

Full trace:
actionpack (3.1.0) lib/action_dispatch/middleware/reloader.rb:73

'invalid byte sequence in US-ASCII' warning when downloading gem using bundler ?

It's just a warning, but I'd thought to submit it anyways...

Using rails-dev-boost (0.1.1) from git://github.com/thedarkone/rails-dev-boost.git (at master) /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:653:in `gsub': invalid byte sequence in US-ASCII (ArgumentError)
    from /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:653:in `to_yaml'
    from /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/builder.rb:78:in `block (2 levels) in write_package'
    from /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:73:in `block (3 levels) in add_gem_contents'
    from /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_writer.rb:83:in `new'
    from /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:67:in `block (2 levels) in add_gem_contents'
    from /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:65:in `wrap'
    from /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:65:in `block in add_gem_contents'
    from /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_writer.rb:113:in `add_file'
    from /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:63:in `add_gem_contents'
    from /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:31:in `open'
    from /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/package.rb:68:in `open'
    from /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/builder.rb:77:in `block in write_package'
    from /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/open-uri.rb:35:in `open'
    from /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/open-uri.rb:35:in `open'
    from /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/builder.rb:76:in `write_package'
    from /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/builder.rb:39:in `build'
    from /usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.0.10/lib/bundler/source.rb:438:in `block in generate_bin'
    from /usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.0.10/lib/bundler/source.rb:438:in `chdir'
    from /usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.0.10/lib/bundler/source.rb:438:in `generate_bin'
    from /usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.0.10/lib/bundler/source.rb:547:in `install'
    from /usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.0.10/lib/bundler/installer.rb:55:in `block in run'
    from /usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `block in each'
    from /usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `each'
    from /usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `each'
    from /usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.0.10/lib/bundler/installer.rb:44:in `run'
    from /usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.0.10/lib/bundler/installer.rb:8:in `install'
    from /usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.0.10/lib/bundler/cli.rb:226:in `install'
    from /usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.0.10/lib/bundler/vendor/thor/task.rb:22:in `run'
    from /usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.0.10/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
    from /usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.0.10/lib/bundler/vendor/thor.rb:246:in `dispatch'
    from /usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.0.10/lib/bundler/vendor/thor/base.rb:389:in `start'
    from /usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.0.10/bin/bundle:13:in `'
    from /usr/local/rvm/gems/ruby-1.9.2-p180@global/bin/bundle:19:in `load'
    from /usr/local/rvm/gems/ruby-1.9.2-p180@global/bin/bundle:19:in `'

rails-dev-boost not reloading model in vendor/plugins

Hi,
I am using rails 2.3.14 (ruby 1.8.7) and I have a rails app inside another app (in vendor/plugins)

The models inside vendor/plugins/my-plugin/app/models are not reloaded between requests.
Models inside the original app are reloaded.

Please advise.
Thanks

RailsDevelopmentBoost::ObservablePatch::Observable (NameError) after bundle update

/home/gunnar/.rvm/gems/ruby-1.9.2-p180/bundler/gems/rails-dev-boost-415cb19469f8/lib/rails_development_boost/observable_patch.rb:6:in apply!': uninitialized constant RailsDevelopmentBoost::ObservablePatch::Observable (NameError) from /home/gunnar/.rvm/gems/ruby-1.9.2-p180/bundler/gems/rails-dev-boost-415cb19469f8/lib/rails_development_boost.rb:6:inblock in module:RailsDevelopmentBoost'

Is Rails 4.0 / Ruby 2.1.2 Supported?

Hi!

Just switching a project to Ruby 2.1.2 / Rails 4.0.8 but getting this on app launch:

dependencies_patch.rb:107:in `load_path_to_real_path': undefined method `=~' for #<Pathname:0x007fbd6deabc58> (NoMethodError)
/Users/tgriffin/.rvm/gems/ruby-2.1.2/bundler/gems/rails-dev-boost-4445c2ec97de/lib/rails_development_boost/dependencies_patch.rb:107:in `load_path_to_real_path': undefined method `=~' for #<Pathname:0x007fbd6deabc58> (NoMethodError)
    from /Users/tgriffin/.rvm/gems/ruby-2.1.2/bundler/gems/rails-dev-boost-4445c2ec97de/lib/rails_development_boost/dependencies_patch.rb:249:in `loading_routes_file'
    from /Users/tgriffin/.rvm/gems/ruby-2.1.2/bundler/gems/rails-dev-boost-4445c2ec97de/lib/rails_development_boost/reloader.rb:21:in `load'
    from /Users/tgriffin/.rvm/gems/ruby-2.1.2/gems/railties-4.0.8/lib/rails/application/routes_reloader.rb:40:in `block in load_paths'
    from /Users/tgriffin/.rvm/gems/ruby-2.1.2/gems/railties-4.0.8/lib/rails/application/routes_reloader.rb:40:in `each'
    from /Users/tgriffin/.rvm/gems/ruby-2.1.2/gems/railties-4.0.8/lib/rails/application/routes_reloader.rb:40:in `load_paths'
    from /Users/tgriffin/.rvm/gems/ruby-2.1.2/gems/railties-4.0.8/lib/rails/application/routes_reloader.rb:16:in `reload!'
    from /Users/tgriffin/.rvm/gems/ruby-2.1.2/gems/railties-4.0.8/lib/rails/application/routes_reloader.rb:26:in `block in updater'
    from /Users/tgriffin/.rvm/gems/ruby-2.1.2/gems/activesupport-4.0.8/lib/active_support/file_update_checker.rb:75:in `call'
    from /Users/tgriffin/.rvm/gems/ruby-2.1.2/gems/activesupport-4.0.8/lib/active_support/file_update_checker.rb:75:in `execute'
    from /Users/tgriffin/.rvm/gems/ruby-2.1.2/gems/railties-4.0.8/lib/rails/application/routes_reloader.rb:27:in `updater'
    from /Users/tgriffin/.rvm/gems/ruby-2.1.2/gems/railties-4.0.8/lib/rails/application/routes_reloader.rb:6:in `execute_if_updated'
    from /Users/tgriffin/.rvm/gems/ruby-2.1.2/bundler/gems/rails-dev-boost-4445c2ec97de/lib/rails_development_boost/reloader.rb:27:in `execute_if_updated'

Is that expected, or is there something to adjust for Rails 4 support?

Thanks,
Tim

Patch ActiveSupport::FileUpdateChecker generically

I think it would give us a bit of a performance win if we switch all FileUpdateChecker reloaders generically. Another potentially slow bit of code in ActiveSupport is the code that checks for updated i18n files. In a large project, there could be many yaml files in the checker.

In my project, there are 57 files in the checker, leading to ~3100 IO operations per request (about 10% of total I/O operations)

I see that Sprockets takes a very long time as well, so maybe that can be patched somehow, but the way to do that is not obvious (to me)

Naming clash while loading

I've noticed that there is something funky with the caching where module names are different but class names are the same.

Let's say you have two controllers

#doesn't cache properly in rails-dev-boost
module A
  class AController < ApplicationController
  end
end

module B
  class BController < ApplicationController
  end
end

If I access AController and then BController, B blows up if I try to access a method from B::ApplicationController. If I explicitly specify the module for the controller, everything works fine with dev-boost

#caches properly in rails-dev-boost
module A
  class AController < A::ApplicationController
  end
end

module B
  class BController < B::ApplicationController
  end
end

not reloading model when file modified?

I have quite a big app. When I modify views and controllers it shows the updated file, but when I modify model files it is not reloaded. Any ideas what might be causing it or how I could start finding out what the problem is? Here is my gemfile:

http://pastie.org/private/tasa7rrrgszirqc7oo6okg

Any help would be greatly appreciated as my app in dev loads far too slow (10-12secs!) and having rails-dev-boost working would be wonderful...!

Rails 5 Issue

Receiving this error when running under rails 5:

NameError: undefined local variable or method `log_call' for ActiveSupport::Dependencies:Module

Mongoid not reloading models

First of all I've got a huge performance boost. This is a great gem! However it looks like it's not properly working with Mongoid. All/any changes in a model is not being picked up by the gem and I have to restart the server each time. Any ideas?

progress towards rails3?

any ideas? i'm sick of my glacial dev server :) I notice recent checkins, so perhaps someone is working on this?

Any idea what parts would need tweaking?

dependency on ffi 1.0.8 fails

bundle install fails with: "Could not find ffi-1.0.8 in any of the sources"
ffi 1.0.8 is no longer hosted by rubygems.

To work around, I just pulled ffi from github:
gem 'ffi', :git => 'git://github.com/ffi/ffi.git'

Can you update your dependencies, so the 1.0.9 from rubygems works out of the box?
Thanks.

~Ken

Reloading fails with "undefined method `singleton_class'"

Hi, I'm trying to use rails-dev-boost, but when I edit a file and then make a request to the dev server, I get "undefined method `singleton_class' for Class" and then reloading fails. I can provide more detail, but I wanted to see first if this was anything you might have seen before.

Constant unloaded but not using latest version after refresh

Hi,
I'm using Grape to serve an API with Rails 4 and my config looks like this:
application.rb:
config.paths.add File.join('app', 'api'), glob: File.join('', '.rb')
config.autoload_paths += Dir[Rails.root.join('app', 'api', '
')]

My project structure is

app/
  api/
    base_api.rb
    v1/
      notification_api.rb

We mount grape in routes.rb as follow:

  mount BaseApi => '/api'

When debugging rails-dev-boost, I can see notification_api.rb being loaded in the constants.
If I modify the file, and perform another request, the debug! shows:

[DEV-BOOST] --- START ---
[DEV-BOOST] [CHANGED] #<LoadedFile /app/api/v1/notification_api.rb [V1::NotificationApi]>
[DEV-BOOST]   [SCHEDULE_DEPENDENT] #<LoadedFile /app/api/v1/notification_api.rb [V1::NotificationApi]>: #<LoadedFile /config/routes.rb []>
[DEV-BOOST]   [SCHEDULE_REMOVAL | SCHEDULED] V1::NotificationApi
[DEV-BOOST]     [SCHEDULE_CONTAINING_FILE] V1::NotificationApi -> #<LoadedFile /app/api/v1/notification_api.rb [V1::NotificationApi]>
[DEV-BOOST] [REMOVE_CONST] V1::NotificationApi
[DEV-BOOST] --- END ---

But the code being executed is still the old one. I debugged the gem and went through the code where my constant was removed.

If I perform a second modification and another request, the constant is not loaded, and debug! shows:

[DEV-BOOST] --- START ---
[DEV-BOOST] --- END ---

So it looks like my NotificationApi is autoloaded fine at the start, it is unloaded on the first modification but never reloaded again.

@thedarkone, can you see something wrong in my setup?

Rails 4.1 compatibility?

Hi,

Is this supposed to work with Rails 4.1? I don't actually know what precisely your Gem is doing to speed things up, but it doesn't appear to fix the problem of asset requests checking for updated classes. In fact it seems to make it worse, loading a simple asset takes ~2 seconds with rails_dev_boost. Am I doing something wrong or is 4.1 just not supported (yet)?

rb-fsevent, rails_development_boost: TypeError (no implicit conversion of Pathname into String)

I am using Ruby 2.2.0 and Rails 4.2.3.
When I try to use rails-dev-boost in one of my projects I get the following error:

TypeError (no implicit conversion of Pathname into String):
rb-fsevent (0.9.5) lib/rb-fsevent/fsevent.rb:97:in popen' rb-fsevent (0.9.5) lib/rb-fsevent/fsevent.rb:97:inopen_pipe'
rb-fsevent (0.9.5) lib/rb-fsevent/fsevent.rb:37:in run' rails-dev-boost (0.3.0) lib/rails_development_boost/async/reactor.rb:75:instart_watcher!'
rails-dev-boost (0.3.0) lib/rails_development_boost/async/reactor.rb:53:in `block in start!'

rails-dev-boost, rails 2.3.5, and thinking-sphinx 1.3.8

I receive the error (undefined method `constantize' for nil:NilClass) when accessing the search results of thinking sphinx while rails-dev-boost is running. If i remove rails-dev-boost from the project, the problem disappears...add it back, and problem continues.

I don't remember this happening with rails 2.3.4, but not sure if its related. Also, there is a chance where you can restart rails and get it working...but its random and infrequent.

Any help here is greatly appreciated.

Slow down no. 2

@obromios reports this in other ticket:


A typical page load goes from 15 seconds to 90 seconds when I installed this gem. I am running rails 3.2.12, and installed a few minutes ago with

gem 'rails-dev-boost', :git => 'git://github.com/thedarkone/rails-dev-boost.git'

This gem sounds a great idea, so am looking forward to getting it working. Any ideas?

sass issue

I have a rails engine that I pull stylesheets out of. In development.rb I have the following:

Sass::Plugin.add_template_location('app/assets/stylesheets', 'public/stylesheets')
Sass::Plugin.add_template_location(Gem.loaded_specs["enginehq"].full_gem_path + '/app/assets/stylesheets', 'public/stylesheets')
Sass::Plugin.options[:load_paths] = ['app/assets/stylesheets', Gem.loaded_specs["enginehq"].full_gem_path + '/app/assets/stylesheets']

What this does is tells sass to rebuild my stylesheets on page refresh. This doesn't work when I add the dev boost gem and I feel that it should.

Other than that I like this gem and look forward to using it.

add gemspec in 2.3/2.2 branches

Could you add the gemspec to the 2.3 and 2.2 branches so we can use it as a gem via Bundler?

I currently get:

Could not find gem 'rails-dev-boost (>= 0, runtime)' in https://github.com/thedarkone/rails-dev-boost.git (at rails-2-2).
Source does not contain any versions of 'rails-dev-boost (>= 0, runtime)'

When trying to use either of these branches in my Gemfile

rails-dev-boost breaks active_admin

When using active_admin (https://github.com/gregbell/active_admin) and rails-dev-boost, major parts of the active_admin magic are broken: In a development environment, stuff is not reloaded upon every request, hence development becomes a pain (need to restart the server after every change) and the routing magic breaks which causes the main navigation of active_admin to disappear.

I suspect this has to do with the use of the to_prepare hook by active_admin to initialize stuff, which is somehow not called for every request when using rails-dev-boost.

I would love to see this fixed :)

Gem version out of date

The last gem version was released over a year ago, it's time to bump the version and release an updated gem version.

rails-dev-boost in Rails 3.2.8

I recently upgraded to rails 3.2.8 which seems to use the thin server by default, from my understanding rails-dev-boost only speeds up WEBrick as opposed to the thin server.

Is there any way I can switch back over to WEBrick to get the speed boost offered by this gem?

Exception raised when changing the helper

Hi there

Your plugin has treated me very well and saved me lots of time, however I am running into an issue where an Exception is raised whenever I change the helpers, and only the helpers.

Not sure what information you may need to help resolve this issue, so I thought it best to simply give you the trace...

/!\ FAILSAFE /!\ Fri Mar 26 15:44:50 +0000 2010
Status: 500 Internal Server Error
Expected /[my-app-path]/app/controllers/application_controller.rb to define ApplicationController
/[my-app-path]/vendor/rails/activesupport/lib/active_support/dependencies.rb:426:in load_missing_constant' /[my-app-path]/vendor/rails/activesupport/lib/active_support/dependencies.rb:80:inconst_missing_not_from_s3_library'
/[my-app-path]/vendor/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb:206:in const_missing' /[my-app-path]/vendor/rails/activesupport/lib/active_support/dependencies.rb:92:inconst_missing'
/[my-app-path]/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:89:in dispatch' /[my-app-path]/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:121:in_call'
/[my-app-path]/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:130:in build_middleware_stack' /[my-app-path]/vendor/gems/rack-1.0.0/lib/rack/head.rb:9:incall'
/[my-app-path]/vendor/gems/rack-1.0.0/lib/rack/head.rb:9:in call' /[my-app-path]/vendor/gems/rack-1.0.0/lib/rack/methodoverride.rb:24:incall'
/[my-app-path]/vendor/rails/actionpack/lib/action_controller/params_parser.rb:15:in call' /[my-app-path]/vendor/rails/actionpack/lib/action_controller/session/abstract_store.rb:122:incall'
/[my-app-path]/vendor/rails/activerecord/lib/active_record/query_cache.rb:29:in call' /[my-app-path]/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:34:incache'
/[my-app-path]/vendor/rails/activerecord/lib/active_record/query_cache.rb:9:in cache' /[my-app-path]/vendor/rails/activerecord/lib/active_record/query_cache.rb:28:incall'
/[my-app-path]/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in call' /[my-app-path]/vendor/rails/actionpack/lib/action_controller/failsafe.rb:26:incall'
/[my-app-path]/vendor/gems/rack-1.0.0/lib/rack/lock.rb:11:in call' /[my-app-path]/vendor/gems/rack-1.0.0/lib/rack/lock.rb:11:insynchronize'
/[my-app-path]/vendor/gems/rack-1.0.0/lib/rack/lock.rb:11:in call' /[my-app-path]/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:114:incall'
/[my-app-path]/vendor/rails/actionpack/lib/action_controller/reloader.rb:34:in run' /[my-app-path]/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:108:incall'
/[my-app-path]/vendor/rails/railties/lib/rails/rack/static.rb:31:in call' /[my-app-path]/vendor/gems/rack-1.0.0/lib/rack/urlmap.rb:46:incall'
/[my-app-path]/vendor/gems/rack-1.0.0/lib/rack/urlmap.rb:40:in each' /[my-app-path]/vendor/gems/rack-1.0.0/lib/rack/urlmap.rb:40:incall'
/[my-app-path]/vendor/rails/railties/lib/rails/rack/debugger.rb:17:in call' /[my-app-path]/vendor/rails/railties/lib/rails/rack/log_tailer.rb:17:incall'
/[my-app-path]/vendor/gems/rack-1.0.0/lib/rack/content_length.rb:13:in call' /[my-app-path]/vendor/gems/rack-1.0.0/lib/rack/chunked.rb:15:incall'
/[my-app-path]/vendor/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:61:in process' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:159:inprocess_client'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in each' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:inprocess_client'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in run' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:ininitialize'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in new' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:inrun'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in initialize' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:innew'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in run' /[my-app-path]/vendor/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:34:inrun'
/[my-app-path]/vendor/rails/railties/lib/commands/server.rb:111
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:inrequire'
./script/server:3

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.