Module: Avm::Sources::Base::Parent

Defined in:
lib/avm/sources/base/parent.rb

Instance Method Summary collapse

Instance Method Details

#parentAvm::Sources::Base

Returns:



10
11
12
# File 'lib/avm/sources/base/parent.rb', line 10

def parent
  parent_by_option || parent_by_search
end

#parent_by_optionAvm::Sources::Base

Returns:



15
16
17
# File 'lib/avm/sources/base/parent.rb', line 15

def parent_by_option
  options[OPTION_PARENT]
end

#parent_by_searchAvm::Sources::Base

Returns:



20
21
22
23
24
25
26
27
# File 'lib/avm/sources/base/parent.rb', line 20

def parent_by_search
  parent_path = path.parent
  until parent_path.root?
    ::Avm::Registry.sources.detect_optional(parent_path).if_present { |v| return v }
    parent_path = parent_path.parent
  end
  nil
end