activerecord-multirange 0.1.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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