From 1f0d2d83213050bd8998532e7953e0f18d63ce9e Mon Sep 17 00:00:00 2001 From: Marnen Laibow-Koser Date: Thu, 22 Oct 2009 19:49:14 -0400 Subject: [PATCH] Some renaming and rdoc to make things clearer. [#44] --- .../lib/acts_as_addressed.rb | 6 ++- .../spec/acts_as_addressed_spec.rb | 44 +++++++++---------- 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/vendor/plugins/acts_as_addressed/lib/acts_as_addressed.rb b/vendor/plugins/acts_as_addressed/lib/acts_as_addressed.rb index 43d73c4e..242ee71c 100644 --- a/vendor/plugins/acts_as_addressed/lib/acts_as_addressed.rb +++ b/vendor/plugins/acts_as_addressed/lib/acts_as_addressed.rb @@ -2,10 +2,11 @@ module Acts #:nodoc: module Addressed #:nodoc: def self.included(base) - base.extend ClassMethods + base.extend SingletonMethods end - module ClassMethods + # These methods extend ActiveRecord::Base. + module SingletonMethods # Includes the acts_as_addressed structure in the model it's called on. def acts_as_addressed composed_of :address, :mapping => %w(street street2 city state_id zip coords).collect{|x| [x, x.gsub(/_id$/, '')]} @@ -13,6 +14,7 @@ def acts_as_addressed end end + # These methods are available as instance methods on any model for which acts_as_addressed has been called. module InstanceMethods # Nil-safe country accessor. def country diff --git a/vendor/plugins/acts_as_addressed/spec/acts_as_addressed_spec.rb b/vendor/plugins/acts_as_addressed/spec/acts_as_addressed_spec.rb index f35dfdcd..d453b4df 100644 --- a/vendor/plugins/acts_as_addressed/spec/acts_as_addressed_spec.rb +++ b/vendor/plugins/acts_as_addressed/spec/acts_as_addressed_spec.rb @@ -1,36 +1,36 @@ require File.dirname(__FILE__) + '/spec_helper' describe Acts::Addressed, "inclusion" do - it "should extend ClassMethods when module is included" do - @class = Class.new - @class.should_receive(:extend).with(Acts::Addressed::ClassMethods) - @class.send :include, Acts::Addressed + it "should extend SingletonMethods when module is included" do + @active_record = Class.new + @active_record.should_receive(:extend).with(Acts::Addressed::SingletonMethods) + @active_record.send :include, Acts::Addressed end end -describe Acts::Addressed::ClassMethods do +describe Acts::Addressed::SingletonMethods do describe "acts_as_addressed" do it "should be a valid method" do - Acts::Addressed::ClassMethods.instance_method(:acts_as_addressed).should_not be_nil + Acts::Addressed::SingletonMethods.instance_method(:acts_as_addressed).should_not be_nil end describe "effects on model" do before :each do - @base = Class.new - @base.send :include, Acts::Addressed - @class = Class.new @base - @class.stub!(:composed_of) + @active_record = Class.new + @active_record.send :include, Acts::Addressed + @model = Class.new @active_record + @model.stub!(:composed_of) end it "should create an Address aggregation" do - @class.should_receive(:composed_of).with(:address, :mapping => %w(street street2 city state_id zip coords).collect{|x| [x, x.gsub(/_id$/, '')]}) - @class.acts_as_addressed + @model.should_receive(:composed_of).with(:address, :mapping => %w(street street2 city state_id zip coords).collect{|x| [x, x.gsub(/_id$/, '')]}) + @model.acts_as_addressed end it "should include InstanceMethods in the model" do im = Acts::Addressed::InstanceMethods - @class.should_receive(:include).with(im) - @class.acts_as_addressed + @model.should_receive(:include).with(im) + @model.acts_as_addressed end end end @@ -38,12 +38,12 @@ describe Acts::Addressed::InstanceMethods do before :each do - @base = Class.new - @base.send :include, Acts::Addressed - @class = Class.new @base - @class.stub!(:composed_of) - @class.acts_as_addressed - @model = @class.new + @active_record = Class.new + @active_record.send :include, Acts::Addressed + @model = Class.new @active_record + @model.stub!(:composed_of) + @model.acts_as_addressed + @instance = @model.new end describe "country" do @@ -54,8 +54,8 @@ it "should proxy from address" do @address = mock 'Address' @address.should_receive :country - @model.should_receive(:address).and_return(@address) - @model.country + @instance.should_receive(:address).and_return(@address) + @instance.country end end end