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 +4 -4
- data/lib/sequel/plugins/tstzrange_fields.rb +21 -2
- data/lib/sequel_tstzrange_fields/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ec8083564a067989885ce28a4df1ea40f771bc9e9dc0629391d2029c92e0192a
|
|
4
|
+
data.tar.gz: '048514b958e7a5f84cab268c3f3e3da5a380378001a780f763f11ca680a66aa3'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
|
|
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
|
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.
|
|
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:
|
|
11
|
+
date: 2026-05-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: pg
|