Class: Aef::Hosts::Entry

Inherits:
Element show all
Defined in:
lib/hosts/aef/hosts/entry.rb

Overview

Represents an entry line as element of a hosts file

Instance Attribute Summary collapse

Attributes inherited from Element

#cache

Instance Method Summary collapse

Methods inherited from Element

#cache_filled?, #invalidate_cache!, #to_s

Constructor Details

#initialize(address, name, options = {}) ⇒ Entry

Initializes an entry.

Parameters:

  • address (String)

    the network address

  • name (String)

    the primary hostname for the address

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

Options Hash (options):

  • :aliases (Array<String>)

    a list of aliases for the address

  • :comment (String)

    a comment for the entry

  • :cache (String)

    a cached String representation

Raises:

  • (ArgumentError)


57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/hosts/aef/hosts/entry.rb', line 57

def initialize(address, name, options = {})
  validate_options(options, :aliases, :comment, :cache)

  raise ArgumentError, 'Address cannot be empty' unless address
  raise ArgumentError, 'Name cannot be empty' unless name

  @address = address.to_s
  @name    = name.to_s
  @aliases = options[:aliases] || []
  @comment = options[:comment].to_s unless options[:comment].nil?
  @cache   = options[:cache].to_s unless options[:cache].nil?
end

Instance Attribute Details

#addressString

The network address

Returns:

  • (String)


31
32
33
# File 'lib/hosts/aef/hosts/entry.rb', line 31

def address
  @address
end

#aliasesArray<String>

Optional alias hostnames

Returns:

  • (Array<String>)


46
47
48
# File 'lib/hosts/aef/hosts/entry.rb', line 46

def aliases
  @aliases
end

#commentString

Optional comment

Returns:

  • (String)


41
42
43
# File 'lib/hosts/aef/hosts/entry.rb', line 41

def comment
  @comment
end

#nameString

The primary hostname for the address

Returns:

  • (String)


36
37
38
# File 'lib/hosts/aef/hosts/entry.rb', line 36

def name
  @name
end

Instance Method Details

#inspectString

A String representation for debugging purposes

Returns:

  • (String)


101
102
103
# File 'lib/hosts/aef/hosts/entry.rb', line 101

def inspect
  generate_inspect(self, :address, :name, :aliases, :comment, :cache)
end