db_schema 0.2.2 → 0.2.3
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/README.md +1 -1
- data/lib/db_schema/awesome_print.rb +1 -1
- data/lib/db_schema/definitions/field.rb +2 -6
- data/lib/db_schema/definitions/field/base.rb +0 -4
- data/lib/db_schema/definitions/field/custom.rb +12 -11
- data/lib/db_schema/reader.rb +10 -3
- data/lib/db_schema/validator.rb +2 -2
- data/lib/db_schema/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d1180d9c60f0843b544812dfea4fb494697cc69
|
4
|
+
data.tar.gz: 4e4581809741785cc52199c7fa5c8ffb03307af3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec90f1a30f2bb6bd662e47344fcc593290ff458bd937e005a1ee16e75e8d6f362115649560d7316f192beaf1dda67926a66105b6fa536edaaefbf00a04734d82
|
7
|
+
data.tar.gz: 09cb9a9558dace6bbb1aaee8343e32430c885c5a14ee87c6f2900db172e0f728ff8c76de0a9c3d7ea2bfa58ec80139c0280cddab47febfe2e441dd8573ec8c7b
|
data/README.md
CHANGED
@@ -137,7 +137,7 @@ if defined?(AwesomePrint)
|
|
137
137
|
''
|
138
138
|
end
|
139
139
|
|
140
|
-
"
|
140
|
+
"#<DbSchema::Definitions::Field::Custom (#{object.type.ai}) #{object.name.ai}#{options}#{primary_key}>"
|
141
141
|
end
|
142
142
|
|
143
143
|
def awesome_dbschema_index(object)
|
@@ -3,16 +3,12 @@ module DbSchema
|
|
3
3
|
module Field
|
4
4
|
class << self
|
5
5
|
def build(name, type, **options)
|
6
|
-
|
7
|
-
type_class_for(type).new(name, **options)
|
8
|
-
else
|
9
|
-
Custom.new(name, type_name: type, **options)
|
10
|
-
end
|
6
|
+
type_class_for(type).new(name, **options)
|
11
7
|
end
|
12
8
|
|
13
9
|
def type_class_for(type)
|
14
10
|
registry.fetch(type) do |type|
|
15
|
-
|
11
|
+
Custom.class_for(type)
|
16
12
|
end
|
17
13
|
end
|
18
14
|
|
@@ -2,19 +2,20 @@ module DbSchema
|
|
2
2
|
module Definitions
|
3
3
|
module Field
|
4
4
|
class Custom < Base
|
5
|
-
|
5
|
+
class << self
|
6
|
+
def class_for(type_name)
|
7
|
+
raise ArgumentError if type_name.nil?
|
6
8
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
def custom_type?
|
13
|
-
true
|
14
|
-
end
|
9
|
+
Class.new(self) do
|
10
|
+
define_method :type do
|
11
|
+
type_name
|
12
|
+
end
|
15
13
|
|
16
|
-
|
17
|
-
|
14
|
+
define_singleton_method :type do
|
15
|
+
type_name
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
18
19
|
end
|
19
20
|
end
|
20
21
|
end
|
data/lib/db_schema/reader.rb
CHANGED
@@ -45,7 +45,8 @@ module DbSchema
|
|
45
45
|
c.numeric_scale AS num_scale,
|
46
46
|
c.datetime_precision AS dt_precision,
|
47
47
|
c.interval_type,
|
48
|
-
e.data_type AS element_type
|
48
|
+
e.data_type AS element_type,
|
49
|
+
e.udt_name AS element_custom_type_name
|
49
50
|
FROM information_schema.columns AS c
|
50
51
|
LEFT JOIN information_schema.element_types AS e
|
51
52
|
ON e.object_catalog = c.table_catalog
|
@@ -294,8 +295,14 @@ SELECT extname
|
|
294
295
|
end
|
295
296
|
end
|
296
297
|
when :array
|
297
|
-
Utils.rename_keys(
|
298
|
-
|
298
|
+
Utils.rename_keys(
|
299
|
+
Utils.filter_by_keys(data, :element_type, :element_custom_type_name)
|
300
|
+
) do |attributes|
|
301
|
+
attributes[:of] = if attributes[:element_type] == 'USER-DEFINED'
|
302
|
+
attributes[:element_custom_type_name]
|
303
|
+
else
|
304
|
+
attributes[:element_type]
|
305
|
+
end.to_sym
|
299
306
|
end
|
300
307
|
else
|
301
308
|
{}
|
data/lib/db_schema/validator.rb
CHANGED
@@ -11,8 +11,8 @@ module DbSchema
|
|
11
11
|
|
12
12
|
table.fields.each do |field|
|
13
13
|
if field.is_a?(Definitions::Field::Custom)
|
14
|
-
unless schema.enums.map(&:name).include?(field.
|
15
|
-
error_message = %(Field "#{table.name}.#{field.name}" has unknown type "#{field.
|
14
|
+
unless schema.enums.map(&:name).include?(field.type)
|
15
|
+
error_message = %(Field "#{table.name}.#{field.name}" has unknown type "#{field.type}")
|
16
16
|
errors << error_message
|
17
17
|
end
|
18
18
|
end
|
data/lib/db_schema/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: db_schema
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vsevolod Romashov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sequel
|