Class: Onoma::Variety
Constant Summary
collapse
- TOPLEVEL_VARIETIES =
%w[bioproduct immatter matter product product_group].freeze
Class Method Summary
collapse
method_missing, respond_to?
Class Method Details
.ancestors(variety) ⇒ Object
22
23
24
25
26
27
28
|
# 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) ⇒ Object
6
7
8
9
10
11
12
13
14
15
16
|
# 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) ⇒ Object
18
19
20
|
# File 'lib/onoma/models/variety.rb', line 18
def toplevel_parent(variety)
ancestors(variety).last
end
|