class ActiveModel::Type::Integer

Experimental RBS support (using type sampling data from the type_fusion project).

# sig/active_model/type/integer.rbs

class ActiveModel::Type::Integer < ActiveModel::Type::Value
  def cast_value: (Integer value) -> Integer
  def deserialize: (Integer value) -> Integer
  def ensure_in_range: (Integer value) -> untyped
  def in_range?: (Integer value) -> true
  def serialize: ((String | Integer | nil) value) -> Integer?
end

:nodoc:

def _limit

def _limit
  limit || DEFAULT_LIMIT
end

def cast_value(value)

Experimental RBS support (using type sampling data from the type_fusion project).

def cast_value: (Integer value) -> Integer

This signature was generated using 3 samples from 1 application.

def cast_value(value)
  value.to_i rescue nil
end

def deserialize(value)

Experimental RBS support (using type sampling data from the type_fusion project).

def deserialize: (Integer value) -> Integer

This signature was generated using 1 sample from 1 application.

def deserialize(value)
  return if value.blank?
  value.to_i
end

def ensure_in_range(value)

Experimental RBS support (using type sampling data from the type_fusion project).

def ensure_in_range: (Integer value) -> untyped

This signature was generated using 1 sample from 1 application.

def ensure_in_range(value)
  unless in_range?(value)
    raise ActiveModel::RangeError, "#{value} is out of range for #{self.class} with limit #{_limit} bytes"
  end
  value
end

def in_range?(value)

Experimental RBS support (using type sampling data from the type_fusion project).

def in_range?: (Integer value) -> true

This signature was generated using 3 samples from 1 application.

def in_range?(value)
  !value || range.member?(value)
end

def initialize(**)

def initialize(**)
  super
  @range = min_value...max_value
end

def max_value

def max_value
  1 << (_limit * 8 - 1) # 8 bits per byte with one bit for sign
end

def min_value

def min_value
  -max_value
end

def serializable?(value)

def serializable?(value)
  cast_value = cast(value)
  in_range?(cast_value) || begin
    yield cast_value if block_given?
    false
  end
end

def serialize(value)

Experimental RBS support (using type sampling data from the type_fusion project).

def serialize: ((String | Integer | nil) value) -> Integer?

This signature was generated using 4 samples from 1 application.

def serialize(value)
  return if value.is_a?(::String) && non_numeric_string?(value)
  ensure_in_range(super)
end

def type

def type
  :integer
end