Class: SQLiteTypes::IpAddress

Inherits:
ActiveRecord::Type::String
  • Object
show all
Defined in:
lib/sqlite_types/ip_address.rb

Instance Method Summary collapse

Instance Method Details

#changed?(old_value, new_value, _new_value_before_type_cast) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/sqlite_types/ip_address.rb', line 19

def changed?(old_value, new_value, _new_value_before_type_cast)
  !serialize_for_change(old_value).eql?(serialize_for_change(new_value))
end

#changed_in_place?(raw_old_value, new_value) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
26
27
# File 'lib/sqlite_types/ip_address.rb', line 23

def changed_in_place?(raw_old_value, new_value)
  !serialize_for_change(raw_old_value).eql?(serialize_for_change(new_value))
rescue ArgumentError
  true
end

#serialize(value) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/sqlite_types/ip_address.rb', line 5

def serialize(value)
  return if value.nil?

  case value
  when ::IPAddr
    serialize_ipaddr(value)
  when ::String
    ::IPAddr.new(value)
    value
  else
    raise ArgumentError, "Invalid IP address: #{value}"
  end
end