# File lib/closure_tree/support_attributes.rb, line 23 def primary_key_column model_class.columns.detect { |ea| ea.name == model_class.primary_key } end
module ClosureTree::SupportAttributes
Public Instance Methods
advisory_lock_name()
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 7 def advisory_lock_name Digest::SHA1.hexdigest("ClosureTree::#{base_class.name}")[0..32] end
dont_order_roots()
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 78 def dont_order_roots options[:dont_order_roots] || false end
hierarchy_class_name()
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 19 def hierarchy_class_name options[:hierarchy_class_name] || model_class.to_s + "Hierarchy" end
name_column()
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 39 def name_column options[:name_column] end
name_sym()
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 43 def name_sym name_column.to_sym end
nulls_last_order_by()
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 82 def nulls_last_order_by Arel.sql "-#{quoted_order_column} #{order_by_order(true)}" end
order_by()
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 74 def order_by options[:order] end
order_by_order(reverse = false)
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 86 def order_by_order(reverse = false) desc = !!(order_by.to_s =~ /DESC\z/) desc = !desc if reverse desc ? 'DESC' : 'ASC' end
order_column()
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 92 def order_column o = order_by if o.nil? nil elsif o.is_a?(String) o.split(' ', 2).first else o.to_s end end
order_column_sym()
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 107 def order_column_sym require_order_column order_column.to_sym end
parent_column_name()
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 31 def parent_column_name options[:parent_column_name] end
parent_column_sym()
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 35 def parent_column_sym parent_column_name.to_sym end
primary_key_column()
click to toggle source
primary_key_type()
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 27 def primary_key_type primary_key_column.type end
quoted_hierarchy_table_name()
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 58 def quoted_hierarchy_table_name connection.quote_table_name hierarchy_table_name end
quoted_id_column_name()
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 62 def quoted_id_column_name connection.quote_column_name model_class.primary_key end
quoted_name_column()
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 70 def quoted_name_column connection.quote_column_name name_column end
quoted_order_column(include_table_name = true)
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 112 def quoted_order_column(include_table_name = true) require_order_column prefix = include_table_name ? "#{quoted_table_name}." : "" "#{prefix}#{connection.quote_column_name(order_column)}" end
quoted_parent_column_name()
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 66 def quoted_parent_column_name connection.quote_column_name parent_column_name end
quoted_table_name()
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 11 def quoted_table_name connection.quote_table_name(table_name) end
quoted_value(value)
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 15 def quoted_value(value) value.is_a?(Numeric) ? value : quote(value) end
require_order_column()
click to toggle source
# File lib/closure_tree/support_attributes.rb, line 103 def require_order_column raise ":order value, '#{options[:order]}', isn't a column" if order_column.nil? end
short_hierarchy_class_name()
click to toggle source
Returns the constant name of the hierarchy_class
@return [String] the constant name
@example
Namespace::Model.hierarchy_class_name # => "Namespace::ModelHierarchy" Namespace::Model.short_hierarchy_class_name # => "ModelHierarchy"
# File lib/closure_tree/support_attributes.rb, line 54 def short_hierarchy_class_name hierarchy_class_name.split('::').last end
t_alias_keyword()
click to toggle source
table_name alias keyword , like “AS”. When used on table name alias, Oracle Database don't support used 'AS'
# File lib/closure_tree/support_attributes.rb, line 119 def t_alias_keyword (ActiveRecord::Base.connection.adapter_name.to_sym == :OracleEnhanced) ? "" : "AS" end