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
# 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
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