Class: RailsProof::ModelInspector

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_proof/model_inspector.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(model_class) ⇒ ModelInspector

Returns a new instance of ModelInspector.



5
6
7
# File 'lib/rails_proof/model_inspector.rb', line 5

def initialize(model_class)
  @model_class = model_class
end

Instance Attribute Details

#model_classObject (readonly)

Returns the value of attribute model_class.



3
4
5
# File 'lib/rails_proof/model_inspector.rb', line 3

def model_class
  @model_class
end

Instance Method Details

#associationsObject



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/rails_proof/model_inspector.rb', line 28

def associations
  @associations ||= model_class.reflect_on_all_associations.map do |association|
    {
      macro: association.macro,
      name: association.name,
      class_name: association.class_name,
      foreign_key: association.foreign_key,
      options: association.options
    }
  end
end

#columnsObject



17
18
19
20
21
22
23
24
25
26
# File 'lib/rails_proof/model_inspector.rb', line 17

def columns
  @columns ||= model_class.columns.map do |column|
    {
      name: column.name,
      type: column.type,
      null: column.null,
      default: column.default
    }
  end
end

#model_nameObject



9
10
11
# File 'lib/rails_proof/model_inspector.rb', line 9

def model_name
  model_class.name
end

#table_nameObject



13
14
15
# File 'lib/rails_proof/model_inspector.rb', line 13

def table_name
  model_class.table_name
end

#validatorsObject



40
41
42
43
44
45
46
47
48
# File 'lib/rails_proof/model_inspector.rb', line 40

def validators
  @validators ||= model_class.validators.map do |validator|
    {
      class_name: validator.class.name,
      attributes: validator.attributes,
      options: validator.options
    }
  end
end