Method: Fancygrid::Node#initialize

Defined in:
lib/fancygrid/node.rb

#initialize(parent, name, options = {}) ⇒ Node

Initializes the node.

Raises:

  • (ArgumentError)


25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/fancygrid/node.rb', line 25

def initialize(parent, name, options = {})
  raise ArgumentError, "expected parent to be a Node" if !parent.nil? && !parent.is_a?(Fancygrid::Node)
  raise ArgumentError, "name must not be blank" if name.blank?
  
  @parent   = parent
  @name     = name
  @children = []
  @root     = self.get_root
  
  @resource_class = options.fetch(:class) do 
    self.name.to_s.classify.constantize 
  end
  
  @table_name = options.fetch(:table_name) do
    if self.resource_class.respond_to?(:table_name)
      self.resource_class.table_name
    else
      self.resource_class.name.tableize
    end
  end
  
  self.parent.add_child self if self.parent.present?
end