Sha256: c6bad5cfa9369c127ab9e69b873afdb79dcb8336df6fd8d716dc004d8f3bbed8

Contents?: true

Size: 705 Bytes

Versions: 20

Compression:

Stored size: 705 Bytes

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/core_ext'

module Avm
  module Sources
    class Base
      module Parent
        # @return [Avm::Sources::Base]
        def parent
          parent_by_option || parent_by_search
        end

        # @return [Avm::Sources::Base]
        def parent_by_option
          options[OPTION_PARENT]
        end

        # @return [Avm::Sources::Base]
        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
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 3 rubygems

Version Path
eac_tools-0.7.0 sub/avm/lib/avm/sources/base/parent.rb
avm-0.25.0 lib/avm/sources/base/parent.rb
eac_tools-0.6.0 sub/avm/lib/avm/sources/base/parent.rb
eac_tools-0.5.0 sub/avm/lib/avm/sources/base/parent.rb
avm-0.24.0 lib/avm/sources/base/parent.rb
eac_tools-0.4.0 sub/avm/lib/avm/sources/base/parent.rb
eac_tools-0.3.0 sub/avm/lib/avm/sources/base/parent.rb
eac_tools-0.2.2 sub/avm/lib/avm/sources/base/parent.rb
avm-0.23.0 lib/avm/sources/base/parent.rb
avm-0.22.0 lib/avm/sources/base/parent.rb
avm-tools-0.120.0 sub/avm/lib/avm/sources/base/parent.rb
avm-0.21.0 lib/avm/sources/base/parent.rb
avm-tools-0.119.0 sub/avm/lib/avm/sources/base/parent.rb
avm-0.20.0 lib/avm/sources/base/parent.rb
avm-tools-0.118.0 sub/avm/lib/avm/sources/base/parent.rb
avm-tools-0.117.3 sub/avm/lib/avm/sources/base/parent.rb
avm-tools-0.117.2 sub/avm/lib/avm/sources/base/parent.rb
avm-tools-0.117.1 sub/avm/lib/avm/sources/base/parent.rb
avm-0.19.0 lib/avm/sources/base/parent.rb
avm-tools-0.117.0 sub/avm/lib/avm/sources/base/parent.rb