class DbSpiderReaderNode
Attributes
rec[R]
Public Class Methods
new(rec, data_columns = nil)
click to toggle source
# File lib/db_facet/db_spider_reader_node.rb, line 4 def initialize rec, data_columns = nil @rec = rec @data_columns = data_columns || @rec.class.column_names @ref_nodes = {} @traversed = false end
Public Instance Methods
add_reflection_node(node, ref)
click to toggle source
# File lib/db_facet/db_spider_reader_node.rb, line 49 def add_reflection_node node, ref @ref_nodes[ref.name] ||= [] @ref_nodes[ref.name] << node end
children()
click to toggle source
# File lib/db_facet/db_spider_reader_node.rb, line 62 def children reflections .map{|ref| @ref_nodes[ref.name].to_a} .flatten .compact .sort_by{|n| n.rec.class.name} end
data()
click to toggle source
# File lib/db_facet/db_spider_reader_node.rb, line 58 def data @rec.attributes.slice *@data_columns end
data_tree()
click to toggle source
# File lib/db_facet/db_spider_reader_node.rb, line 23 def data_tree { data: data, class_name: @rec.class.name, original_id: @rec.id, reflections: reflections_data } end
eql?(other)
click to toggle source
# File lib/db_facet/db_spider_reader_node.rb, line 54 def eql? other # used by Hash to compare keys @rec.eql? other end
excl_data_cols(excl)
click to toggle source
# File lib/db_facet/db_spider_reader_node.rb, line 11 def excl_data_cols excl @data_columns -= [excl] end
reflection_records(ref)
click to toggle source
# File lib/db_facet/db_spider_reader_node.rb, line 44 def reflection_records ref recs = @rec.send ref.name [recs].flatten.compact end
reflections()
click to toggle source
# File lib/db_facet/db_spider_reader_node.rb, line 40 def reflections @rec.class.reflections.values end
reflections_data()
click to toggle source
# File lib/db_facet/db_spider_reader_node.rb, line 32 def reflections_data rd = {} @ref_nodes.each_pair do |ref_name, nodes| rd[ref_name] = nodes.map &:data_tree end rd end
traversed!()
click to toggle source
# File lib/db_facet/db_spider_reader_node.rb, line 19 def traversed! @traversed = true end
traversed?()
click to toggle source
# File lib/db_facet/db_spider_reader_node.rb, line 15 def traversed? @traversed end