Sha256: ef94ef6fe801867e7e0d2f54d2615dcef8d07a9b993e23a6cb3e7f28a58ef4fc

Contents?: true

Size: 1.05 KB

Versions: 44

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

require 'eac_config/entry_path'
require 'eac_ruby_utils/core_ext'

module EacConfig
  class Entry
    enable_simple_cache
    common_constructor :root_node, :path do
      self.path = ::EacConfig::EntryPath.assert(path)
    end

    def found?
      node_entry.if_present(false, &:found?)
    end

    def found_node
      node_entry.if_present(&:node)
    end

    def secret_value
      node_entry.if_present(&:secret_value)
    end

    def value
      node_entry.if_present(&:value)
    end

    def value=(a_value)
      write_node.self_entry(path).value = a_value
    end

    def write_node
      root_node.write_node || root_node
    end

    private

    def node_entry_uncached
      node_entry_from_root || node_entry_from_load_path
    end

    def node_entry_from_load_path_uncached
      root_node.recursive_loaded_nodes.lazy.map { |loaded_node| loaded_node.self_entry(path) }
        .find(&:found?)
    end

    def node_entry_from_root_uncached
      e = root_node.self_entry(path)
      e.found? ? e : nil
    end
  end
end

Version data entries

44 entries across 44 versions & 3 rubygems

Version Path
eac_tools-0.25.0 sub/eac_config/lib/eac_config/entry.rb
eac_config-0.11.0 lib/eac_config/entry.rb
eac_tools-0.24.1 sub/eac_config/lib/eac_config/entry.rb
eac_tools-0.24.0 sub/eac_config/lib/eac_config/entry.rb
eac_tools-0.23.0 sub/eac_config/lib/eac_config/entry.rb
eac_tools-0.22.0 sub/eac_config/lib/eac_config/entry.rb
eac_tools-0.21.0 sub/eac_config/lib/eac_config/entry.rb
eac_tools-0.20.0 sub/eac_config/lib/eac_config/entry.rb
eac_tools-0.19.0 sub/eac_config/lib/eac_config/entry.rb
eac_tools-0.18.0 sub/eac_config/lib/eac_config/entry.rb
eac_tools-0.17.0 sub/eac_config/lib/eac_config/entry.rb
eac_tools-0.16.1 sub/eac_config/lib/eac_config/entry.rb
eac_tools-0.16.0 sub/eac_config/lib/eac_config/entry.rb
eac_tools-0.15.0 sub/eac_config/lib/eac_config/entry.rb
eac_tools-0.14.0 sub/eac_config/lib/eac_config/entry.rb
eac_config-0.10.0 lib/eac_config/entry.rb
eac_tools-0.13.0 sub/eac_config/lib/eac_config/entry.rb
eac_tools-0.12.0 sub/eac_config/lib/eac_config/entry.rb
eac_tools-0.11.1 sub/eac_config/lib/eac_config/entry.rb
eac_tools-0.11.0 sub/eac_config/lib/eac_config/entry.rb