Skip to content

Commit c92002c

Browse files
committed
Added: database_type to configuration
1 parent 9babda8 commit c92002c

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

lib/closure_tree/configuration.rb

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
module ClosureTree
22
class Configuration # :nodoc:
33
attr_accessor :database_less
4+
attr_accessor :database_type
45

56
def initialize
67
@database_less = ENV['DATABASE_URL'].to_s.include?('//user:[email protected]/')

lib/closure_tree/numeric_order_support.rb

+11
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,17 @@ def self.adapter_for_connection(connection)
1212
end
1313
end
1414

15+
def self.adapter_for_database_type(database_type)
16+
case database_type
17+
when :postgresql
18+
::ClosureTree::NumericOrderSupport::PostgreSQLAdapter
19+
when :mysql
20+
::ClosureTree::NumericOrderSupport::MysqlAdapter
21+
else
22+
::ClosureTree::NumericOrderSupport::GenericAdapter
23+
end
24+
end
25+
1526
module MysqlAdapter
1627
def reorder_with_parent_id(parent_id, minimum_sort_order_value = nil)
1728
return if parent_id.nil? && dont_order_roots

lib/closure_tree/support.rb

+5-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,11 @@ def initialize(model_class, options)
2727
}.merge(options)
2828
raise ArgumentError, "name_column can't be 'path'" if options[:name_column] == 'path'
2929
if order_is_numeric?
30-
extend NumericOrderSupport.adapter_for_connection(connection)
30+
if ClosureTree.configuration.database_type
31+
extend NumericOrderSupport.adapter_for_database_type(ClosureTree.configuration.database_type)
32+
else
33+
extend NumericOrderSupport.adapter_for_connection(connection)
34+
end
3135
end
3236
end
3337

0 commit comments

Comments
 (0)