From 3caa4dd1bdf2ddc3c32baf4e3add8cd06c37f9f5 Mon Sep 17 00:00:00 2001 From: Azul Date: Tue, 5 Mar 2013 14:51:44 +0100 Subject: make sure couchrest actually finds our models in the engines --- .travis.yml | 1 + core/lib/extensions/couchrest.rb | 52 +++++++++++++++++++++++++++++----------- 2 files changed, 39 insertions(+), 14 deletions(-) diff --git a/.travis.yml b/.travis.yml index 44da3cb..1d0939d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,5 +4,6 @@ notifications: email: false before_script: - "bundle exec rake couchrest:migrate_with_proxies" + - "bundle exec rake couchrest:migrate_with_proxies" # looks like this needs to run twice - 'HOST="http://localhost:5984"' - "curl -X PUT $HOST/_config/admins/anna -d '\"secret\"'" diff --git a/core/lib/extensions/couchrest.rb b/core/lib/extensions/couchrest.rb index ca4b608..57bb837 100644 --- a/core/lib/extensions/couchrest.rb +++ b/core/lib/extensions/couchrest.rb @@ -1,26 +1,50 @@ module CouchRest - module Model::Designs + module Model + module Designs - class View + class View - # so we can called Ticket.method.descending or Ticket.method.ascending - def ascending - self + # so we can called Ticket.method.descending or Ticket.method.ascending + def ascending + self + end end - end - class DesignMapper - def load_views(dir) - Dir.glob("#{dir}/*.js") do |js| - name = File.basename(js, '.js') - file = File.open(js, 'r') - view name.to_sym, - :map => file.read, - :reduce => "function(key, values, rereduce) { return sum(values); }" + class DesignMapper + def load_views(dir) + Dir.glob("#{dir}/*.js") do |js| + name = File.basename(js, '.js') + file = File.open(js, 'r') + view name.to_sym, + :map => file.read, + :reduce => "function(key, values, rereduce) { return sum(values); }" + end end end end + class Migrate + def self.load_all_models_with_engines + self.load_all_models_without_engines + return unless defined?(Rails) + Dir[Rails.root + '**/models/**/*.rb'].each do |path| + require path + end + end + + def self.all_models_and_proxies + callbacks = migrate_each_model(find_models) + callbacks += migrate_each_proxying_model(find_proxying_models) + cleanup(callbacks) + end + + + + class << self + alias_method_chain :load_all_models, :engines + end + + end end class ModelRailtie -- cgit v1.2.3