Class: Israeli::Result

Inherits:
Object
  • Object
show all
Defined in:
lib/israeli/result.rb

Overview

Result object returned by parse methods.

Provides a rich object with validation status, original/normalized values, and formatting methods for a cleaner API than simple booleans.

Examples:

Using a parse result

result = Israeli.parse_id("123456782")
result.valid?      # => true
result.formatted   # => "123456782"
result.original    # => "123456782"

Invalid result

result = Israeli.parse_id("123456789")
result.valid?      # => false
result.invalid?    # => true
result.reason      # => :invalid_checksum

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(original:, normalized:, valid:, reason: nil) ⇒ Result

Returns a new instance of Result.

Parameters:

  • original (String, nil)

    Original input value

  • normalized (String, nil)

    Normalized/sanitized value

  • valid (Boolean)

    Whether the value is valid

  • reason (Symbol, nil) (defaults to: nil)

    Reason for invalidity



27
28
29
30
31
32
# File 'lib/israeli/result.rb', line 27

def initialize(original:, normalized:, valid:, reason: nil)
  @original = original
  @normalized = normalized
  @valid = valid
  @reason = reason
end

Instance Attribute Details

#normalizedObject (readonly)

Returns the value of attribute normalized.



21
22
23
# File 'lib/israeli/result.rb', line 21

def normalized
  @normalized
end

#originalObject (readonly)

Returns the value of attribute original.



21
22
23
# File 'lib/israeli/result.rb', line 21

def original
  @original
end

#reasonObject (readonly)

Returns the value of attribute reason.



21
22
23
# File 'lib/israeli/result.rb', line 21

def reason
  @reason
end

Instance Method Details

#formattedString?

Returns The formatted value, or nil if invalid.

Returns:

  • (String, nil)

    The formatted value, or nil if invalid



45
46
47
48
49
# File 'lib/israeli/result.rb', line 45

def formatted
  return nil unless valid?

  @normalized
end

#invalid?Boolean

Returns true if the value is invalid.

Returns:

  • (Boolean)

    true if the value is invalid



40
41
42
# File 'lib/israeli/result.rb', line 40

def invalid?
  !@valid
end

#to_sString

Returns String representation.

Returns:

  • (String)

    String representation



52
53
54
# File 'lib/israeli/result.rb', line 52

def to_s
  formatted || ""
end

#valid?Boolean

Returns true if the value is valid.

Returns:

  • (Boolean)

    true if the value is valid



35
36
37
# File 'lib/israeli/result.rb', line 35

def valid?
  @valid
end

#valueString?

Returns The normalized value (alias for formatted).

Returns:

  • (String, nil)

    The normalized value (alias for formatted)



57
58
59
# File 'lib/israeli/result.rb', line 57

def value
  formatted
end