activerecord-multirange 0.1.0 → 1.0.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: e8d7ad768c556f1c8d5ce716eb67367c6b6ace7de0ad656b9f7adf217e5ffa6c
4
- data.tar.gz: fa4427fb5cded6f543bb918bc8f672245c71c0e7ab006cfd929c3a5765f6582d
3
+ metadata.gz: 1774e8210820d1f732ce43c7032035cfe5498e415b45837b2ddb31688ca31b3a
4
+ data.tar.gz: 13990bece50e4ec7f3ddf537b1cfbeeca4663ac50c02aaee99a95dd3d91157e8
5
5
  SHA512:
6
- metadata.gz: a8bda0778850f79cbaf2dfba6afd671f1f2b28379b735e4374c45008206afd6e30389da13ed570d53410c1a6322bf26d0f93ea1fc826274bdd813a029120d2a2
7
- data.tar.gz: fa87bef90a08f6c88ceba3fa08d945ace2e3b5734bc498b955030bcc99136161e9b7cfedfab7d17ccf86dddb0cf408a4ed90b1c23f6be84c9a8e1ecb981dba1e
6
+ metadata.gz: 1e898a098a890acefee7b29bb59ffa545ea1f3356fb6de5ff18f6bfde0f817562c7142bd7210388125a672ca875a3ce3055cf1c71b3d0bca4acf2e915893e1bb
7
+ data.tar.gz: d064d47c5e57c505a0cf8f61adf09a3fbfc7f468d4c1a982bb24e7d067bae0a74cf50e4a31abf7df7e3809cd1ff8b0351fbfa374722585a1089159eb2a829f7c
data/.rubocop.yml CHANGED
@@ -9,5 +9,14 @@ Style/StringLiteralsInInterpolation:
9
9
  Enabled: true
10
10
  EnforcedStyle: double_quotes
11
11
 
12
+ Style/Documentation:
13
+ Enabled: false
14
+
15
+ Naming/FileName:
16
+ Enabled: false
17
+
18
+ Metrics/BlockLength:
19
+ Enabled: false
20
+
12
21
  Layout/LineLength:
13
22
  Max: 120
data/Gemfile CHANGED
@@ -6,9 +6,3 @@ source "https://rubygems.org"
6
6
  gemspec
7
7
 
8
8
  gem "rake", "~> 13.0"
9
-
10
- gem "rspec", "~> 3.0"
11
-
12
- gem "rubocop", "~> 1.21"
13
-
14
- gem "pry"
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- activerecord-multirange (0.1.0)
4
+ activerecord-multirange (1.0.0)
5
5
  pg (>= 1)
6
6
  rails (>= 6)
7
7
 
@@ -76,8 +76,16 @@ GEM
76
76
  ast (2.4.2)
77
77
  builder (3.2.4)
78
78
  coderay (1.1.3)
79
+ combustion (1.3.7)
80
+ activesupport (>= 3.0.0)
81
+ railties (>= 3.0.0)
82
+ thor (>= 0.14.6)
79
83
  concurrent-ruby (1.2.2)
80
84
  crass (1.0.6)
85
+ database_cleaner-active_record (2.1.0)
86
+ activerecord (>= 5.a)
87
+ database_cleaner-core (~> 2.0.0)
88
+ database_cleaner-core (2.0.1)
81
89
  date (3.3.3)
82
90
  diff-lcs (1.5.0)
83
91
  erubi (1.12.0)
@@ -110,6 +118,8 @@ GEM
110
118
  nio4r (2.5.9)
111
119
  nokogiri (1.15.4-x86_64-darwin)
112
120
  racc (~> 1.4)
121
+ nokogiri (1.15.4-x86_64-linux)
122
+ racc (~> 1.4)
113
123
  parallel (1.23.0)
114
124
  parser (3.2.2.1)
115
125
  ast (~> 2.4.1)
@@ -191,13 +201,16 @@ GEM
191
201
 
192
202
  PLATFORMS
193
203
  x86_64-darwin-22
204
+ x86_64-linux
194
205
 
195
206
  DEPENDENCIES
196
207
  activerecord-multirange!
208
+ combustion (~> 1.3)
209
+ database_cleaner-active_record
197
210
  pry
198
211
  rake (~> 13.0)
199
212
  rspec (~> 3.0)
200
- rubocop (~> 1.21)
213
+ rubocop
201
214
 
202
215
  BUNDLED WITH
203
216
  2.4.13
data/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  This gem adds full suppport of [Postgress Multiranges](https://www.postgresql.org/docs/14/rangetypes.html#RANGETYPES-BUILTIN) types.
4
4
 
5
+ [![Gem Version](https://badge.fury.io/rb/activerecord-multirange.svg)](https://badge.fury.io/rb/activerecord-multirange)
6
+
5
7
  ## Installation
6
8
 
7
9
  Install the gem and add to the application's Gemfile by executing:
data/config.ru ADDED
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rubygems"
4
+ require "bundler"
5
+
6
+ Bundler.require :default, :development
7
+
8
+ Combustion.initialize! :all
9
+ run Combustion::Application
@@ -8,6 +8,17 @@ module Activerecord
8
8
  load_multirange_types
9
9
  end
10
10
 
11
+ def native_database_types
12
+ super.merge({
13
+ datemultirange: { name: "datemultirange" },
14
+ nummultirange: { name: "nummultirange" },
15
+ tsmultirange: { name: "tsmultirange" },
16
+ tstzmultirange: { name: "tstzmultirange" },
17
+ int4multirange: { name: "int4multirange" },
18
+ int8multirange: { name: "int8multirange" }
19
+ })
20
+ end
21
+
11
22
  def load_multirange_types
12
23
  initializer = ::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::OID::TypeMapInitializer.new(type_map)
13
24
  query = <<-QUERY
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "active_model"
4
+
3
5
  module Activerecord
4
6
  module Multirange
5
7
  module OID # :nodoc:
@@ -11,6 +13,8 @@ module Activerecord
11
13
  def initialize(subtype, type = :multirange)
12
14
  @subtype = subtype
13
15
  @type = type
16
+
17
+ super()
14
18
  end
15
19
 
16
20
  def deserialize(value)
@@ -113,7 +117,8 @@ module Activerecord
113
117
 
114
118
  if !infinity?(extracted[:from]) && extracted[:exclude_start]
115
119
  raise ArgumentError,
116
- "The Ruby Range object does not support excluding the beginning of a Range. (unsupported value: '#{value}')"
120
+ "The Ruby Range object does not support excluding the beginning of a Range.
121
+ (unsupported value: '#{value}')"
117
122
  end
118
123
 
119
124
  ::Range.new(extracted[:from], extracted[:to], extracted[:exclude_end])
@@ -2,17 +2,17 @@
2
2
 
3
3
  module Activerecord
4
4
  module Multirange
5
- module SchemaStatements
6
- def native_database_types
7
- super.merge({
8
- tsmultirange: { name: "tsmultirange" },
9
- datemultirange: { name: "datemultirange" },
10
- tstzmultirange: { name: "tstzmultirange" },
11
- nummultirange: { name: "nummultirange" },
12
- int8multirange: { name: "int8multirange" },
13
- int4multirange: { name: "int4multirange" }
14
- })
15
- end
5
+ module SchemaStatements
6
+ def native_database_types
7
+ super.merge({
8
+ tsmultirange: { name: "tsmultirange" },
9
+ datemultirange: { name: "datemultirange" },
10
+ tstzmultirange: { name: "tstzmultirange" },
11
+ nummultirange: { name: "nummultirange" },
12
+ int8multirange: { name: "int8multirange" },
13
+ int4multirange: { name: "int4multirange" }
14
+ })
16
15
  end
17
16
  end
17
+ end
18
18
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Activerecord
4
4
  module Multirange
5
- VERSION = "0.1.0"
5
+ VERSION = "1.0.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-multirange
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gustavo Warmling Teixeira
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-08-14 00:00:00.000000000 Z
11
+ date: 2023-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg
@@ -38,6 +38,76 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '6'
41
+ - !ruby/object:Gem::Dependency
42
+ name: combustion
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: database_cleaner-active_record
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
41
111
  description: Add PostgreSQL multiranges support
42
112
  email:
43
113
  - gustavowt@gmail.com
@@ -53,6 +123,7 @@ files:
53
123
  - LICENSE.txt
54
124
  - README.md
55
125
  - Rakefile
126
+ - config.ru
56
127
  - lib/activerecord-multirange.rb
57
128
  - lib/activerecord-multirange/adapter.rb
58
129
  - lib/activerecord-multirange/oid/multi_range.rb