annotato 0.1.3 → 0.1.5
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/Gemfile +1 -0
- data/Gemfile.lock +7 -1
- data/lib/annotato/column_formatter.rb +21 -9
- data/lib/annotato/version.rb +1 -1
- metadata +1 -2
- data/VERSION +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e80ca78ee10d8d0ade55aea343a5cf37c9831190611eca4adbc913e82183dbb0
|
4
|
+
data.tar.gz: ede81923b6cb487f342b2b23db71aa9fdf56cdd82daf0c7af3b6e0a29de185f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a7b2c8a7008c0703d0eae63d2c586d56b32adac93e2bbe912df16b496f26e5d590013c6a842a00bdd792801879efcb3846082fcb8089313c366c0365090f15c
|
7
|
+
data.tar.gz: 83da6bec671419c9f8ead2fadf173e59caaf7593d63d5d53eab3cbc125dc48ada3554e08836a7061d639ae79a73cd38415443291c232eee92f73c000f1de8c8d
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
annotato (0.1.
|
4
|
+
annotato (0.1.5)
|
5
5
|
rails (>= 6.0)
|
6
6
|
|
7
7
|
GEM
|
@@ -82,6 +82,7 @@ GEM
|
|
82
82
|
benchmark (0.4.0)
|
83
83
|
bigdecimal (3.1.9)
|
84
84
|
builder (3.3.0)
|
85
|
+
coderay (1.1.3)
|
85
86
|
concurrent-ruby (1.3.5)
|
86
87
|
connection_pool (2.5.3)
|
87
88
|
crass (1.0.6)
|
@@ -109,6 +110,7 @@ GEM
|
|
109
110
|
net-pop
|
110
111
|
net-smtp
|
111
112
|
marcel (1.0.4)
|
113
|
+
method_source (1.1.0)
|
112
114
|
mini_mime (1.1.5)
|
113
115
|
minitest (5.25.5)
|
114
116
|
net-imap (0.5.8)
|
@@ -128,6 +130,9 @@ GEM
|
|
128
130
|
pp (0.6.2)
|
129
131
|
prettyprint
|
130
132
|
prettyprint (0.2.0)
|
133
|
+
pry (0.15.2)
|
134
|
+
coderay (~> 1.1)
|
135
|
+
method_source (~> 1.0)
|
131
136
|
psych (5.2.5)
|
132
137
|
date
|
133
138
|
stringio
|
@@ -214,6 +219,7 @@ PLATFORMS
|
|
214
219
|
DEPENDENCIES
|
215
220
|
annotato!
|
216
221
|
irb
|
222
|
+
pry
|
217
223
|
rake (~> 13.0)
|
218
224
|
rspec (~> 3.0)
|
219
225
|
simplecov
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "json"
|
4
|
+
|
3
5
|
module Annotato
|
4
6
|
class ColumnFormatter
|
5
7
|
def self.format(model, connection)
|
@@ -13,10 +15,8 @@ module Annotato
|
|
13
15
|
type = col.sql_type
|
14
16
|
options = []
|
15
17
|
|
16
|
-
|
17
|
-
|
18
|
-
end
|
19
|
-
|
18
|
+
default = format_default(col.default)
|
19
|
+
options << default if default
|
20
20
|
options << "not null" unless col.null
|
21
21
|
options << "primary key" if name == primary_key
|
22
22
|
options << "is an Array" if type.end_with?("[]")
|
@@ -36,18 +36,30 @@ module Annotato
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
-
def self.json_like?(value)
|
40
|
-
value.is_a?(String) && value.strip.start_with?('{', '[') && value.strip.end_with?('}', ']')
|
41
|
-
end
|
42
|
-
|
43
39
|
def self.format_default(value)
|
44
40
|
return nil if value.nil?
|
45
41
|
|
46
42
|
if json_like?(value)
|
47
|
-
|
43
|
+
stripped = value.strip
|
44
|
+
begin
|
45
|
+
parsed = JSON.parse(stripped)
|
46
|
+
if parsed.is_a?(Array) && parsed.all? { |e| e.is_a?(String) }
|
47
|
+
lines = parsed.map { |e| %Q( "#{e}",) }
|
48
|
+
lines[-1] = lines[-1].chomp(',') if lines.last # <-- тут зміна
|
49
|
+
["default([", *lines, "])"].join("\n# ")
|
50
|
+
else
|
51
|
+
"default(#{stripped.gsub(/\s+/, ' ')})"
|
52
|
+
end
|
53
|
+
rescue JSON::ParserError
|
54
|
+
"default(#{stripped.gsub(/\s+/, ' ')})"
|
55
|
+
end
|
48
56
|
else
|
49
57
|
"default(#{value.inspect})"
|
50
58
|
end
|
51
59
|
end
|
60
|
+
|
61
|
+
def self.json_like?(value)
|
62
|
+
value.is_a?(String) && value.strip.match?(/\A[\[{].*[\]}]\z/m)
|
63
|
+
end
|
52
64
|
end
|
53
65
|
end
|
data/lib/annotato/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: annotato
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Serhii Bodnaruk
|
@@ -40,7 +40,6 @@ files:
|
|
40
40
|
- LICENSE.txt
|
41
41
|
- README.md
|
42
42
|
- Rakefile
|
43
|
-
- VERSION
|
44
43
|
- annotato.gemspec
|
45
44
|
- bin/console
|
46
45
|
- bin/setup
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.1.3
|