Sha256: da88b14a0f7b9b95b9961f2c595573e333e6765e9734bc2eb8178c022b9e7eee

Contents?: true

Size: 1014 Bytes

Versions: 42

Compression:

Stored size: 1014 Bytes

Contents

# Concerns type casting of a raw value to an `Integer`.
module Metasploit::Model::Search::Operation::Value::Integer
  #
  # Attributes
  #

  # @!attribute [r] value_before_type_cast
  #   The formatted version of {#value} before it was type cast when calling {#value=}.
  #
  #   @return [Object]
  attr_reader :value_before_type_cast

  #
  # Methods
  #

  # Sets {Metasploit::Model::Search::Operation::Base#value} by type casting String to Integer.
  #
  # @param formatted_value [#to_s]
  # @return [Integer] if `formatted_value` contains only an Integer#to_s
  # @return [#to_s] `formatted_value` if it does not contain an Integer#to_s
  def value=(formatted_value)
    @value_before_type_cast = formatted_value

    begin
      # use Integer() instead of String#to_i as String#to_i will ignore trailing letters (i.e. '1two' -> 1) and turn all
      # string without an integer in it to 0.
      @value = Integer(formatted_value.to_s)
    rescue ArgumentError
      @value = formatted_value
    end
  end
end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
metasploit-model-0.27.4 lib/metasploit/model/search/operation/value/integer.rb
metasploit-model-0.27.4-java lib/metasploit/model/search/operation/value/integer.rb