rails_age 0.5.2 → 0.6.0

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 (38) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -10
  3. data/README.md +108 -57
  4. data/config/initializers/types.rb +20 -0
  5. data/lib/apache_age/edge.rb +5 -0
  6. data/lib/apache_age/entities/common_methods.rb +6 -0
  7. data/lib/apache_age/entities/edge.rb +4 -3
  8. data/lib/apache_age/entities/node.rb +53 -0
  9. data/lib/apache_age/entities/vertex.rb +47 -47
  10. data/lib/apache_age/node.rb +36 -0
  11. data/lib/apache_age/types/{age_type_generator.rb → factory.rb} +3 -3
  12. data/lib/apache_age/validators/expected_node_type.rb +17 -0
  13. data/lib/apache_age/validators/node_type_validator.rb +15 -0
  14. data/lib/apache_age/validators/unique_node.rb +32 -0
  15. data/lib/apache_age/validators/unique_vertex.rb +27 -27
  16. data/lib/apache_age/validators/vertex_type_validator.rb +14 -13
  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/edge/templates/edge.rb.tt +3 -3
  20. data/lib/generators/apache_age/generator_entity_helpers.rb +6 -11
  21. data/lib/generators/apache_age/node/USAGE +4 -4
  22. data/lib/generators/apache_age/node/node_generator.rb +1 -1
  23. data/lib/generators/apache_age/node/templates/node.rb.tt +2 -2
  24. data/lib/generators/apache_age/scaffold_edge/USAGE +16 -0
  25. data/lib/generators/apache_age/scaffold_edge/scaffold_edge_generator.rb +66 -0
  26. data/lib/generators/apache_age/scaffold_edge/templates/controller.rb.tt +50 -0
  27. data/lib/generators/apache_age/{scaffold_node/templates/views/_form.html.erb copy.tt → scaffold_edge/templates/views/_form.html.erb.tt} +10 -0
  28. data/lib/generators/apache_age/{scaffold_node/templates/views/index.html.erb copy.tt → scaffold_edge/templates/views/index.html.erb.tt} +1 -1
  29. data/lib/generators/apache_age/{scaffold_node/templates/views/partial.html.erb copy.tt → scaffold_edge/templates/views/partial.html.erb.tt} +11 -2
  30. data/lib/generators/apache_age/{scaffold_node/templates/views/show.html.erb copy.tt → scaffold_edge/templates/views/show.html.erb.tt} +1 -1
  31. data/lib/generators/apache_age/scaffold_node/scaffold_node_generator.rb +20 -22
  32. data/lib/rails_age/version.rb +1 -1
  33. data/lib/rails_age.rb +7 -4
  34. data/lib/tasks/config_types.rake +8 -8
  35. metadata +48 -10
  36. /data/lib/generators/apache_age/{scaffold_node/templates/views/edit.html.erb copy.tt → scaffold_edge/templates/views/edit.html.erb.tt} +0 -0
  37. /data/lib/generators/apache_age/{scaffold_node/templates/views/new.html.erb copy.tt → scaffold_edge/templates/views/new.html.erb.tt} +0 -0
  38. /data/lib/generators/apache_age/scaffold_node/templates/{node_controller.rb.tt → controller.rb.tt} +0 -0
@@ -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
@@ -1,14 +1,15 @@
1
- module ApacheAge
2
- module VertexTypeValidator
3
- def vertex_attribute(attribute_name, type_symbol, klass)
4
- attribute attribute_name, type_symbol
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
5
6
 
6
- validate do
7
- value = send(attribute_name)
8
- unless value.is_a?(klass)
9
- errors.add(attribute_name, "must be a #{klass.name}")
10
- end
11
- end
12
- end
13
- end
14
- end
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'
@@ -4,10 +4,10 @@ class <%= class_name %>
4
4
  <%- attributes_list.each do |attribute| -%>
5
5
  attribute :<%= attribute[:name] %>, :<%= attribute[:reference] || attribute[:type] %>
6
6
  <%- end -%>
7
- # recommendation for (start_node and end_node): change `:vertex` with the 'node' type
7
+ # recommendation for (start_node and end_node): change `:node` with the actual 'node' type
8
8
  # see `config/initializers/apache_age.rb` for the list of available node types
9
- attribute :start_node, :vertex
10
- attribute :end_node, :vertex
9
+ attribute :start_node
10
+ attribute :end_node
11
11
 
12
12
  <%- attributes_list.each do |attribute| -%>
13
13
  validates :<%= attribute[:name] %>, presence: true
@@ -3,12 +3,15 @@
3
3
  module ApacheAge
4
4
  module GeneratorEntityHelpers
5
5
  def generate_age_entity(age_type)
6
- template "#{age_type}.rb.tt", File.join(destination_root, "app/#{age_type}s", class_path, "#{file_name}.rb")
6
+ template(
7
+ "#{age_type}.rb.tt",
8
+ File.join(Rails.root, "app/#{age_type}s", class_path, "#{file_name}.rb")
9
+ )
7
10
  add_type_config
8
11
  end
9
12
 
10
13
  def destroy_age_entity(age_type)
11
- file_path = File.join(destination_root, "app/#{age_type}s", class_path, "#{file_name}.rb")
14
+ file_path = File.join(Rails.root, "app/#{age_type}s", class_path, "#{file_name}.rb")
12
15
  File.delete(file_path) if File.exist?(file_path)
13
16
  remove_type_config
14
17
  end
@@ -37,14 +40,6 @@ module ApacheAge
37
40
  end.join("\n") + "\n"
38
41
  end
39
42
 
40
- # def indented_end_namespace
41
- # return '' if parent_module.empty?
42
-
43
- # parent_module.split('::').map.with_index do |_, index|
44
- # "#{' ' * (parent_module.split('::').length - 1 - index)}end"
45
- # end.join("\n") + "\n"
46
- # end
47
-
48
43
  def add_type_config
49
44
  return unless File.exist?(types_config_file)
50
45
 
@@ -76,7 +71,7 @@ module ApacheAge
76
71
  <<-RUBY
77
72
  require_dependency '#{file_path}'
78
73
  ActiveModel::Type.register(
79
- :#{type_name}, ApacheAge::Types::AgeTypeGenerator.create_type_for(#{entity_namespaced_class})
74
+ :#{type_name}, ApacheAge::Types::Factory.type_for(#{entity_namespaced_class})
80
75
  )
81
76
  RUBY
82
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
@@ -0,0 +1,16 @@
1
+ Description:
2
+ Explain the generator
3
+
4
+ Example:
5
+ bin/rails generate apache_age:scaffold_edge HasPet careciver_role
6
+
7
+ This will create:
8
+ create app/edge/has_pet.rb
9
+ modified: config/initializers/types.rb
10
+ create app/controllers/has_pets_controller.rb
11
+ route resources :has_pets
12
+ create app/views/pets/index.html.erb
13
+ create app/views/pets/edit.html.erb
14
+ create app/views/pets/show.html.erb
15
+ create app/views/pets/new.html.erb
16
+ create app/views/pets/partial.html.erb
@@ -0,0 +1,66 @@
1
+ # lib/generators/apache_age/scaffold_edge/scaffold_edge_generator.rb
2
+
3
+ require 'rails/generators'
4
+ require 'rails/generators/named_base'
5
+ require 'rails/generators/resource_helpers'
6
+
7
+ module ApacheAge
8
+ class ScaffoldEdgeGenerator < Rails::Generators::NamedBase
9
+ include Rails::Generators::ResourceHelpers
10
+
11
+ desc "Generates an edge, and its controller and views with the given attributes."
12
+ source_root File.expand_path("templates", __dir__)
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
+
16
+ def create_model_file
17
+ invoke 'apache_age:edge', [name] + attributes.collect { |attr| "#{attr.name}:#{attr.type}" }
18
+ end
19
+
20
+ def create_controller_files
21
+ template(
22
+ "controller.rb.tt",
23
+ File.join(Rails.root, "app/controllers", controller_class_path, "#{controller_file_name}_controller.rb")
24
+ )
25
+ end
26
+
27
+ def create_route
28
+ route_content = route_text(class_path, file_name)
29
+ inject_into_file(
30
+ File.join(Rails.root, 'config', 'routes.rb'), "\n#{route_content}",
31
+ after: "Rails.application.routes.draw do"
32
+ )
33
+ end
34
+
35
+ def copy_view_files
36
+ available_views.each do |view|
37
+ view_name = view == 'partial' ? "_#{singular_table_name}" : view
38
+ filename = filename_with_extensions(view_name)
39
+ template(
40
+ "views/#{view}.html.erb.tt",
41
+ File.join(Rails.root, "app/views", controller_file_path, filename)
42
+ )
43
+ end
44
+ end
45
+
46
+ private
47
+
48
+ def available_views
49
+ %w[index edit show new partial _form]
50
+ end
51
+
52
+ def filename_with_extensions(view)
53
+ [view, :html, :erb].compact.join('.')
54
+ end
55
+
56
+ def route_text(class_path, file_name)
57
+ return " resources :#{file_name.pluralize}" if class_path.empty?
58
+
59
+ <<-RUBY
60
+ namespace :#{class_path.join(':')} do
61
+ resources :#{file_name.pluralize}
62
+ end
63
+ RUBY
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,50 @@
1
+ class <%= controller_class_name %>Controller < ApplicationController
2
+ before_action :set_<%= singular_table_name %>, only: %i[show edit update destroy]
3
+
4
+ def index
5
+ @<%= plural_table_name %> = <%= class_name %>.all
6
+ end
7
+
8
+ def show
9
+ end
10
+
11
+ def new
12
+ @<%= singular_table_name %> = <%= class_name %>.new
13
+ end
14
+
15
+ def edit
16
+ end
17
+
18
+ def create
19
+ @<%= singular_table_name %> = <%= class_name %>.new(<%= singular_table_name %>_params)
20
+
21
+ if @<%= singular_table_name %>.save
22
+ redirect_to @<%= singular_table_name %>, notice: '<%= human_name %> was successfully created.'
23
+ else
24
+ render :new
25
+ end
26
+ end
27
+
28
+ def update
29
+ if @<%= singular_table_name %>.update(<%= singular_table_name %>_params)
30
+ redirect_to @<%= singular_table_name %>, notice: '<%= human_name %> was successfully updated.'
31
+ else
32
+ render :edit
33
+ end
34
+ end
35
+
36
+ def destroy
37
+ @<%= singular_table_name %>.destroy
38
+ redirect_to <%= index_helper %>_url, notice: '<%= human_name %> was successfully destroyed.'
39
+ end
40
+
41
+ private
42
+
43
+ def set_<%= singular_table_name %>
44
+ @<%= singular_table_name %> = <%= class_name %>.find(params[:id])
45
+ end
46
+
47
+ def <%= singular_table_name %>_params
48
+ params.require(:<%= singular_table_name %>).permit(<%= (attributes + %i[start_id end_id]).map { |attr| ":#{attr.name}" }.join(', ') %>)
49
+ end
50
+ end
@@ -31,6 +31,16 @@
31
31
  </div>
32
32
 
33
33
  <% end -%>
34
+ <div>
35
+ <%%= form.label :start_node, style: "display: block" %>
36
+ <%%= form.collection_select(:start_id, ApacheAge::Node.all, :id, :display, prompt: 'Select a Start-Node') %>
37
+ </div>
38
+
39
+ <div>
40
+ <%%= form.label :end_node, style: "display: block" %>
41
+ <%%= form.collection_select(:end_id, ApacheAge::Node.all, :id, :display, prompt: 'Select an End-Node') %>
42
+ </div>
43
+
34
44
  <div>
35
45
  <%%= form.submit %>
36
46
  </div>
@@ -6,7 +6,7 @@
6
6
 
7
7
  <div id="<%= plural_table_name %>">
8
8
  <%% @<%= plural_table_name %>.each do |<%= singular_table_name %>| %>
9
- <%%= render <%= singular_table_name %> %>
9
+ <%%= render '<%= singular_table_name %>', <%= singular_table_name %>: <%= singular_table_name %> %>
10
10
  <p>
11
11
  <%%= link_to "Show this <%= human_name.downcase %>", <%= model_resource_name(singular_table_name) %> %>
12
12
  </p>
@@ -5,8 +5,8 @@
5
5
  <% if attribute.attachment? -%>
6
6
  <%%= link_to <%= singular_table_name %>.<%= attribute.column_name %>.filename, <%= singular_table_name %>.<%= attribute.column_name %> if <%= singular_table_name %>.<%= attribute.column_name %>.attached? %>
7
7
  <% elsif attribute.attachments? -%>
8
- <%% <%= singular_table_name %>.<%= attribute.column_name %>.each do |<%= attribute.singular_table_name %>| %>
9
- <div><%%= link_to <%= attribute.singular_table_name %>.filename, <%= attribute.singular_table_name %> %></div>
8
+ <%% <%= singular_table_name %>.<%= attribute.column_name %>.each do |<%= attribute.singular_name %>| %>
9
+ <div><%%= link_to <%= attribute.singular_name %>.filename, <%= attribute.singular_name %> %></div>
10
10
  <%% end %>
11
11
  <% else -%>
12
12
  <%%= <%= singular_table_name %>.<%= attribute.column_name %> %>
@@ -14,4 +14,13 @@
14
14
  </p>
15
15
 
16
16
  <% end -%>
17
+ <p>
18
+ <strong>Start-Node:</strong>
19
+ <%%= <%= singular_table_name %>.start_node.display %>
20
+ </p>
21
+
22
+ <p>
23
+ <strong>End-Node:</strong>
24
+ <%%= <%= singular_table_name %>.end_node.display %>
25
+ </p>
17
26
  </div>
@@ -1,6 +1,6 @@
1
1
  <p style="color: green"><%%= notice %></p>
2
2
 
3
- <%%= render @<%= singular_table_name %> %>
3
+ <%%= render '<%= singular_table_name %>', <%= singular_table_name %>: @<%= singular_table_name %> %>
4
4
 
5
5
  <div>
6
6
  <%%= link_to "Edit this <%= human_name.downcase %>", <%= edit_helper(type: :path) %> %> |
@@ -4,20 +4,14 @@ require 'rails/generators'
4
4
  require 'rails/generators/named_base'
5
5
  require 'rails/generators/resource_helpers'
6
6
 
7
- require_relative '../generator_entity_helpers'
8
- require_relative '../generator_resource_helpers'
9
-
10
7
  module ApacheAge
11
8
  class ScaffoldNodeGenerator < Rails::Generators::NamedBase
12
9
  include Rails::Generators::ResourceHelpers
13
- # include ApacheAge::GeneratorEntityHelpers
14
- # include ApacheAge::GeneratorResourceHelpers
15
10
 
16
11
  desc "Generates a node, and its controller and views with the given attributes."
17
-
18
12
  source_root File.expand_path("templates", __dir__)
19
-
20
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"
21
15
 
22
16
  def create_model_file
23
17
  invoke 'apache_age:node', [name] + attributes.collect { |attr| "#{attr.name}:#{attr.type}" }
@@ -25,24 +19,27 @@ module ApacheAge
25
19
 
26
20
  def create_controller_files
27
21
  template(
28
- "node_controller.rb.tt",
29
- File.join("app/controllers", controller_class_path, "#{controller_file_name}_controller.rb")
22
+ "controller.rb.tt",
23
+ File.join(Rails.root, "app/controllers", controller_class_path, "#{controller_file_name}_controller.rb")
30
24
  )
31
25
  end
32
26
 
33
27
  def create_route
34
- if class_path.empty?
35
- route "resources :#{file_name.pluralize}"
36
- else
37
- route nested_route(class_path, file_name)
38
- end
28
+ route_content = route_text(class_path, file_name)
29
+ inject_into_file(
30
+ File.join(Rails.root, 'config', 'routes.rb'), "\n#{route_content}",
31
+ after: "Rails.application.routes.draw do"
32
+ )
39
33
  end
40
34
 
41
35
  def copy_view_files
42
36
  available_views.each do |view|
43
37
  view_name = view == 'partial' ? "_#{singular_table_name}" : view
44
38
  filename = filename_with_extensions(view_name)
45
- template "views/#{view}.html.erb.tt", File.join("app/views", controller_file_path, filename)
39
+ template(
40
+ "views/#{view}.html.erb.tt",
41
+ File.join(Rails.root, "app/views", controller_file_path, filename)
42
+ )
46
43
  end
47
44
  end
48
45
 
@@ -56,13 +53,14 @@ module ApacheAge
56
53
  [view, :html, :erb].compact.join('.')
57
54
  end
58
55
 
59
- def nested_route(class_path, file_name)
60
- # "namespace :#{class_path.join(':')} do\n resources :#{file_name.pluralize}\nend"
61
- <<~RUBY
62
- namespace :#{class_path.join(':')} do
63
- resources :#{file_name.pluralize}
64
- end
65
- RUBY
56
+ def route_text(class_path, file_name)
57
+ return " resources :#{file_name.pluralize}" if class_path.empty?
58
+
59
+ <<-RUBY
60
+ namespace :#{class_path.join(':')} do
61
+ resources :#{file_name.pluralize}
62
+ end
63
+ RUBY
66
64
  end
67
65
  end
68
66
  end
@@ -1,3 +1,3 @@
1
1
  module RailsAge
2
- VERSION = '0.5.2'
2
+ VERSION = '0.6.0'
3
3
  end
data/lib/rails_age.rb CHANGED
@@ -8,10 +8,13 @@ end
8
8
  module ApacheAge
9
9
  require 'apache_age/entities/class_methods'
10
10
  require 'apache_age/entities/common_methods'
11
- require 'apache_age/entities/edge'
12
11
  require 'apache_age/entities/entity'
13
- require 'apache_age/entities/vertex'
12
+ require 'apache_age/entities/node'
13
+ require 'apache_age/entities/edge'
14
+ require 'apache_age/node'
15
+ require 'apache_age/edge'
16
+ require 'apache_age/validators/expected_node_type'
17
+ require 'apache_age/validators/unique_node'
14
18
  require 'apache_age/validators/unique_edge'
15
- require 'apache_age/validators/unique_vertex'
16
- require 'apache_age/types/age_type_generator'
19
+ require 'apache_age/types/factory'
17
20
  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
- require_dependency 'apache_age/entities/vertex'
20
+ require_dependency 'apache_age/node'
21
21
  ActiveModel::Type.register(
22
- :vertex, ApacheAge::Types::AgeTypeGenerator.create_type_for(ApacheAge::Entities::Vertex)
22
+ :node, ApacheAge::Types::Factory.type_for(ApacheAge::Node)
23
23
  )
24
24
  RUBY
25
25
  edge_type_content =
26
26
  <<-RUBY
27
- require_dependency 'apache_age/entities/edge'
27
+ require_dependency 'apache_age/edge'
28
28
  ActiveModel::Type.register(
29
- :edge, ApacheAge::Types::AgeTypeGenerator.create_type_for(ApacheAge::Entities::Edge)
29
+ :edge, ApacheAge::Types::Factory.type_for(ApacheAge::Edge)
30
30
  )
31
31
  RUBY
32
32