From ec12d602240ba72c55aa8ddf71468c0c698ba19d Mon Sep 17 00:00:00 2001 From: Adam Meehan Date: Fri, 27 Jun 2008 09:56:45 +1000 Subject: [PATCH] changed spec_helper rails version selection to use VERSION added RAILS_VER constant for version checking fixed rspec module include requirement for 1.1.4 in specs --- lib/validates_timeliness/attribute_methods.rb | 6 +++--- spec/attribute_methods_spec.rb | 16 ++++++++------ spec/base_spec.rb | 1 + spec/spec_helper.rb | 21 +++++++++++-------- 4 files changed, 26 insertions(+), 18 deletions(-) diff --git a/lib/validates_timeliness/attribute_methods.rb b/lib/validates_timeliness/attribute_methods.rb index eaaf543..ee6ac98 100644 --- a/lib/validates_timeliness/attribute_methods.rb +++ b/lib/validates_timeliness/attribute_methods.rb @@ -1,4 +1,4 @@ -# For Rails 2.0.2: +# For Rails 2.0.x: # This module adds method to create reader method for Time attributes # to allow for invalid date checking. If date is invalid then returns nil for # time value. @@ -15,7 +15,7 @@ module ValidatesTimeliness module AttributeMethods def self.included(base) - if Rails::VERSION::STRING <= '2.0.2' + if RAILS_VER <= '2.1' base.extend ClassMethods::Old else base.extend ClassMethods::New @@ -95,7 +95,7 @@ module ValidatesTimeliness end end - # defines time attribute reader and does conversion strict + # defines time attribute reader and does strict conversion def define_read_method_for_time_attribute(attr_name) method_body = <<-EOV def #{attr_name}(reload = false) diff --git a/spec/attribute_methods_spec.rb b/spec/attribute_methods_spec.rb index 4bb93d8..28d8513 100644 --- a/spec/attribute_methods_spec.rb +++ b/spec/attribute_methods_spec.rb @@ -1,6 +1,8 @@ require File.dirname(__FILE__) + '/spec_helper' describe ValidatesTimeliness::AttributeMethods do + include ValidatesTimeliness::AttributeMethods + before do @person = Person.new end @@ -42,10 +44,12 @@ describe ValidatesTimeliness::AttributeMethods do strict_time_type_cast(Time.now).should be_kind_of(Time) end - it "should convert time string into current timezone" do - time = strict_time_type_cast("2000-01-01 12:13:14") - Time.zone.utc_offset.should == 0 - time.zone.should == 'UTC' + if RAILS_VER >= '2.1' + it "should convert time string into current timezone" do + time = strict_time_type_cast("2000-01-01 12:13:14") + Time.zone.utc_offset.should == 0 + time.zone.should == 'UTC' + end end end @@ -73,7 +77,7 @@ describe ValidatesTimeliness::AttributeMethods do @person.birth_date_and_time.should be_nil end - unless Rails::VERSION::STRING <= '2.0.2' + unless RAILS_VER < '2.1' it "should return stored time string as Time with correct timezone" do Time.zone = 'Melbourne' time_string = "2000-06-01 01:02:03" @@ -84,7 +88,7 @@ describe ValidatesTimeliness::AttributeMethods do end describe "time attribute persistance" do - unless Rails::VERSION::STRING <= '2.0.2' + unless RAILS_VER < '2.1' it "should return time object from database in correct timezone" do Time.zone = 'Melbourne' time_string = "1980-06-01 09:00:00" diff --git a/spec/base_spec.rb b/spec/base_spec.rb index 0b19d19..0ce8e71 100644 --- a/spec/base_spec.rb +++ b/spec/base_spec.rb @@ -1,6 +1,7 @@ require File.dirname(__FILE__) + '/spec_helper' describe ValidatesTimeliness::Base do + include ValidatesTimeliness::Base class AttributeAssignmentError; def initialize(*args); end; end class MultiparameterAssignmentErrors; def initialize(*args); end; end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index f8a8f6f..77f0f52 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -4,26 +4,29 @@ require 'rubygems' require 'spec' if File.exists?(File.dirname(__FILE__) + '/../../../../vendor/rails') - $: << File.dirname(__FILE__) + '/../../../../vendor/rails' + $:.unshift File.dirname(__FILE__) + '/../../../../vendor/rails' require 'activesupport/lib/active_support' require 'activerecord/lib/active_record' - require 'railties/lib/rails/version' - - vendored_rails = true + require 'railties/lib/rails/version' + puts "Using vendored Rails version #{Rails::VERSION::STRING}" else + gem 'rails', "=#{ENV['VERSION']}" if ENV['VERSION'] + require 'rails/version' require 'active_record' require 'active_record/version' - require 'rails/version' - - vendored_rails = false + puts "Using gem Rails version #{Rails::VERSION::STRING}" end +RAILS_VER = Rails::VERSION::STRING -Time.zone_default = TimeZone['UTC'] ActiveRecord::Base.default_timezone = :utc -ActiveRecord::Base.time_zone_aware_attributes = true + +if RAILS_VER >= '2.1' + Time.zone_default = TimeZone['UTC'] + ActiveRecord::Base.time_zone_aware_attributes = true +end require 'validates_timeliness'