diff --git a/app/models/event.rb b/app/models/event.rb index f3df2d42..650abe3e 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -3,7 +3,6 @@ class Event < ActiveRecord::Base include GeocodingUtilities belongs_to :created_by, :class_name => "User" - belongs_to :state, :include => :country belongs_to :calendar has_many :commitments has_many :users, :through => :commitments diff --git a/app/models/user.rb b/app/models/user.rb index 97ed764a..4095f769 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -8,7 +8,6 @@ class User < ActiveRecord::Base include GeocodingUtilities cattr_accessor :current_user - belongs_to :state has_many :commitments has_many :events, :through => :commitments has_many :permissions diff --git a/spec/models/event_spec.rb b/spec/models/event_spec.rb index 1925862e..1d1ca14c 100644 --- a/spec/models/event_spec.rb +++ b/spec/models/event_spec.rb @@ -13,9 +13,11 @@ end it "should belong to a Country" do - opts = Event.reflect_on_association(:state).options - opts.should have_key(:include) - opts[:include].should == :country + pending ":include doesn't seem to be a good idea at all -- must investigate" do + opts = Event.reflect_on_association(:state).options + opts.should have_key(:include) + opts[:include].should == :country + end end it "should belong to a Calendar" do 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 242ee71c..0dc62c62 100644 --- a/vendor/plugins/acts_as_addressed/lib/acts_as_addressed.rb +++ b/vendor/plugins/acts_as_addressed/lib/acts_as_addressed.rb @@ -9,7 +9,8 @@ def self.included(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$/, '')]} + belongs_to :state, :class_name => "Acts::Addressed::State" + composed_of :address, :class_name => "Acts::Addressed::Address", :mapping => %w(street street2 city state_id zip coords).collect{|x| [x, x.gsub(/_id$/, '')]} include InstanceMethods end end 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 d453b4df..4923fd6e 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 @@ -2,7 +2,7 @@ describe Acts::Addressed, "inclusion" do it "should extend SingletonMethods when module is included" do - @active_record = Class.new + @active_record = ActiveRecord::Base @active_record.should_receive(:extend).with(Acts::Addressed::SingletonMethods) @active_record.send :include, Acts::Addressed end @@ -16,20 +16,26 @@ describe "effects on model" do before :each do - @active_record = Class.new + @active_record = ActiveRecord::Base @active_record.send :include, Acts::Addressed @model = Class.new @active_record - @model.stub!(:composed_of) + end + + it "should create a State association" do + @model.should_receive(:belongs_to).with(:state, :class_name => "Acts::Addressed::State") end it "should create an Address aggregation" do - @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 + @model.should_receive(:composed_of).with(:address, :class_name => "Acts::Addressed::Address", :mapping => %w(street street2 city state_id zip coords).collect{|x| [x, x.gsub(/_id$/, '')]}) end it "should include InstanceMethods in the model" do im = Acts::Addressed::InstanceMethods @model.should_receive(:include).with(im) + + end + + after :each do @model.acts_as_addressed end end @@ -38,10 +44,9 @@ describe Acts::Addressed::InstanceMethods do before :each do - @active_record = Class.new - @active_record.send :include, Acts::Addressed - @model = Class.new @active_record - @model.stub!(:composed_of) + ActiveRecord::Base.send :include, Acts::Addressed + @model = Class.new ActiveRecord::Base + @model.set_table_name 'dummies' @model.acts_as_addressed @instance = @model.new end diff --git a/vendor/plugins/acts_as_addressed/spec/spec_helper.rb b/vendor/plugins/acts_as_addressed/spec/spec_helper.rb index 977b28a8..41619b75 100644 --- a/vendor/plugins/acts_as_addressed/spec/spec_helper.rb +++ b/vendor/plugins/acts_as_addressed/spec/spec_helper.rb @@ -52,6 +52,11 @@ def setup_db t.column "code", :string, :limit => 10, :null => false t.column "name", :string, :null => false end + + create_table "dummies", :force => true do |t| + # so we have something to use for dummy classes + t.column 'fake', :string + end end end end