table_inspector 0.4.0 → 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: 64cb2752d497fae638297315267d3b4f5621b7a197fc321c440b60c73a353a14
4
- data.tar.gz: 92ca3311efa5e77768aad96784d6d11c14dd7196ee0877529b4aaa2213d90a0f
3
+ metadata.gz: 66bb18ecff6dea2031545bdff1230cde6380155cb32426d2da0d4fc468aa8f02
4
+ data.tar.gz: 33b460f855700d11ceb65894004cd47730ebaba01df84f839d644483c41b26aa
5
5
  SHA512:
6
- metadata.gz: 2cbf4d4ea540bb0883528f4ee3ab95ba428fc5e649e387461b7c0037165a64a461d9f9db3c1d9c75ee6fa66ae1d64bc3bd77d964e03f75e431d4ad14f5d117cc
7
- data.tar.gz: 5b4b05a46dea671f457740f72f6e64f08123e006cdbb7bb8f0952990ca9369472aa0454c549a02807b61d54cd54e88b826301235efad9fd43bfb7ed04732381a
6
+ metadata.gz: af82ef5518522d418045544193a5937d23e98ad6c59d402c548b8736c0111a6fcc24db88e0054b27d6d9d510a9ba04d08aa07294b1c0564f996ccf745e183dd5
7
+ data.tar.gz: 30e2d9dc5f4a8d112cbce43840f89b51ccd2fa4aa1645ace7abdde07ef64890a3fde45ca213ebfa30f8e2a5bd9f2ea37faad81412e49dc2c4ff4fd04fdfe7113
data/README.md CHANGED
@@ -22,7 +22,7 @@ TableInspector.ascan User
22
22
  ```
23
23
  ![TableInspect ascan table](/img/table_inspector_ascan_table_1.png)
24
24
 
25
- And to print specific column by:
25
+ And to print a specific column by:
26
26
 
27
27
  ```ruby
28
28
  TableInspector.scan User, :name
@@ -7,7 +7,7 @@ module TableInspector
7
7
  @column = klass.columns.find {|column| column.name == column_name.to_s}
8
8
  @klass = klass
9
9
  @sql_type = sql_type
10
- @presenter = Presenter.new(klass, sql_type: sql_type, colorize: false)
10
+ @presenter = Presenter.new(klass, sql_type: sql_type, colorize: colorize)
11
11
  end
12
12
 
13
13
  def render
@@ -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.0"
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.0
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