From 36f69ec3324fdab8992cdfc964d11b32a253836d Mon Sep 17 00:00:00 2001 From: Seth Ladd Date: Mon, 8 Jun 2009 11:48:15 -1000 Subject: [PATCH] check if Rails exists for the rails support --- lib/couchrest/support/rails.rb | 78 +++++++++++++++++----------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/lib/couchrest/support/rails.rb b/lib/couchrest/support/rails.rb index 2fa267c..021a4f3 100644 --- a/lib/couchrest/support/rails.rb +++ b/lib/couchrest/support/rails.rb @@ -1,52 +1,52 @@ # This file contains various hacks for Rails compatibility. -# To use, just require in environment.rb, like so: -# -# require 'couchrest/support/rails' -class Hash - # Hack so that CouchRest::Document, which descends from Hash, - # doesn't appear to Rails routing as a Hash of options - def self.===(other) - return false if self == Hash && other.is_a?(CouchRest::Document) - super +if defined?(Rails) + + class Hash + # Hack so that CouchRest::Document, which descends from Hash, + # doesn't appear to Rails routing as a Hash of options + def self.===(other) + return false if self == Hash && other.is_a?(CouchRest::Document) + super + end end -end - -CouchRest::Document.class_eval do - # Need this when passing doc to a resourceful route - alias_method :to_param, :id + CouchRest::Document.class_eval do + # Need this when passing doc to a resourceful route + alias_method :to_param, :id - # Hack so that CouchRest::Document, which descends from Hash, - # doesn't appear to Rails routing as a Hash of options - def is_a?(o) - return false if o == Hash - super - end - alias_method :kind_of?, :is_a? + # Hack so that CouchRest::Document, which descends from Hash, + # doesn't appear to Rails routing as a Hash of options + def is_a?(o) + return false if o == Hash + super + end + alias_method :kind_of?, :is_a? - # Gives extended doc a seamless logger - def logger - ActiveRecord::Base.logger + # Gives extended doc a seamless logger + def logger + ActiveRecord::Base.logger + end end -end -CouchRest::CastedModel.class_eval do - # The to_param method is needed for rails to generate resourceful routes. - # In your controller, remember that it's actually the id of the document. - def id - return nil if base_doc.nil? - base_doc.id + CouchRest::CastedModel.class_eval do + # The to_param method is needed for rails to generate resourceful routes. + # In your controller, remember that it's actually the id of the document. + def id + return nil if base_doc.nil? + base_doc.id + end + alias_method :to_param, :id end - alias_method :to_param, :id -end -require Pathname.new(File.dirname(__FILE__)).join('..', 'validation', 'validation_errors') + require Pathname.new(File.dirname(__FILE__)).join('..', 'validation', 'validation_errors') -CouchRest::Validation::ValidationErrors.class_eval do - # Returns the total number of errors added. Two errors added to the same attribute will be counted as such. - # This method is called by error_messages_for - def count - errors.values.inject(0) { |error_count, errors_for_attribute| error_count + errors_for_attribute.size } + CouchRest::Validation::ValidationErrors.class_eval do + # Returns the total number of errors added. Two errors added to the same attribute will be counted as such. + # This method is called by error_messages_for + def count + errors.values.inject(0) { |error_count, errors_for_attribute| error_count + errors_for_attribute.size } + end end + end