activerecord-pg_enum 0.2.1 → 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 +5 -5
- data/.travis.yml +12 -6
- data/Appraisals +5 -0
- data/CHANGELOG.md +7 -0
- data/README.md +3 -1
- data/activerecord-pg_enum.gemspec +1 -1
- data/gemfiles/5.0.gemfile +8 -0
- data/gemfiles/5.0.gemfile.lock +72 -0
- data/gemfiles/5.1.gemfile.lock +3 -3
- data/gemfiles/5.2.gemfile.lock +3 -3
- data/gemfiles/edge.gemfile.lock +3 -3
- data/lib/active_record/pg_enum.rb +6 -1
- data/lib/active_record/pg_enum/4.2/column_dumper.rb +13 -0
- data/lib/active_record/pg_enum/4.2/schema_dumper.rb +36 -0
- data/lib/active_record/pg_enum/schema_dumper.rb +3 -3
- data/lib/active_record/pg_enum/version.rb +1 -1
- metadata +9 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 375facb22f785682bbc48ddd221c8fd2ccd7c1d5
|
|
4
|
+
data.tar.gz: 61d7656a02c14feb0e6d591dbb3ecd15839a6154
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dcd88c40ee6625cdf4120e06def40dcdbe5573ccebb77f710e62bfa037222d896a64762798a6ba8736bbbf7e89702633771f20671f92cd63c7a603a5c7cc6293
|
|
7
|
+
data.tar.gz: be1393454674cd111816dc113902d4240cbd0ff0a10e5cd4441dbe87fa1daaf98920eaf20ece41e5a494802a2e0c33c6b79e766261320f4920334eb33be2d61e
|
data/.travis.yml
CHANGED
|
@@ -1,22 +1,28 @@
|
|
|
1
1
|
sudo: false
|
|
2
2
|
language: ruby
|
|
3
3
|
rvm:
|
|
4
|
-
- 2.
|
|
5
|
-
- 2.
|
|
6
|
-
- 2.5
|
|
4
|
+
- 2.2.2
|
|
5
|
+
- 2.5.0
|
|
7
6
|
gemfile:
|
|
8
|
-
- gemfiles/5.
|
|
7
|
+
- gemfiles/5.0.gemfile
|
|
9
8
|
- gemfiles/5.1.gemfile
|
|
9
|
+
- gemfiles/5.2.gemfile
|
|
10
10
|
- gemfiles/edge.gemfile
|
|
11
11
|
matrix:
|
|
12
12
|
exclude:
|
|
13
|
-
- rvm: 2.
|
|
13
|
+
- rvm: 2.5.0
|
|
14
|
+
gemfile: gemfiles/5.0.gemfile
|
|
15
|
+
- rvm: 2.5.0
|
|
16
|
+
gemfile: gemfiles/5.1.gemfile
|
|
17
|
+
- rvm: 2.5.0
|
|
14
18
|
gemfile: gemfiles/5.2.gemfile
|
|
19
|
+
- rvm: 2.2.2
|
|
20
|
+
gemfile: gemfiles/edge.gemfile
|
|
15
21
|
allow_failures:
|
|
16
22
|
- gemfile: gemfiles/edge.gemfile
|
|
17
23
|
services:
|
|
18
24
|
- postgresql
|
|
19
|
-
before_install: gem install bundler -v 1.
|
|
25
|
+
before_install: gem install bundler -v 1.17.3
|
|
20
26
|
script: "bundle exec rake spec"
|
|
21
27
|
env:
|
|
22
28
|
global:
|
data/Appraisals
CHANGED
|
@@ -6,6 +6,11 @@ appraise "5.1" do
|
|
|
6
6
|
gem "activerecord", ">= 5.1.0", "< 5.2.0"
|
|
7
7
|
end
|
|
8
8
|
|
|
9
|
+
appraise "5.0" do
|
|
10
|
+
gem "activerecord", ">= 5.0.0", "< 5.1.0"
|
|
11
|
+
gem "i18n", "1.5.1"
|
|
12
|
+
end
|
|
13
|
+
|
|
9
14
|
appraise "edge" do
|
|
10
15
|
gem "rails", git: "https://github.com/rails/rails.git", branch: "master"
|
|
11
16
|
end
|
data/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.3.0] - 2019-03-03
|
|
10
|
+
- Support for 5.0 and 5.1
|
|
11
|
+
- Change travis config to test against oldest supported version of ruby
|
|
12
|
+
|
|
13
|
+
## [0.2.1] - 2019-02-22
|
|
14
|
+
- Fixed a bug in the `SchemaDumper` output
|
|
15
|
+
|
|
9
16
|
## [0.2.0] - 2018-08-18
|
|
10
17
|
### Changed
|
|
11
18
|
- Change API of `create_enum` to take two arguments instead, the name and an array of values
|
data/README.md
CHANGED
|
@@ -6,7 +6,9 @@ This will allow you to use enum columns in your database without replacing `sche
|
|
|
6
6
|
|
|
7
7
|
## Version support
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
I intend to support every version of Rails that supports `enum`, which was introduced in 4.1.
|
|
10
|
+
|
|
11
|
+
Currently Rails 5.0 through 6.0 are supported.
|
|
10
12
|
|
|
11
13
|
## Installation
|
|
12
14
|
|
|
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
|
|
|
25
25
|
spec.require_paths = ["lib"]
|
|
26
26
|
|
|
27
27
|
spec.add_dependency "pg"
|
|
28
|
-
spec.add_dependency "activerecord", ">= 5.
|
|
28
|
+
spec.add_dependency "activerecord", ">= 5.0.0"
|
|
29
29
|
spec.add_dependency "activesupport"
|
|
30
30
|
|
|
31
31
|
spec.add_development_dependency "appraisal"
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: ..
|
|
3
|
+
specs:
|
|
4
|
+
activerecord-pg_enum (0.3.0)
|
|
5
|
+
activerecord (>= 5.0.0)
|
|
6
|
+
activesupport
|
|
7
|
+
pg
|
|
8
|
+
|
|
9
|
+
GEM
|
|
10
|
+
remote: https://rubygems.org/
|
|
11
|
+
specs:
|
|
12
|
+
activemodel (5.0.7.1)
|
|
13
|
+
activesupport (= 5.0.7.1)
|
|
14
|
+
activerecord (5.0.7.1)
|
|
15
|
+
activemodel (= 5.0.7.1)
|
|
16
|
+
activesupport (= 5.0.7.1)
|
|
17
|
+
arel (~> 7.0)
|
|
18
|
+
activesupport (5.0.7.1)
|
|
19
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
20
|
+
i18n (>= 0.7, < 2)
|
|
21
|
+
minitest (~> 5.1)
|
|
22
|
+
tzinfo (~> 1.1)
|
|
23
|
+
appraisal (2.2.0)
|
|
24
|
+
bundler
|
|
25
|
+
rake
|
|
26
|
+
thor (>= 0.14.0)
|
|
27
|
+
arel (7.1.4)
|
|
28
|
+
coderay (1.1.2)
|
|
29
|
+
concurrent-ruby (1.1.4)
|
|
30
|
+
diff-lcs (1.3)
|
|
31
|
+
i18n (1.5.1)
|
|
32
|
+
concurrent-ruby (~> 1.0)
|
|
33
|
+
method_source (0.9.2)
|
|
34
|
+
minitest (5.11.3)
|
|
35
|
+
pg (1.1.4)
|
|
36
|
+
pry (0.12.2)
|
|
37
|
+
coderay (~> 1.1.0)
|
|
38
|
+
method_source (~> 0.9.0)
|
|
39
|
+
rake (10.5.0)
|
|
40
|
+
rspec (3.8.0)
|
|
41
|
+
rspec-core (~> 3.8.0)
|
|
42
|
+
rspec-expectations (~> 3.8.0)
|
|
43
|
+
rspec-mocks (~> 3.8.0)
|
|
44
|
+
rspec-core (3.8.0)
|
|
45
|
+
rspec-support (~> 3.8.0)
|
|
46
|
+
rspec-expectations (3.8.2)
|
|
47
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
48
|
+
rspec-support (~> 3.8.0)
|
|
49
|
+
rspec-mocks (3.8.0)
|
|
50
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
51
|
+
rspec-support (~> 3.8.0)
|
|
52
|
+
rspec-support (3.8.0)
|
|
53
|
+
thor (0.20.3)
|
|
54
|
+
thread_safe (0.3.6)
|
|
55
|
+
tzinfo (1.2.5)
|
|
56
|
+
thread_safe (~> 0.1)
|
|
57
|
+
|
|
58
|
+
PLATFORMS
|
|
59
|
+
ruby
|
|
60
|
+
|
|
61
|
+
DEPENDENCIES
|
|
62
|
+
activerecord (>= 5.0.0, < 5.1.0)
|
|
63
|
+
activerecord-pg_enum!
|
|
64
|
+
appraisal
|
|
65
|
+
bundler (~> 1.15)
|
|
66
|
+
i18n (= 1.5.1)
|
|
67
|
+
pry
|
|
68
|
+
rake (~> 10.0)
|
|
69
|
+
rspec (~> 3.0)
|
|
70
|
+
|
|
71
|
+
BUNDLED WITH
|
|
72
|
+
1.17.3
|
data/gemfiles/5.1.gemfile.lock
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: ..
|
|
3
3
|
specs:
|
|
4
|
-
activerecord-pg_enum (0.
|
|
5
|
-
activerecord (>= 5.
|
|
4
|
+
activerecord-pg_enum (0.3.0)
|
|
5
|
+
activerecord (>= 5.0.0)
|
|
6
6
|
activesupport
|
|
7
7
|
pg
|
|
8
8
|
|
|
@@ -32,7 +32,7 @@ GEM
|
|
|
32
32
|
concurrent-ruby (~> 1.0)
|
|
33
33
|
method_source (0.9.0)
|
|
34
34
|
minitest (5.11.3)
|
|
35
|
-
pg (1.
|
|
35
|
+
pg (1.1.4)
|
|
36
36
|
pry (0.11.3)
|
|
37
37
|
coderay (~> 1.1.0)
|
|
38
38
|
method_source (~> 0.9.0)
|
data/gemfiles/5.2.gemfile.lock
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: ..
|
|
3
3
|
specs:
|
|
4
|
-
activerecord-pg_enum (0.
|
|
5
|
-
activerecord (>= 5.
|
|
4
|
+
activerecord-pg_enum (0.3.0)
|
|
5
|
+
activerecord (>= 5.0.0)
|
|
6
6
|
activesupport
|
|
7
7
|
pg
|
|
8
8
|
|
|
@@ -32,7 +32,7 @@ GEM
|
|
|
32
32
|
concurrent-ruby (~> 1.0)
|
|
33
33
|
method_source (0.9.0)
|
|
34
34
|
minitest (5.11.3)
|
|
35
|
-
pg (1.
|
|
35
|
+
pg (1.1.4)
|
|
36
36
|
pry (0.11.3)
|
|
37
37
|
coderay (~> 1.1.0)
|
|
38
38
|
method_source (~> 0.9.0)
|
data/gemfiles/edge.gemfile.lock
CHANGED
|
@@ -66,8 +66,8 @@ GIT
|
|
|
66
66
|
PATH
|
|
67
67
|
remote: ..
|
|
68
68
|
specs:
|
|
69
|
-
activerecord-pg_enum (0.
|
|
70
|
-
activerecord (>= 5.
|
|
69
|
+
activerecord-pg_enum (0.3.0)
|
|
70
|
+
activerecord (>= 5.0.0)
|
|
71
71
|
activesupport
|
|
72
72
|
pg
|
|
73
73
|
|
|
@@ -103,7 +103,7 @@ GEM
|
|
|
103
103
|
nio4r (2.3.1)
|
|
104
104
|
nokogiri (1.8.4)
|
|
105
105
|
mini_portile2 (~> 2.3.0)
|
|
106
|
-
pg (1.
|
|
106
|
+
pg (1.1.4)
|
|
107
107
|
pry (0.11.3)
|
|
108
108
|
coderay (~> 1.1.0)
|
|
109
109
|
method_source (~> 0.9.0)
|
|
@@ -7,7 +7,6 @@ require "active_support/lazy_load_hooks"
|
|
|
7
7
|
ActiveSupport.on_load(:active_record) do
|
|
8
8
|
require "active_record/pg_enum/command_recorder"
|
|
9
9
|
require "active_record/pg_enum/postgresql_adapter"
|
|
10
|
-
require "active_record/pg_enum/schema_dumper"
|
|
11
10
|
require "active_record/pg_enum/schema_statements"
|
|
12
11
|
require "active_record/pg_enum/helper"
|
|
13
12
|
|
|
@@ -16,7 +15,13 @@ ActiveSupport.on_load(:active_record) do
|
|
|
16
15
|
ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::NATIVE_DATABASE_TYPES.merge!(enum: { name: "enum" })
|
|
17
16
|
|
|
18
17
|
if ar_version >= Gem::Version.new("5.2.0")
|
|
18
|
+
require "active_record/pg_enum/schema_dumper"
|
|
19
19
|
ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaDumper.prepend ActiveRecord::PGEnum::SchemaDumper
|
|
20
|
+
else
|
|
21
|
+
require "active_record/pg_enum/4.2/column_dumper"
|
|
22
|
+
require "active_record/pg_enum/4.2/schema_dumper"
|
|
23
|
+
ActiveRecord::ConnectionAdapters::PostgreSQL::ColumnDumper.prepend ActiveRecord::PGEnum::ColumnDumper
|
|
24
|
+
ActiveRecord::SchemaDumper.prepend ActiveRecord::PGEnum::SchemaDumper
|
|
20
25
|
end
|
|
21
26
|
|
|
22
27
|
ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.include ActiveRecord::PGEnum::PostgreSQLAdapter
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module ActiveRecord
|
|
2
|
+
module PGEnum
|
|
3
|
+
module SchemaDumper
|
|
4
|
+
private
|
|
5
|
+
|
|
6
|
+
def extensions(stream)
|
|
7
|
+
super
|
|
8
|
+
enums(stream)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def enums(stream)
|
|
12
|
+
return unless (enum_types = @connection.enum_types).any?
|
|
13
|
+
|
|
14
|
+
stream.puts " # These are custom enum types that must be created before they can be used in the schema definition"
|
|
15
|
+
|
|
16
|
+
enum_types.each do |name, definition|
|
|
17
|
+
stream.puts %Q{ create_enum "#{name}", %w[#{definition.join(" ")}]}
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
stream.puts
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Takes a column specification in Object form and serializes it into a String.
|
|
24
|
+
def format_colspec(colspec)
|
|
25
|
+
case colspec
|
|
26
|
+
when String
|
|
27
|
+
colspec
|
|
28
|
+
when Array
|
|
29
|
+
colspec.map { |value| format_colspec(value) }.select(&:present?).join(", ")
|
|
30
|
+
else
|
|
31
|
+
super
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -23,10 +23,10 @@ module ActiveRecord
|
|
|
23
23
|
# Gathers the arguments needed for the column line inside the create_table block.
|
|
24
24
|
def column_spec(column)
|
|
25
25
|
if column.type == :enum
|
|
26
|
-
["column", [column.sql_type.inspect, prepare_column_options(column)]]
|
|
27
|
-
else
|
|
28
|
-
super
|
|
26
|
+
return ["column", [column.sql_type.inspect, prepare_column_options(column)]]
|
|
29
27
|
end
|
|
28
|
+
|
|
29
|
+
super
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
# Takes a column specification in Object form and serializes it into a String.
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: activerecord-pg_enum
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Adam Lassek
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2019-
|
|
11
|
+
date: 2019-03-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: pg
|
|
@@ -30,14 +30,14 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 5.
|
|
33
|
+
version: 5.0.0
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - ">="
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 5.
|
|
40
|
+
version: 5.0.0
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: activesupport
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -143,6 +143,8 @@ files:
|
|
|
143
143
|
- bin/console
|
|
144
144
|
- bin/setup
|
|
145
145
|
- gemfiles/.bundle/config
|
|
146
|
+
- gemfiles/5.0.gemfile
|
|
147
|
+
- gemfiles/5.0.gemfile.lock
|
|
146
148
|
- gemfiles/5.1.gemfile
|
|
147
149
|
- gemfiles/5.1.gemfile.lock
|
|
148
150
|
- gemfiles/5.2.gemfile
|
|
@@ -150,6 +152,8 @@ files:
|
|
|
150
152
|
- gemfiles/edge.gemfile
|
|
151
153
|
- gemfiles/edge.gemfile.lock
|
|
152
154
|
- lib/active_record/pg_enum.rb
|
|
155
|
+
- lib/active_record/pg_enum/4.2/column_dumper.rb
|
|
156
|
+
- lib/active_record/pg_enum/4.2/schema_dumper.rb
|
|
153
157
|
- lib/active_record/pg_enum/command_recorder.rb
|
|
154
158
|
- lib/active_record/pg_enum/helper.rb
|
|
155
159
|
- lib/active_record/pg_enum/postgresql_adapter.rb
|
|
@@ -177,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
177
181
|
version: '0'
|
|
178
182
|
requirements: []
|
|
179
183
|
rubyforge_project:
|
|
180
|
-
rubygems_version: 2.
|
|
184
|
+
rubygems_version: 2.4.5
|
|
181
185
|
signing_key:
|
|
182
186
|
specification_version: 4
|
|
183
187
|
summary: Integrate PostgreSQL's enumerated types with the Rails enum feature
|