Class: SPF::Query::Mechanism

Inherits:
Object
  • Object
show all
Defined in:
lib/spf/query/mechanism.rb

Overview

Represents an SPF mechanism.

Constant Summary collapse

QUALIFIERS =

Maps qualifier symbols to Symbols

{
  '+' => :pass,
  '-' => :fail,
  '~' => :soft_fail,
  '?' => :neutral
}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, options = {}) ⇒ Mechanism

Initializes the mechanism.

Parameters:

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

    Additional options.

Options Hash (options):

  • :value (String, MacroString, IP)

    Optional value.

  • :qualifier (Symbol)

    Mechanism qualifier.



40
41
42
43
44
45
# File 'lib/spf/query/mechanism.rb', line 40

def initialize(name,options={})
  @name = name

  @value     = options[:value]
  @qualifier = options[:qualifier]
end

Instance Attribute Details

#nameSymbol (readonly)

The mechanism name.

Returns:

  • (Symbol)


19
20
21
# File 'lib/spf/query/mechanism.rb', line 19

def name
  @name
end

#valueString, ... (readonly)

The mechanism value.

Returns:



24
25
26
# File 'lib/spf/query/mechanism.rb', line 24

def value
  @value
end

Instance Method Details

#fail?Boolean

Determines if the qualifier is a "fail".

Returns:

  • (Boolean)


71
72
73
# File 'lib/spf/query/mechanism.rb', line 71

def fail?
  @qualifier == :fail
end

#neutral?Boolean

Determines whether the qualifier is a "neutral".

Returns:

  • (Boolean)


89
90
91
# File 'lib/spf/query/mechanism.rb', line 89

def neutral?
  @qualifier == :neutral
end

#pass?Boolean

Determines whether the qualifier is a "pass".

Returns:

  • (Boolean)


62
63
64
# File 'lib/spf/query/mechanism.rb', line 62

def pass?
  @qualifier == :pass || @qualifier.nil?
end

#qualifier:pass, ...

The mechanism qualifier.

Returns:

  • (:pass, :fail, :soft_fail, :neutral)

    The qualifier. Defaults to :pass.



53
54
55
# File 'lib/spf/query/mechanism.rb', line 53

def qualifier
  @qualifier || :pass
end

#soft_fail?Boolean

Determines whether the qualifier is a "soft_fail".

Returns:

  • (Boolean)


80
81
82
# File 'lib/spf/query/mechanism.rb', line 80

def soft_fail?
  @qualifier == :soft_fail
end

#to_sString

Converts the mechanism to a String.

Returns:

  • (String)


98
99
100
101
102
103
# File 'lib/spf/query/mechanism.rb', line 98

def to_s
  str = "#{QUALIFIERS.invert[@qualifier]}#{@name}"
  str << ":#{@value}" if value

  return str
end