table_inspector 0.4.1 → 0.4.2

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: dafb1f2e93a8ac7beb1729635132812c7460b4a4bac712c08f011783357bd6ca
4
- data.tar.gz: 4656a91cbb769c9465480bdc1798f3b38bec3b074098eb15cd6549f6ac6e9ea8
3
+ metadata.gz: 66bb18ecff6dea2031545bdff1230cde6380155cb32426d2da0d4fc468aa8f02
4
+ data.tar.gz: 33b460f855700d11ceb65894004cd47730ebaba01df84f839d644483c41b26aa
5
5
  SHA512:
6
- metadata.gz: 853d58ade3b5b95304c8633cd8e926cc9b1d7d060a0c0d0d6828561d668fae23baf9bca2583619ad07045cf83ad29de3bf98788eb9af2442c8235f4368d1c133
7
- data.tar.gz: 2db47bebcf0715737ebf1e87d3578294be46332ec5023f94bbe3f879bd5fa705506eff47b8c6f30fa5d5254b06f16e30877215cd77c5db7d4e550f01dc1159d0
6
+ metadata.gz: af82ef5518522d418045544193a5937d23e98ad6c59d402c548b8736c0111a6fcc24db88e0054b27d6d9d510a9ba04d08aa07294b1c0564f996ccf745e183dd5
7
+ data.tar.gz: 30e2d9dc5f4a8d112cbce43840f89b51ccd2fa4aa1645ace7abdde07ef64890a3fde45ca213ebfa30f8e2a5bd9f2ea37faad81412e49dc2c4ff4fd04fdfe7113
@@ -0,0 +1,28 @@
1
+
2
+ module TableInspector
3
+ class ColumnValidator
4
+ attr_accessor :klass, :column_name
5
+
6
+ def initialize(klass, column_name)
7
+ @klass = klass
8
+ @column_name = column_name
9
+ end
10
+
11
+ def validate!
12
+ return true if column_exists?
13
+
14
+ puts column_is_not_exists_hint
15
+ false
16
+ end
17
+
18
+ private
19
+
20
+ def column_exists?
21
+ klass.columns.find{|column| column.name == column_name.to_s }
22
+ end
23
+
24
+ def column_is_not_exists_hint
25
+ puts "Column '#{column_name}' doesn't exists in table '#{klass.table_name}'!"
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,27 @@
1
+
2
+ module TableInspector
3
+ class ModelValidator
4
+ attr_accessor :klass
5
+
6
+ def initialize(klass)
7
+ @klass = klass
8
+ end
9
+
10
+ def validate!
11
+ return true if is_model_class?
12
+
13
+ puts not_a_model_class_hint
14
+ false
15
+ end
16
+
17
+ private
18
+
19
+ def is_model_class?
20
+ klass < ActiveRecord::Base
21
+ end
22
+
23
+ def not_a_model_class_hint
24
+ "#{klass} is not a model class!"
25
+ end
26
+ end
27
+ end
@@ -1,3 +1,3 @@
1
1
  module TableInspector
2
- VERSION = "0.4.1"
2
+ VERSION = "0.4.2"
3
3
  end
@@ -7,25 +7,26 @@ require "table_inspector/indexes"
7
7
  require "table_inspector/text"
8
8
  require "table_inspector/column"
9
9
  require "table_inspector/presenter"
10
- require "table_inspector/validator"
10
+ require "table_inspector/model_validator"
11
+ require "table_inspector/column_validator"
11
12
 
12
13
  module TableInspector
13
14
  extend self
14
15
 
15
16
  def ascan(klass, column_name = nil, sql_type: false)
16
17
  klass = init_klass!(klass)
17
- return unless klass
18
18
 
19
- return unless Validator.new(klass, column_name)
19
+ return unless klass
20
+ return unless validate!(klass, column_name)
20
21
 
21
22
  render(klass, column_name, sql_type, colorize: true)
22
23
  end
23
24
 
24
25
  def scan(klass, column_name = nil, sql_type: false)
25
26
  klass = init_klass!(klass)
26
- return unless klass
27
27
 
28
- return unless Validator.new(klass, column_name)
28
+ return unless klass
29
+ return unless validate!(klass, column_name)
29
30
 
30
31
  render(klass, column_name, sql_type)
31
32
  end
@@ -45,6 +46,16 @@ module TableInspector
45
46
  klass
46
47
  end
47
48
 
49
+ def validate!(klass, column_name)
50
+ model_validator = ModelValidator.new(klass)
51
+ unless column_name
52
+ return model_validator.validate!
53
+ end
54
+
55
+ column_validator = ColumnValidator.new(klass, column_name)
56
+ model_validator.validate! && column_validator.validate!
57
+ end
58
+
48
59
  def render(klass, column_name, sql_type, colorize: false)
49
60
  if column_name
50
61
  Column.new(klass, column_name, sql_type: sql_type, colorize: colorize).render
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: table_inspector
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - ian
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-02 00:00:00.000000000 Z
11
+ date: 2023-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -38,6 +38,34 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.12.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 3.12.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 3.12.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 6.0.1
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 6.0.1
41
69
  description: Inspect table structure of ActiveRecord class
42
70
  email:
43
71
  - ianlynxk@gmail.com
@@ -50,13 +78,14 @@ files:
50
78
  - Rakefile
51
79
  - lib/table_inspector.rb
52
80
  - lib/table_inspector/column.rb
81
+ - lib/table_inspector/column_validator.rb
53
82
  - lib/table_inspector/grid.rb
54
83
  - lib/table_inspector/indexes.rb
84
+ - lib/table_inspector/model_validator.rb
55
85
  - lib/table_inspector/presenter.rb
56
86
  - lib/table_inspector/railtie.rb
57
87
  - lib/table_inspector/table.rb
58
88
  - lib/table_inspector/text.rb
59
- - lib/table_inspector/validator.rb
60
89
  - lib/table_inspector/version.rb
61
90
  - lib/tasks/table_inspector_tasks.rake
62
91
  homepage: https://github.com/table_inspector
@@ -1,37 +0,0 @@
1
-
2
- module TableInspector
3
- class Validator
4
- def initialize(klass, column_name)
5
- @klass = klass
6
- @column = column_name
7
- end
8
-
9
- def validate!
10
-
11
- if column_name && !validate_column(klass, column_name)
12
- puts column_is_not_exists_hint(klass, column_name)
13
- return
14
- end
15
-
16
- true
17
- end
18
-
19
- private
20
-
21
- def is_active_record_class?(klass)
22
- klass < ActiveRecord::Base
23
- end
24
-
25
- def validate_column(klass, column_name)
26
- klass.columns.find{|column| column.name == column_name.to_s }
27
- end
28
-
29
- def not_a_model_class_hint(klass)
30
- "#{klass} is not a model klass"
31
- end
32
-
33
- def column_is_not_exists_hint(klass, column_name)
34
- puts "Column '#{column_name}' doesn't exists in table '#{klass.table_name}'"
35
- end
36
- end
37
- end