activerecord-sqlite-types 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 67e16d34c7465c93819920e6b15f257bbfed0cb3b4685ca48fdecf003884cceb
4
- data.tar.gz: 144d483a737fbdcac6227429a09be49843609ac2cbb6b62e4ecfe6d28a0c53cd
3
+ metadata.gz: 873091c3ae92306fad28b8bdef1ab2895e614c057a4bc984737946f8a824e195
4
+ data.tar.gz: b3fb232c0eb97337a0d0ad1b15595ed0ca86ccd2a2beaddd6ee01b5a03687980
5
5
  SHA512:
6
- metadata.gz: 1b21b7c5389a14ab97f7ba46663629445568f2609bfae034ba3e614e3151252f350e41a9dadf6dfdaed8406fab310587842204cc6e2531b79dc40433f38a9397
7
- data.tar.gz: b3e3b9e618df000b8ad249fb8d46662d601177943f08d55d8d8e9d25ddc68fefe757fa7d976eea748c795bb07d189198b4443d39c3b18f08783b0df9b1a8d957
6
+ metadata.gz: 1590a06734245552d6f3ef569ba637a50d692e48e344c57dd053489b0aab96cb8d1fa5c6f478513dec2d29bda19d2becd61dbb3d6f4292ed0dc8fd3a39e33cb8
7
+ data.tar.gz: 6f64ddd2a5e0ad9dfd414f97b9e0d249a21d171c92306c8b83e1faf1289f2be4807b7434a59bbe08869b4f1e1deb53ca89cd842528743c96cff075160e3364f4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.2.0] - 2025-10-24
4
+
5
+ ### Fixed
6
+
7
+ - Fix Array namespace conflicts by using fully qualified `::Array` references in type definitions
8
+
3
9
  ## [0.1.0] - 2025-10-21
4
10
 
5
11
  ### Added
@@ -30,6 +30,7 @@ module SQLiteTypes
30
30
  super
31
31
  end
32
32
 
33
+ # Use "=" instead of "IN" in WHERE clause, to match PostgreSQL arrays
33
34
  def force_equality?(value)
34
35
  value.is_a?(::Array)
35
36
  end
@@ -38,22 +39,22 @@ module SQLiteTypes
38
39
 
39
40
  def valid?(value)
40
41
  return true if value.nil?
41
- return false if !value.is_a?(Array)
42
- return value.all? { |nested_array| nested_array.is_a?(Array) } if @nested
42
+ return false if !value.is_a?(::Array)
43
+ return value.all? { |nested_array| nested_array.is_a?(::Array) } if @nested
43
44
 
44
45
  true
45
46
  end
46
47
 
47
48
  def parse_to_array(value)
48
49
  case value
49
- when String
50
+ when ::String
50
51
  begin
51
- parsed = ActiveSupport::JSON.decode(value)
52
- parsed.is_a?(Array) ? parsed : nil
52
+ parsed = ::ActiveSupport::JSON.decode(value)
53
+ parsed.is_a?(::Array) ? parsed : nil
53
54
  rescue JSON::ParserError
54
55
  nil
55
56
  end
56
- when Array
57
+ when ::Array
57
58
  value
58
59
  end
59
60
  end
@@ -67,7 +68,7 @@ module SQLiteTypes
67
68
  when :hash
68
69
  elem.to_h
69
70
  when :datetime
70
- elem.is_a?(String) ? DateTime.parse(elem).in_time_zone : elem
71
+ elem.is_a?(::String) ? ::DateTime.parse(elem).in_time_zone : elem
71
72
  else
72
73
  raise ArgumentError, "Unsupported subtype: #{@subtype}"
73
74
  end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # This is adopted from the PostgreSQL type
4
+ # https://github.com/rails/rails/blob/main/activerecord/lib/active_record/connection_adapters/postgresql/oid/interval.rb
3
5
  module SQLiteTypes
4
6
  class Interval < ActiveRecord::Type::Value
5
7
  def serialize(value)
@@ -7,7 +9,7 @@ module SQLiteTypes
7
9
  when ::ActiveSupport::Duration
8
10
  value.iso8601(precision: precision)
9
11
  when ::Numeric
10
- ActiveSupport::Duration.build(value).iso8601(precision: precision)
12
+ ::ActiveSupport::Duration.build(value).iso8601(precision: precision)
11
13
  else
12
14
  super
13
15
  end
@@ -6,10 +6,10 @@ module SQLiteTypes
6
6
  return if value.nil?
7
7
 
8
8
  case value
9
- when IPAddr
9
+ when ::IPAddr
10
10
  "#{value}/#{value.prefix}"
11
- when String
12
- ip_addr = IPAddr.new(value)
11
+ when ::String
12
+ ip_addr = ::IPAddr.new(value)
13
13
  "#{ip_addr}/#{ip_addr.prefix}"
14
14
  else
15
15
  raise ArgumentError, "Invalid IP address: #{value}"
@@ -20,10 +20,10 @@ module SQLiteTypes
20
20
 
21
21
  def cast_value(value)
22
22
  case value
23
- when IPAddr
23
+ when ::IPAddr
24
24
  value
25
- when String
26
- IPAddr.new(value)
25
+ when ::String
26
+ ::IPAddr.new(value)
27
27
  else
28
28
  raise ArgumentError, "Invalid IP address: #{value}"
29
29
  end
@@ -1,3 +1,3 @@
1
1
  module SQLiteTypes
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-sqlite-types
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wojtek Wrona