class Onoma::Variety

Constants

TOPLEVEL_VARIETIES

Public Class Methods

ancestors(variety) click to toggle source
# File lib/onoma/models/variety.rb, line 22
def ancestors(variety)
  if variety.parent.nil? || TOPLEVEL_VARIETIES.include?(variety.parent.name)
    []
  else
    [variety.parent, *ancestors(variety.parent)]
  end
end
parent_variety(variety) click to toggle source
# File lib/onoma/models/variety.rb, line 6
def parent_variety(variety)
  v = find(variety)

  if v.nil?
    nil
  elsif (toplevel = toplevel_parent(v)).present?
    toplevel.name
  else
    v.name
  end
end
toplevel_parent(variety) click to toggle source
# File lib/onoma/models/variety.rb, line 18
def toplevel_parent(variety)
  ancestors(variety).last
end