sequel-tstzrange-fields 0.2.2 → 0.3.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: c0e3c87a9049d68c12c1c93ed05fce51b7b21ee9f372380caf1ac730efa8ecdd
4
- data.tar.gz: e4803036826e07f0e439a7c1cfd2bcda5489ddaf632b43bdc5aa6a17729494eb
3
+ metadata.gz: ec8083564a067989885ce28a4df1ea40f771bc9e9dc0629391d2029c92e0192a
4
+ data.tar.gz: '048514b958e7a5f84cab268c3f3e3da5a380378001a780f763f11ca680a66aa3'
5
5
  SHA512:
6
- metadata.gz: 22a76641685df7ec7c305ad0c636f990c3f2d05aa7826d7aeb55197d18e84baa5bb1b724addf51275bd71e5189bf042ecaa4368f39914add720aa55876ab1f6f
7
- data.tar.gz: 0fb70a25c7f91af94a14db48626e61a025a451fbe2d0b94a0e8c205905aac1bc15d1f57bb8d9250a75e90faf7d4a569aac49ed4f533d0dc7ec4523c3a62713fb
6
+ metadata.gz: ccff8dea73d55454198dd75875c82c7a05c201404bd757d2d2d5b1559619635806a2ca31bbb1f442223f3ed1ce59f2c8f4e7265625e934ee8ae0d9468de38b39
7
+ data.tar.gz: 7a44746f3b61f8338f3e3dd3335efeef8bf6ac00a19bb742359ffb87a63b5f57b16c152f3f1d90630396982610d8bcc1808e33a4d56122d681502ccf837cdb67
@@ -35,6 +35,10 @@ module Sequel
35
35
  module TstzrangeFields
36
36
  VERSION = SequelTstzrangeFields::VERSION
37
37
 
38
+ def self.apply(_model, _opts={})
39
+ Sequel.extension :pg_range_ops
40
+ end
41
+
38
42
  def self.configure(model, *args)
39
43
  unless model.db.schema_type_class(:tstzrange)
40
44
  msg = "tstzrange_fields plugin requires pg_range db extension to be installed. " \
@@ -45,8 +49,8 @@ module Sequel
45
49
  args = args.flatten
46
50
 
47
51
  setup_model(model)
48
-
49
- args.flatten.each do |column|
52
+ model.tstzrange_columns = args.flatten
53
+ model.tstzrange_columns.each do |column|
50
54
  create_accessors(model, column)
51
55
  end
52
56
  end
@@ -116,6 +120,21 @@ module Sequel
116
120
  send(set_column_method, new_range)
117
121
  end
118
122
  end
123
+
124
+ module ClassMethods
125
+ # The Array of fields which are tstzrange columns.
126
+ attr_accessor :tstzrange_columns
127
+ end
128
+
129
+ module DatasetMethods
130
+ # Limit the dataset to the rows where the tstzrange column contains the given value.
131
+ # val is cast into a timestamptz.
132
+ # column is the default/first tstzrange column if not given.
133
+ def tztsrange_contains(val, column: nil)
134
+ column ||= self.model.tstzrange_columns.first
135
+ self.where(Sequel.pg_range(column).contains(Sequel.cast(val, :timestamptz)))
136
+ end
137
+ end
119
138
  end
120
139
  end
121
140
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SequelTstzrangeFields
4
- VERSION = "0.2.2"
4
+ VERSION = "0.3.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel-tstzrange-fields
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lithic Tech
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-08-31 00:00:00.000000000 Z
11
+ date: 2026-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg