Class: DevDNSd::Configuration

Inherits:
Bovem::Configuration
  • Object
show all
Defined in:
lib/devdnsd/configuration.rb

Overview

This class holds the configuration of the application.

Instance Method Summary collapse

Constructor Details

#initialize(file = nil, overrides = {}, logger = nil) ⇒ Configuration

Creates a new configuration. A configuration file is a plain Ruby file with a top-level config object.

Example:

config.add_rule("match.dev", "10.0.0.1")

Parameters:

  • file (String) (defaults to: nil)

    The file to read.

  • overrides (Hash) (defaults to: {})

    A set of values which override those set in the configuration file.

  • logger (Logger) (defaults to: nil)

    The logger to use for notifications.



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/devdnsd/configuration.rb', line 64

def initialize(file = nil, overrides = {}, logger = nil)
  super(file, overrides, logger)

  # Make sure some arguments are of correct type
  self.log_file = case log_file
    when "STDOUT" then $stdout
    when "STDERR" then $stderr
    else File.absolute_path(File.expand_path(log_file))
  end

  self.pid_file = File.absolute_path(File.expand_path(pid_file))
  self.port = port.to_integer
  self.log_level = log_level.to_integer

  # Add a default rule
  add_rule(/.+/, "127.0.0.1") if rules.blank?
end

Instance Method Details

#add_rule(*args, &block) ⇒ Array

Adds a rule to the configuration.

Parameters:

  • args (Array)

    The rule's arguments.

  • block (Proc)

    An optional block for the rule.

Returns:

  • (Array)

    The current set of rule.

See Also:



88
89
90
# File 'lib/devdnsd/configuration.rb', line 88

def add_rule(*args, &block)
  rules << DevDNSd::Rule.create(*args, &block)
end