Class: SQLiteTypes::IpAddress
- Inherits:
-
ActiveRecord::Type::String
- Object
- ActiveRecord::Type::String
- SQLiteTypes::IpAddress
- Defined in:
- lib/sqlite_types/ip_address.rb
Instance Method Summary collapse
- #changed?(old_value, new_value, _new_value_before_type_cast) ⇒ Boolean
- #changed_in_place?(raw_old_value, new_value) ⇒ Boolean
- #serialize(value) ⇒ Object
- #serialize_cast_value(value) ⇒ Object
Instance Method Details
#changed?(old_value, new_value, _new_value_before_type_cast) ⇒ Boolean
23 24 25 |
# File 'lib/sqlite_types/ip_address.rb', line 23 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
27 28 29 30 31 |
# File 'lib/sqlite_types/ip_address.rb', line 27 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 = ::IPAddr.new(value) value.include?("/") ? value : serialize_ipaddr(ipaddr) else raise ArgumentError, "Invalid IP address: #{value}" end end |
#serialize_cast_value(value) ⇒ Object
19 20 21 |
# File 'lib/sqlite_types/ip_address.rb', line 19 def serialize_cast_value(value) serialize(value) end |