class OpenConfig::Base

Attributes

file_path[R]

Public Class Methods

new(root: Dir.pwd, file:) click to toggle source
# File lib/open_config/files/base.rb, line 7
def initialize(root: Dir.pwd, file:)
  @file_path = File.join(root, file)
end

Public Instance Methods

method_missing(method_name, *arguments, &block) click to toggle source
Calls superclass method
# File lib/open_config/files/base.rb, line 11
def method_missing(method_name, *arguments, &block)
  return super unless configuration_method?(method_name)

  tree.public_send(method_name, *arguments, &block)
end
respond_to_missing?(method_name, include_private = false) click to toggle source
Calls superclass method
# File lib/open_config/files/base.rb, line 17
def respond_to_missing?(method_name, include_private = false)
  configuration_method?(method_name) || super
end

Private Instance Methods

configuration_method?(method_name) click to toggle source
# File lib/open_config/files/base.rb, line 23
def configuration_method?(method_name)
  tree.respond_to?(method_name)
end
parse_file(_file_content) click to toggle source
# File lib/open_config/files/base.rb, line 31
def parse_file(_file_content)
  raise NotImplementedError, 'Subclassed must implement #parse_file'
end
read_file() click to toggle source
# File lib/open_config/files/base.rb, line 35
def read_file
  raise OpenConfig::Errors::FileNotFound, file_path unless File.exists?(file_path)

  File.new(file_path).read
end
tree() click to toggle source
# File lib/open_config/files/base.rb, line 27
def tree
  @tree ||= parse_file(read_file)
end