class Structural::Model::Association::Hierarchy
Attributes
child[R]
path[R]
Public Class Methods
new(path, child)
click to toggle source
# File lib/structural/model/association.rb, line 21 def initialize(path, child) @path = path @child = child end
Public Instance Methods
constants()
click to toggle source
# File lib/structural/model/association.rb, line 32 def constants hierarchy.map(&:constantize) end
parent()
click to toggle source
# File lib/structural/model/association.rb, line 26 def parent @parent ||= constants.find do |c| c.ancestors.find { |anc| anc.const_defined? child } end end
Private Instance Methods
hierarchy(name=path)
click to toggle source
# File lib/structural/model/association.rb, line 38 def hierarchy(name=path) name.match(/(.*)::.*$/) $1 ? [name] + hierarchy($1) : [name] end