Skip to content

Commit 84de6e0

Browse files
committed
[Rails3] Move all core extensions to active_record/connection_adapters/sqlserver/core_ext.
1 parent c8b12c4 commit 84de6e0

File tree

6 files changed

+101
-141
lines changed

6 files changed

+101
-141
lines changed

RAILS3_NOTES

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ on a local branch of our remote tracking branch.
5454
Undefined coerced test: MigrationTest#test_add_column_not_null_without_default
5555
Undefined coerced test: ChangeTableMigrationsTest#test_string_creates_string_column
5656
Undefined coerced test: QueryCacheTest#test_cache_does_not_wrap_string_results_in_arrays
57-
* Move all sqlserver_adapter/core_ext files to sqlserver/core_ext.
5857
* Make sure the repair special columns was good to go.
5958
* Possibly remove 2000 support and query methods.
6059
* Make sure Gemspec is good.
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
require 'active_record/version'
2+
3+
module ActiveRecord
4+
module ConnectionAdapters
5+
module Sqlserver
6+
module CoreExt
7+
module ActiveRecord
8+
9+
def self.included(klass)
10+
klass.extend ClassMethods
11+
class << klass
12+
alias_method_chain :reset_column_information, :sqlserver_cache_support
13+
end
14+
end
15+
16+
module ClassMethods
17+
18+
def execute_procedure(proc_name, *variables)
19+
if connection.respond_to?(:execute_procedure)
20+
connection.execute_procedure(proc_name,*variables)
21+
else
22+
[]
23+
end
24+
end
25+
26+
def coerce_sqlserver_date(*attributes)
27+
write_inheritable_attribute :coerced_sqlserver_date_columns, Set.new(attributes.map(&:to_s))
28+
end
29+
30+
def coerce_sqlserver_time(*attributes)
31+
write_inheritable_attribute :coerced_sqlserver_time_columns, Set.new(attributes.map(&:to_s))
32+
end
33+
34+
def coerced_sqlserver_date_columns
35+
read_inheritable_attribute(:coerced_sqlserver_date_columns) || []
36+
end
37+
38+
def coerced_sqlserver_time_columns
39+
read_inheritable_attribute(:coerced_sqlserver_time_columns) || []
40+
end
41+
42+
def reset_column_information_with_sqlserver_cache_support
43+
connection.send(:initialize_sqlserver_caches) if connection.respond_to?(:sqlserver?)
44+
reset_column_information_without_sqlserver_cache_support
45+
end
46+
47+
end
48+
49+
end
50+
end
51+
end
52+
end
53+
end
54+
55+
56+
ActiveRecord::Base.send :include, ActiveRecord::ConnectionAdapters::Sqlserver::CoreExt::ActiveRecord
57+
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
module ActiveRecord
2+
module ConnectionAdapters
3+
module Sqlserver
4+
module CoreExt
5+
module ODBC
6+
7+
module TimeStamp
8+
def to_sqlserver_string
9+
date, time, nanoseconds = to_s.split(' ')
10+
"#{date} #{time}.#{sprintf("%03d",nanoseconds.to_i/1000000)}"
11+
end
12+
end
13+
14+
module Statement
15+
def finished?
16+
begin
17+
connected?
18+
false
19+
rescue ::ODBC::Error => e
20+
true
21+
end
22+
end
23+
end
24+
25+
module Database
26+
def run_block(*args)
27+
yield sth = run(*args)
28+
sth.drop
29+
end
30+
end
31+
32+
end
33+
end
34+
end
35+
end
36+
end
37+
38+
39+
ODBC::TimeStamp.send :include, ActiveRecord::ConnectionAdapters::Sqlserver::CoreExt::ODBC::TimeStamp if defined?(ODBC::TimeStamp)
40+
ODBC::Statement.send :include, ActiveRecord::ConnectionAdapters::Sqlserver::CoreExt::ODBC::Statement if defined?(ODBC::Statement)
41+
ODBC::Database.send :include, ActiveRecord::ConnectionAdapters::Sqlserver::CoreExt::ODBC::Database if defined?(ODBC::Database)
42+

lib/active_record/connection_adapters/sqlserver_adapter.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
require 'active_record'
22
require 'active_record/connection_adapters/abstract_adapter'
3-
require 'active_record/connection_adapters/sqlserver_adapter/core_ext/active_record'
3+
require 'active_record/connection_adapters/sqlserver/core_ext/active_record'
44
require 'active_record/connection_adapters/sqlserver/database_limits'
55
require 'active_record/connection_adapters/sqlserver/database_statements'
66
require 'active_record/connection_adapters/sqlserver/schema_statements'
@@ -20,7 +20,7 @@ def self.sqlserver_connection(config) #:nodoc:
2020
case mode
2121
when :odbc
2222
require_library_or_gem 'odbc' unless defined?(ODBC)
23-
require 'active_record/connection_adapters/sqlserver_adapter/core_ext/odbc'
23+
require 'active_record/connection_adapters/sqlserver/core_ext/odbc'
2424
raise ArgumentError, 'Missing :dsn configuration.' unless config.has_key?(:dsn)
2525
when :adonet
2626
require 'System.Data'

lib/active_record/connection_adapters/sqlserver_adapter/core_ext/active_record.rb

Lines changed: 0 additions & 98 deletions
This file was deleted.

lib/active_record/connection_adapters/sqlserver_adapter/core_ext/odbc.rb

Lines changed: 0 additions & 40 deletions
This file was deleted.

0 commit comments

Comments
 (0)