Class: Anodator::CheckResult

Inherits:
Object
  • Object
show all
Defined in:
lib/anodator/check_result.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(target_numbers, message, level) ⇒ CheckResult

Returns a new instance of CheckResult.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/anodator/check_result.rb', line 7

def initialize(target_numbers, message, level)
  @target_numbers = target_numbers.to_a
  @message        = message.to_s
  @level          = level

  if @target_numbers.size.zero?
    raise ArgumentError.new("target numbers cannot be blank")
  end
  if @message.split(//).size.zero?
    raise ArgumentError.new("message cannot be blank")
  end
  unless Rule::ERROR_LEVELS.values.include?(level)
    raise ArgumentError.new("level must be #{Rule::ERROR_LEVEL_NAMES.join(", ")}")
  end
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(message, *args) ⇒ Object



28
29
30
31
32
33
34
35
36
# File 'lib/anodator/check_result.rb', line 28

def method_missing(message, *args)
  if message.to_s =~ /(\A[a-zA-Z_]+)\?\Z/
    if Rule::ERROR_LEVELS.keys.include?($1.to_sym)
      return Rule::ERROR_LEVELS[$1.to_sym] == @level
    end
  end

  super
end

Instance Attribute Details

#levelObject (readonly)

Returns the value of attribute level.



5
6
7
# File 'lib/anodator/check_result.rb', line 5

def level
  @level
end

#messageObject (readonly)

Returns the value of attribute message.



5
6
7
# File 'lib/anodator/check_result.rb', line 5

def message
  @message
end

#target_numbersObject (readonly)

Returns the value of attribute target_numbers.



5
6
7
# File 'lib/anodator/check_result.rb', line 5

def target_numbers
  @target_numbers
end

Instance Method Details

#to_sObject



23
24
25
26
# File 'lib/anodator/check_result.rb', line 23

def to_s
  buf = "[#{Rule.level_expression(@level)}]\t"
  buf += @message + " |#{@target_numbers.join(", ")}|"
end