Changeset 4304
- Timestamp:
- 04/28/06 20:04:47 (3 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/activerecord/CHANGELOG
r4302 r4304 1 1 *SVN* 2 3 * Update FrontBase adapter to check binding version. Closes #4920. [mlaster@metavillage.com] 2 4 3 5 * New Frontbase connections don't start in auto-commit mode. Closes #4922. [mlaster@metavillage.com] trunk/activerecord/lib/active_record/connection_adapters/frontbase_adapter.rb
r4302 r4304 1 # Requires FrontBase Ruby bindings from: 2 # svn://rubyforge.org/var/svn/frontbase-rails/trunk/ruby-frontbase 1 # Requires FrontBase Ruby bindings (gem install ruby-frontbase) 3 2 4 3 require 'active_record/connection_adapters/abstract_adapter' … … 28 27 # Turn off colorization since it makes tail/less output difficult 29 28 self.colorize_logging = false 30 31 require 'frontbase' 29 30 require_library_or_gem 'frontbase' unless self.class.const_defined? :FBSQL_Connect 31 32 # Check bindings version 33 version = "0.0.0" 34 version = FBSQL_Connect::FB_BINDINGS_VERSION if defined? FBSQL_Connect::FB_BINDINGS_VERSION 35 36 if ActiveRecord::ConnectionAdapters::FrontBaseAdapter.compare_versions(version,"1.0.0") == -1 37 raise AdapterNotFound, 38 'The FrontBase adapter requires ruby-frontbase version 1.0.0 or greater; you appear ' << 39 "to be running an older version (#{version}) -- please update ruby-frontbase (gem install ruby-frontbase)." 40 end 32 41 connection = FBSQL_Connect.connect(host, port, database, username, password, dbpassword, session_name) 33 42 ConnectionAdapters::FrontBaseAdapter.new(connection, logger, [host, port, database, username, password, dbpassword, session_name], config) 34 43 end 35 end 44 end 36 45 end 37 46 … … 224 233 225 234 class FrontBaseAdapter < AbstractAdapter 235 236 class << self 237 def compare_versions(v1, v2) 238 v1_seg = v1.split(".") 239 v2_seg = v2.split(".") 240 0.upto([v1_seg.length,v2_seg.length].min) do |i| 241 step = (v1_seg[i].to_i <=> v2_seg[i].to_i) 242 return step unless step == 0 243 end 244 return v1_seg.length <=> v2_seg.length 245 end 246 end 226 247 227 248 def initialize(connection, logger, connection_options, config)