Class: ActiveCypher::RailsLensExt::Extension

Inherits:
RailsLens::Extensions::Base
  • Object
show all
Defined in:
lib/active_cypher/rails_lens_ext/extension.rb

Constant Summary collapse

INTERFACE_VERSION =
'1.0'

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.detect?Boolean

Returns:

  • (Boolean)


68
69
70
71
72
73
74
75
76
# File 'lib/active_cypher/rails_lens_ext/extension.rb', line 68

def detect?
  return false unless gem_available?(gem_name)

  # Ensure ActiveCypher is loaded
  require 'activecypher' unless defined?(::ActiveCypher::Base)
  true
rescue LoadError
  false
end

.gem_nameObject



64
65
66
# File 'lib/active_cypher/rails_lens_ext/extension.rb', line 64

def gem_name
  'activecypher'
end

Instance Method Details

#annotateObject

Generate annotation string for ActiveCypher models



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/active_cypher/rails_lens_ext/extension.rb', line 80

def annotate
  return nil unless active_cypher_model?

  lines = []

  if node_class?
    lines.concat(node_annotation_lines)
  elsif relationship_class?
    lines.concat(relationship_annotation_lines)
  end

  return nil if lines.empty?

  lines.join("\n")
end

#erd_additionsObject

Generate ERD additions for graph visualization



112
113
114
115
116
117
118
119
120
121
122
# File 'lib/active_cypher/rails_lens_ext/extension.rb', line 112

def erd_additions
  return default_erd_additions unless active_cypher_model?

  if node_class?
    node_erd_additions
  elsif relationship_class?
    relationship_erd_additions
  else
    default_erd_additions
  end
end

#notesObject

Generate analysis notes for best practices



97
98
99
100
101
102
103
104
105
106
107
108
109
# File 'lib/active_cypher/rails_lens_ext/extension.rb', line 97

def notes
  return [] unless active_cypher_model?

  notes = []

  if node_class?
    notes.concat(node_notes)
  elsif relationship_class?
    notes.concat(relationship_notes)
  end

  notes
end