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