rails_age 0.5.3 → 0.6.1

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.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +39 -13
  3. data/README.md +246 -10
  4. data/config/initializers/types.rb +5 -5
  5. data/lib/apache_age/cypher.rb +95 -0
  6. data/lib/apache_age/entities/class_methods.rb +68 -38
  7. data/lib/apache_age/entities/edge.rb +2 -0
  8. data/lib/apache_age/entities/node.rb +3 -1
  9. data/lib/apache_age/entities/path.rb +27 -0
  10. data/lib/apache_age/entities/query_builder.rb +159 -0
  11. data/lib/apache_age/entities/vertex.rb +47 -47
  12. data/lib/apache_age/path.rb +4 -0
  13. data/lib/apache_age/types/{age_type_factory.rb → factory.rb} +3 -3
  14. data/lib/apache_age/validators/{vertex_type_validator copy.rb → node_type_validator.rb} +1 -1
  15. data/lib/apache_age/validators/unique_vertex.rb +27 -27
  16. data/lib/apache_age/validators/vertex_type_validator.rb +15 -0
  17. data/lib/generators/apache_age/edge/USAGE +7 -7
  18. data/lib/generators/apache_age/edge/edge_generator.rb +1 -0
  19. data/lib/generators/apache_age/generator_entity_helpers.rb +1 -9
  20. data/lib/generators/apache_age/node/USAGE +4 -4
  21. data/lib/generators/apache_age/node/node_generator.rb +1 -1
  22. data/lib/generators/apache_age/node/templates/node.rb.tt +2 -2
  23. data/lib/generators/apache_age/scaffold_edge/scaffold_edge_generator.rb +1 -2
  24. data/lib/generators/apache_age/scaffold_node/scaffold_node_generator.rb +1 -2
  25. data/lib/rails_age/version.rb +1 -1
  26. data/lib/rails_age.rb +5 -4
  27. data/lib/tasks/config_types.rake +6 -6
  28. metadata +25 -8
  29. data/lib/apache_age/types/age_type_generator.rb +0 -46
  30. data/lib/generators/apache_age/scaffold_edge/scaffold_node_generator.rb +0 -67
@@ -0,0 +1,27 @@
1
+ module ApacheAge
2
+ module Entities
3
+ module Path
4
+ extend ActiveSupport::Concern
5
+
6
+ included do
7
+ include ActiveModel::Model
8
+ include ActiveModel::Dirty
9
+ include ActiveModel::Attributes
10
+
11
+ attribute :id, :integer
12
+ # attribute :label, :string
13
+ attribute :end_id, :integer
14
+ attribute :start_id, :integer
15
+ # override with a specific node type in the defining class
16
+ attribute :end_node
17
+ attribute :start_node
18
+
19
+ validates :end_node, :start_node, presence: true
20
+ validate :validate_nodes
21
+
22
+ extend ApacheAge::Entities::ClassMethods
23
+ include ApacheAge::Entities::CommonMethods
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,159 @@
1
+ # query =
2
+ # Person.
3
+ # cypher('age_schema')
4
+ # .match("(a:Person), (b:Person)")
5
+ # .where("a.name = 'Node A'", "b.name = 'Node B'")
6
+ # .return("a.name", "b.name")
7
+ # .as("name_a agtype, name_b agtype")
8
+ # .execute
9
+ # def cypher(graph_name = 'age_schema')
10
+ # ApacheAge::Cypher.new(graph_name)
11
+ # self
12
+ # end
13
+
14
+ module ApacheAge
15
+ module Entities
16
+ class QueryBuilder
17
+ attr_accessor :where_clauses, :order_clause, :limit_clause, :model_class, :match_clause,
18
+ :graph_name, :return_clause, :return_names, :return_variables
19
+
20
+ def initialize(model_class, graph_name: nil)
21
+ @model_class = model_class
22
+ @where_clauses = []
23
+ @return_names = ['find']
24
+ @return_clause = 'find'
25
+ @return_variables = []
26
+ @order_clause = nil
27
+ @limit_clause = nil
28
+ @match_clause = model_class.match_clause
29
+ @graph_name = graph_name || model_class.age_graph
30
+ end
31
+
32
+ # def cypher(graph_name = 'age_schema')
33
+ # return self if graph_name.blank?
34
+
35
+ # @graph_name = graph_name
36
+ # self
37
+ # end
38
+
39
+ def match(match_string)
40
+ @match_clause = match_string
41
+ self
42
+ end
43
+
44
+ # need to handle string inputs too: ie: "id(find) = #{id}"
45
+ def where(attributes)
46
+ return self if attributes.blank?
47
+
48
+ @where_clauses <<
49
+ if attributes.is_a?(String)
50
+ if attributes.include?('id(') || attributes.include?('find.')
51
+ attributes
52
+ else
53
+ "find.#{attributes}"
54
+ end
55
+ else
56
+ edge_keys = [:start_id, :start_node, :end_id, :end_node]
57
+ if edge_keys.any? { |key| attributes.include?(key) }
58
+ model_class.send(:where_edge_clause, attributes)
59
+ else
60
+ model_class.send(:where_node_clause, attributes)
61
+ end
62
+ end
63
+
64
+ self
65
+ end
66
+
67
+ # New return method
68
+ def return(*variables)
69
+ return self if variables.blank?
70
+
71
+ @return_variables = variables
72
+ # @return_names = variables.empty? ? ['find'] : variables
73
+ # @return_clause = variables.empty? ? 'find' : "find.#{variables.join(', find.')}"
74
+ self
75
+ end
76
+
77
+ def order(ordering)
78
+ @order_clause = nil
79
+ return self if ordering.blank?
80
+
81
+ order_by_values = Array.wrap(ordering).map { |order| parse_ordering(order) }.join(', ')
82
+ @order_clause = "ORDER BY #{order_by_values}"
83
+ self
84
+ end
85
+
86
+ def limit(limit_value)
87
+ @limit_clause = "LIMIT #{limit_value}"
88
+ self
89
+ end
90
+
91
+ def all
92
+ cypher_sql = build_query
93
+ results = model_class.send(:execute_where, cypher_sql)
94
+ return results if return_variables.empty?
95
+
96
+ results.map(&:to_h).map { _1.slice(*return_variables) }
97
+ end
98
+
99
+ def execute
100
+ cypher_sql = build_query
101
+ model_class.send(:execute_sql, cypher_sql)
102
+ end
103
+
104
+ def first
105
+ cypher_sql = build_query(limit_clause || "LIMIT 1")
106
+ model_class.send(:execute_find, cypher_sql)
107
+ end
108
+
109
+ def to_sql
110
+ build_query.strip
111
+ end
112
+
113
+ private
114
+
115
+ def parse_ordering(ordering)
116
+ if ordering.is_a?(Hash)
117
+ # Convert hash into "find.key direction" format and join with commas
118
+ ordering = ordering.map { |k, v| "find.#{k} #{v}" }.join(', ')
119
+ elsif ordering.is_a?(Symbol)
120
+ # If it's a symbol, simply prepend "find."
121
+ ordering = "find.#{ordering}"
122
+ elsif ordering.is_a?(String)
123
+ # If it's a string, assume it's already in the correct format
124
+ ordering = ordering
125
+ elsif ordering.is_a?(Array)
126
+ # If it's an array, process each element recursively
127
+ ordering = ordering.map do |order|
128
+ if order.is_a?(Hash)
129
+ order.map { |k, v| "find.#{k} #{v}" }.join(', ')
130
+ elsif order.is_a?(Symbol)
131
+ "find.#{order}"
132
+ elsif order.is_a?(String)
133
+ order
134
+ else
135
+ raise ArgumentError, 'Array elements must be a string, symbol, or hash'
136
+ end
137
+ end.join(', ')
138
+ else
139
+ raise ArgumentError, 'Ordering must be a string, symbol, hash, or array'
140
+ end
141
+ end
142
+
143
+ def build_query(_extra_clause = nil)
144
+ where_sql = where_clauses.any? ? "WHERE #{where_clauses.join(' AND ')}" : ''
145
+ order_by = order_clause.present? ? order_clause : ''
146
+ <<-SQL.squish
147
+ SELECT *
148
+ FROM cypher('#{graph_name}', $$
149
+ MATCH #{match_clause}
150
+ #{where_sql}
151
+ RETURN #{return_clause}
152
+ #{order_clause}
153
+ #{limit_clause}
154
+ $$) AS (#{return_names.join(' agtype, ')} agtype);
155
+ SQL
156
+ end
157
+ end
158
+ end
159
+ end
@@ -1,53 +1,53 @@
1
- module ApacheAge
2
- module Entities
3
- module Node
4
- extend ActiveSupport::Concern
1
+ # module ApacheAge
2
+ # module Entities
3
+ # module Vertex
4
+ # extend ActiveSupport::Concern
5
5
 
6
- included do
7
- include ActiveModel::Model
8
- include ActiveModel::Dirty
9
- include ActiveModel::Attributes
6
+ # included do
7
+ # include ActiveModel::Model
8
+ # include ActiveModel::Dirty
9
+ # include ActiveModel::Attributes
10
10
 
11
- attribute :id, :integer
11
+ # attribute :id, :integer
12
12
 
13
- extend ApacheAge::Entities::ClassMethods
14
- include ApacheAge::Entities::CommonMethods
15
- end
13
+ # extend ApacheAge::Entities::ClassMethods
14
+ # include ApacheAge::Entities::CommonMethods
15
+ # end
16
16
 
17
- def age_type = 'vertex'
17
+ # def age_type = 'vertex'
18
18
 
19
- # AgeSchema::Nodes::Company.create(company_name: 'Bedrock Quarry')
20
- # SELECT *
21
- # FROM cypher('age_schema', $$
22
- # CREATE (company:Company {company_name: 'Bedrock Quarry'})
23
- # RETURN company
24
- # $$) as (Company agtype);
25
- def create_sql
26
- alias_name = age_alias || age_label.downcase
27
- <<-SQL
28
- SELECT *
29
- FROM cypher('#{age_graph}', $$
30
- CREATE (#{alias_name}#{self})
31
- RETURN #{alias_name}
32
- $$) as (#{age_label} agtype);
33
- SQL
34
- end
19
+ # # AgeSchema::Nodes::Company.create(company_name: 'Bedrock Quarry')
20
+ # # SELECT *
21
+ # # FROM cypher('age_schema', $$
22
+ # # CREATE (company:Company {company_name: 'Bedrock Quarry'})
23
+ # # RETURN company
24
+ # # $$) as (Company agtype);
25
+ # def create_sql
26
+ # alias_name = age_alias || age_label.downcase
27
+ # <<-SQL
28
+ # SELECT *
29
+ # FROM cypher('#{age_graph}', $$
30
+ # CREATE (#{alias_name}#{self})
31
+ # RETURN #{alias_name}
32
+ # $$) as (#{age_label} agtype);
33
+ # SQL
34
+ # end
35
35
 
36
- # So far just properties of string type with '' around them
37
- def update_sql
38
- alias_name = age_alias || age_label.downcase
39
- set_caluse =
40
- age_properties.map { |k, v| v ? "#{alias_name}.#{k} = '#{v}'" : "#{alias_name}.#{k} = NULL" }.join(', ')
41
- <<-SQL
42
- SELECT *
43
- FROM cypher('#{age_graph}', $$
44
- MATCH (#{alias_name}:#{age_label})
45
- WHERE id(#{alias_name}) = #{id}
46
- SET #{set_caluse}
47
- RETURN #{alias_name}
48
- $$) as (#{age_label} agtype);
49
- SQL
50
- end
51
- end
52
- end
53
- end
36
+ # # So far just properties of string type with '' around them
37
+ # def update_sql
38
+ # alias_name = age_alias || age_label.downcase
39
+ # set_caluse =
40
+ # age_properties.map { |k, v| v ? "#{alias_name}.#{k} = '#{v}'" : "#{alias_name}.#{k} = NULL" }.join(', ')
41
+ # <<-SQL
42
+ # SELECT *
43
+ # FROM cypher('#{age_graph}', $$
44
+ # MATCH (#{alias_name}:#{age_label})
45
+ # WHERE id(#{alias_name}) = #{id}
46
+ # SET #{set_caluse}
47
+ # RETURN #{alias_name}
48
+ # $$) as (#{age_label} agtype);
49
+ # SQL
50
+ # end
51
+ # end
52
+ # end
53
+ # end
@@ -0,0 +1,4 @@
1
+ module ApacheAge
2
+ class Path
3
+ end
4
+ end
@@ -1,4 +1,4 @@
1
- # lib/apache_age/types/age_type_factory.rb
1
+ # lib/apache_age/types/factory.rb
2
2
  # Automatically generates ActiveModel::Type classes
3
3
  # Dynamically builds this (as a concrete example):
4
4
  # module ApacheAge
@@ -22,8 +22,8 @@
22
22
  # end
23
23
  module ApacheAge
24
24
  module Types
25
- class AgeTypeFactory
26
- def self.create_type_for(klass)
25
+ class Factory
26
+ def self.type_for(klass)
27
27
  Class.new(ActiveModel::Type::Value) do
28
28
  define_method(:cast) do |value|
29
29
  case value
@@ -1,5 +1,5 @@
1
1
  module ApacheAge
2
- module VertexTypeValidator
2
+ module NodeTypeValidator
3
3
  def
4
4
  # Register the AGE typesvertex_attribute(attribute_name, type_symbol, klass)
5
5
  attribute attribute_name, type_symbol
@@ -1,32 +1,32 @@
1
- # lib/apache_age/validators/unique_vertex.rb
1
+ # # lib/apache_age/validators/unique_vertex.rb
2
2
 
3
- # Usage (within an Age Model)
4
- # validates_with(
5
- # ApacheAge::Validators::UniqueVertex,
6
- # attributes: [:first_name, :last_name, :gender]
7
- # )
3
+ # # Usage (within an Age Model)
4
+ # # validates_with(
5
+ # # ApacheAge::Validators::UniqueVertex,
6
+ # # attributes: [:first_name, :last_name, :gender]
7
+ # # )
8
8
 
9
- module ApacheAge
10
- module Validators
11
- class UniqueVertex < ActiveModel::Validator
12
- def validate(record)
13
- allowed_keys = record.age_properties.keys
14
- attributes = options[:attributes]
15
- return if attributes.blank?
9
+ # module ApacheAge
10
+ # module Validators
11
+ # class UniqueVertex < ActiveModel::Validator
12
+ # def validate(record)
13
+ # allowed_keys = record.age_properties.keys
14
+ # attributes = options[:attributes]
15
+ # return if attributes.blank?
16
16
 
17
- record_attribs =
18
- attributes
19
- .map { |attr| [attr, record.send(attr)] }
20
- .to_h.symbolize_keys
21
- .slice(*allowed_keys)
22
- query = record.class.find_by(record_attribs)
17
+ # record_attribs =
18
+ # attributes
19
+ # .map { |attr| [attr, record.send(attr)] }
20
+ # .to_h.symbolize_keys
21
+ # .slice(*allowed_keys)
22
+ # query = record.class.find_by(record_attribs)
23
23
 
24
- # if no match is found or if it finds itself, it's valid
25
- return if query.blank? || (query.id == record.id)
24
+ # # if no match is found or if it finds itself, it's valid
25
+ # return if query.blank? || (query.id == record.id)
26
26
 
27
- record.errors.add(:base, 'record not unique')
28
- attributes.each { record.errors.add(_1, 'property combination not unique') }
29
- end
30
- end
31
- end
32
- end
27
+ # record.errors.add(:base, 'record not unique')
28
+ # attributes.each { record.errors.add(_1, 'property combination not unique') }
29
+ # end
30
+ # end
31
+ # end
32
+ # end
@@ -0,0 +1,15 @@
1
+ # module ApacheAge
2
+ # module VertexTypeValidator
3
+ # def
4
+ # # Register the AGE typesvertex_attribute(attribute_name, type_symbol, klass)
5
+ # attribute attribute_name, type_symbol
6
+
7
+ # validate do
8
+ # value = send(attribute_name)
9
+ # unless value.is_a?(klass)
10
+ # errors.add(attribute_name, "must be a #{klass.name}")
11
+ # end
12
+ # end
13
+ # end
14
+ # end
15
+ # end
@@ -23,9 +23,9 @@ Example:
23
23
  validates :employee_role, presence: true
24
24
  validates :begin_date, presence: true
25
25
 
26
- # unique node validator (remove any attributes that are not important to uniqueness)
26
+ # unique edge validator (remove any attributes that are not important to uniqueness)
27
27
  validates_with(
28
- ApacheAge::Validators::UniqueVertex,
28
+ ApacheAge::Validators::UniqueEdge,
29
29
  attributes: [:employee_role, :begin_date :start_node, :end_node]
30
30
  )
31
31
  end
@@ -35,12 +35,12 @@ Example:
35
35
  `bin/rails g apache_age:edge Animals/Cat name age:integer`
36
36
 
37
37
  This creates:
38
- `app/nodes/animals/cat.rb`
38
+ `app/edges/animals/has_cat.rb`
39
39
 
40
40
  with the contents
41
41
  ```
42
- class Animals::Cat
43
- include ApacheAge::Entities::Vertex
42
+ class Animals::HatCat
43
+ include ApacheAge::Entities::Edge
44
44
 
45
45
  attribute :name, :string
46
46
  attribute :age, :integer
@@ -48,9 +48,9 @@ Example:
48
48
  validates :name, presence: true
49
49
  validates :age, presence: true
50
50
 
51
- # unique node validator (remove any attributes that are not important to uniqueness)
51
+ # unique edge validator (remove any attributes that are not important to uniqueness)
52
52
  validates_with(
53
- ApacheAge::Validators::UniqueVertex,
53
+ ApacheAge::Validators::UniqueEdge,
54
54
  attributes: [:name, :age, :start_node, :end_node]
55
55
  )
56
56
  end
@@ -14,6 +14,7 @@ module ApacheAge
14
14
 
15
15
  source_root File.expand_path('templates', __dir__)
16
16
  argument :attributes, type: :array, default: [], banner: "field:type field:type"
17
+ class_option :skip_namespace, type: :boolean, default: true, desc: "Skip namespace 'rails_age' in generated files"
17
18
 
18
19
  def perform_task
19
20
  age_type = 'edge'
@@ -40,14 +40,6 @@ module ApacheAge
40
40
  end.join("\n") + "\n"
41
41
  end
42
42
 
43
- # def indented_end_namespace
44
- # return '' if parent_module.empty?
45
-
46
- # parent_module.split('::').map.with_index do |_, index|
47
- # "#{' ' * (parent_module.split('::').length - 1 - index)}end"
48
- # end.join("\n") + "\n"
49
- # end
50
-
51
43
  def add_type_config
52
44
  return unless File.exist?(types_config_file)
53
45
 
@@ -79,7 +71,7 @@ module ApacheAge
79
71
  <<-RUBY
80
72
  require_dependency '#{file_path}'
81
73
  ActiveModel::Type.register(
82
- :#{type_name}, ApacheAge::Types::AgeTypeGenerator.create_type_for(#{entity_namespaced_class})
74
+ :#{type_name}, ApacheAge::Types::Factory.type_for(#{entity_namespaced_class})
83
75
  )
84
76
  RUBY
85
77
  end
@@ -12,7 +12,7 @@ Example:
12
12
  with the contents:
13
13
  ```
14
14
  class Cat
15
- include ApacheAge::Entities::Vertex
15
+ include ApacheAge::Entities::Node
16
16
 
17
17
  attribute :full_name, :string
18
18
  attribute :birthdate, :date
@@ -22,7 +22,7 @@ Example:
22
22
 
23
23
  # unique node validator (remove any attributes that are not important to uniqueness)
24
24
  validates_with(
25
- ApacheAge::Validators::UniqueVertex,
25
+ ApacheAge::Validators::UniqueNode,
26
26
  attributes: [:full_name, :birthdate]
27
27
  )
28
28
  end
@@ -37,7 +37,7 @@ Example:
37
37
  with the contents
38
38
  ```
39
39
  class Animals::Cat
40
- include ApacheAge::Entities::Vertex
40
+ include ApacheAge::Entities::Node
41
41
 
42
42
  attribute :name, :string
43
43
  attribute :age, :integer
@@ -47,7 +47,7 @@ Example:
47
47
 
48
48
  # unique node validator (remove any attributes that are not important to uniqueness)
49
49
  validates_with(
50
- ApacheAge::Validators::UniqueVertex,
50
+ ApacheAge::Validators::UniqueNode,
51
51
  attributes: [:name, :age]
52
52
  )
53
53
  end
@@ -9,9 +9,9 @@ module ApacheAge
9
9
  include ApacheAge::GeneratorEntityHelpers
10
10
 
11
11
  desc "Generates node (model) with attributes."
12
-
13
12
  source_root File.expand_path('templates', __dir__)
14
13
  argument :attributes, type: :array, default: [], banner: "field:type field:type"
14
+ class_option :skip_namespace, type: :boolean, default: true, desc: "Skip namespace 'rails_age' in generated files"
15
15
 
16
16
  def perform_task
17
17
  age_type = 'node'
@@ -1,5 +1,5 @@
1
1
  class <%= class_name %>
2
- include ApacheAge::Entities::Vertex
2
+ include ApacheAge::Entities::Node
3
3
 
4
4
  <%- attributes_list.each do |attribute| -%>
5
5
  attribute :<%= attribute[:name] %>, :<%= attribute[:type] %>
@@ -11,7 +11,7 @@ class <%= class_name %>
11
11
 
12
12
  # custom unique node validator (remove any attributes that are NOT important to uniqueness)
13
13
  validates_with(
14
- ApacheAge::Validators::UniqueVertex,
14
+ ApacheAge::Validators::UniqueNode,
15
15
  attributes: <%= unique_attributes.inspect %>
16
16
  )
17
17
  end
@@ -9,10 +9,9 @@ module ApacheAge
9
9
  include Rails::Generators::ResourceHelpers
10
10
 
11
11
  desc "Generates an edge, and its controller and views with the given attributes."
12
-
13
12
  source_root File.expand_path("templates", __dir__)
14
-
15
13
  argument :attributes, type: :array, default: [], banner: "field:type field:type"
14
+ class_option :skip_namespace, type: :boolean, default: true, desc: "Skip namespace 'rails_age' in generated files"
16
15
 
17
16
  def create_model_file
18
17
  invoke 'apache_age:edge', [name] + attributes.collect { |attr| "#{attr.name}:#{attr.type}" }
@@ -9,10 +9,9 @@ module ApacheAge
9
9
  include Rails::Generators::ResourceHelpers
10
10
 
11
11
  desc "Generates a node, and its controller and views with the given attributes."
12
-
13
12
  source_root File.expand_path("templates", __dir__)
14
-
15
13
  argument :attributes, type: :array, default: [], banner: "field:type field:type"
14
+ class_option :skip_namespace, type: :boolean, default: true, desc: "Skip namespace 'rails_age' in generated files"
16
15
 
17
16
  def create_model_file
18
17
  invoke 'apache_age:node', [name] + attributes.collect { |attr| "#{attr.name}:#{attr.type}" }
@@ -1,3 +1,3 @@
1
1
  module RailsAge
2
- VERSION = '0.5.3'
2
+ VERSION = '0.6.1'
3
3
  end
data/lib/rails_age.rb CHANGED
@@ -6,18 +6,19 @@ module RailsAge
6
6
  end
7
7
 
8
8
  module ApacheAge
9
+ require 'apache_age/cypher.rb'
10
+ require 'apache_age/entities/query_builder'
9
11
  require 'apache_age/entities/class_methods'
10
12
  require 'apache_age/entities/common_methods'
11
13
  require 'apache_age/entities/entity'
12
- require 'apache_age/entities/vertex'
13
14
  require 'apache_age/entities/node'
14
15
  require 'apache_age/entities/edge'
16
+ # require 'apache_age/entities/path'
15
17
  require 'apache_age/node'
16
18
  require 'apache_age/edge'
19
+ # require 'apache_age/path'
17
20
  require 'apache_age/validators/expected_node_type'
18
21
  require 'apache_age/validators/unique_node'
19
22
  require 'apache_age/validators/unique_edge'
20
- require 'apache_age/validators/unique_vertex'
21
- require 'apache_age/types/age_type_factory'
22
- require 'apache_age/types/age_type_generator'
23
+ require 'apache_age/types/factory'
23
24
  end
@@ -5,28 +5,28 @@ namespace :apache_age do
5
5
  desc "Install AGE types from rails_age into the rails initializers"
6
6
  task :config_types => :environment do
7
7
  types_file_path = File.expand_path("#{Rails.root}/config/initializers/types.rb", __FILE__)
8
- required_file_path = "require 'apache_age/types/age_type_generator'"
8
+ required_file_path = "require 'apache_age/types/factory'"
9
9
  required_file_content =
10
10
  <<~RUBY
11
- require 'apache_age/types/age_type_generator'
11
+ require 'apache_age/types/factory'
12
12
  # AGE Type Definition Usage (edges/nodes):
13
- # require_dependency 'nodes/company'
13
+ # require_dependency 'company'
14
14
  # ActiveModel::Type.register(
15
- # :company, ApacheAge::Types::AgeTypeGenerator.create_type_for(Nodes::Company)
15
+ # :company, ApacheAge::Types::Factory.type_for(Company)
16
16
  # )
17
17
  RUBY
18
18
  node_type_content =
19
19
  <<-RUBY
20
20
  require_dependency 'apache_age/node'
21
21
  ActiveModel::Type.register(
22
- :node, ApacheAge::Types::AgeTypeGenerator.create_type_for(ApacheAge::Node)
22
+ :node, ApacheAge::Types::Factory.type_for(ApacheAge::Node)
23
23
  )
24
24
  RUBY
25
25
  edge_type_content =
26
26
  <<-RUBY
27
27
  require_dependency 'apache_age/edge'
28
28
  ActiveModel::Type.register(
29
- :edge, ApacheAge::Types::AgeTypeGenerator.create_type_for(ApacheAge::Edge)
29
+ :edge, ApacheAge::Types::Factory.type_for(ApacheAge::Edge)
30
30
  )
31
31
  RUBY
32
32