rails_age 0.5.0 → 0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +24 -7
- data/README.md +108 -57
- data/config/initializers/types.rb +20 -0
- data/lib/apache_age/edge.rb +5 -0
- data/lib/apache_age/entities/common_methods.rb +6 -0
- data/lib/apache_age/entities/edge.rb +4 -3
- data/lib/apache_age/entities/node.rb +53 -0
- data/lib/apache_age/entities/vertex.rb +1 -1
- data/lib/apache_age/node.rb +36 -0
- data/lib/apache_age/types/age_type_factory.rb +46 -0
- data/lib/apache_age/validators/expected_node_type.rb +17 -0
- data/lib/apache_age/validators/unique_node.rb +32 -0
- data/lib/apache_age/validators/{vertex_type_validator.rb → vertex_type_validator copy.rb } +2 -1
- data/lib/generators/apache_age/edge/edge_generator.rb +4 -2
- data/lib/generators/apache_age/edge/templates/edge.rb.tt +3 -3
- data/lib/generators/apache_age/{generate_entity_methods.rb → generator_entity_helpers.rb} +7 -4
- data/lib/generators/apache_age/generator_resource_helpers.rb +6 -0
- data/lib/generators/apache_age/node/node_generator.rb +4 -2
- data/lib/generators/apache_age/scaffold_edge/USAGE +16 -0
- data/lib/generators/apache_age/scaffold_edge/scaffold_edge_generator.rb +67 -0
- data/lib/generators/apache_age/scaffold_edge/scaffold_node_generator.rb +67 -0
- data/lib/generators/apache_age/scaffold_edge/templates/controller.rb.tt +50 -0
- data/lib/generators/apache_age/scaffold_edge/templates/views/_form.html.erb.tt +47 -0
- data/lib/generators/apache_age/scaffold_edge/templates/views/edit.html.erb.tt +12 -0
- data/lib/generators/apache_age/scaffold_edge/templates/views/index.html.erb.tt +16 -0
- data/lib/generators/apache_age/scaffold_edge/templates/views/new.html.erb.tt +11 -0
- data/lib/generators/apache_age/scaffold_edge/templates/views/partial.html.erb.tt +26 -0
- data/lib/generators/apache_age/scaffold_edge/templates/views/show.html.erb.tt +10 -0
- data/lib/generators/apache_age/scaffold_node/USAGE +16 -0
- data/lib/generators/apache_age/scaffold_node/scaffold_node_generator.rb +67 -0
- data/lib/generators/apache_age/scaffold_node/templates/controller.rb.tt +50 -0
- data/lib/generators/apache_age/scaffold_node/templates/views/_form.html.erb.tt +37 -0
- data/lib/generators/apache_age/scaffold_node/templates/views/edit.html.erb.tt +12 -0
- data/lib/generators/apache_age/scaffold_node/templates/views/index.html.erb.tt +16 -0
- data/lib/generators/apache_age/scaffold_node/templates/views/new.html.erb.tt +11 -0
- data/lib/generators/apache_age/scaffold_node/templates/views/partial.html.erb.tt +17 -0
- data/lib/generators/apache_age/scaffold_node/templates/views/show.html.erb.tt +10 -0
- data/lib/rails_age/version.rb +1 -1
- data/lib/rails_age.rb +7 -1
- data/lib/tasks/config_types.rake +4 -4
- metadata +59 -4
@@ -0,0 +1,67 @@
|
|
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
|
+
|
13
|
+
source_root File.expand_path("templates", __dir__)
|
14
|
+
|
15
|
+
argument :attributes, type: :array, default: [], banner: "field:type field:type"
|
16
|
+
|
17
|
+
def create_model_file
|
18
|
+
invoke 'apache_age:edge', [name] + attributes.collect { |attr| "#{attr.name}:#{attr.type}" }
|
19
|
+
end
|
20
|
+
|
21
|
+
def create_controller_files
|
22
|
+
template(
|
23
|
+
"controller.rb.tt",
|
24
|
+
File.join(Rails.root, "app/controllers", controller_class_path, "#{controller_file_name}_controller.rb")
|
25
|
+
)
|
26
|
+
end
|
27
|
+
|
28
|
+
def create_route
|
29
|
+
route_content = route_text(class_path, file_name)
|
30
|
+
inject_into_file(
|
31
|
+
File.join(Rails.root, 'config', 'routes.rb'), "\n#{route_content}",
|
32
|
+
after: "Rails.application.routes.draw do"
|
33
|
+
)
|
34
|
+
end
|
35
|
+
|
36
|
+
def copy_view_files
|
37
|
+
available_views.each do |view|
|
38
|
+
view_name = view == 'partial' ? "_#{singular_table_name}" : view
|
39
|
+
filename = filename_with_extensions(view_name)
|
40
|
+
template(
|
41
|
+
"views/#{view}.html.erb.tt",
|
42
|
+
File.join(Rails.root, "app/views", controller_file_path, filename)
|
43
|
+
)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
def available_views
|
50
|
+
%w[index edit show new partial _form]
|
51
|
+
end
|
52
|
+
|
53
|
+
def filename_with_extensions(view)
|
54
|
+
[view, :html, :erb].compact.join('.')
|
55
|
+
end
|
56
|
+
|
57
|
+
def route_text(class_path, file_name)
|
58
|
+
return " resources :#{file_name.pluralize}" if class_path.empty?
|
59
|
+
|
60
|
+
<<-RUBY
|
61
|
+
namespace :#{class_path.join(':')} do
|
62
|
+
resources :#{file_name.pluralize}
|
63
|
+
end
|
64
|
+
RUBY
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# lib/generators/apache_age/scaffold_node/scaffold_node_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 ScaffoldNodeGenerator < Rails::Generators::NamedBase
|
9
|
+
include Rails::Generators::ResourceHelpers
|
10
|
+
|
11
|
+
desc "Generates a node, and its controller and views with the given attributes."
|
12
|
+
|
13
|
+
source_root File.expand_path("templates", __dir__)
|
14
|
+
|
15
|
+
argument :attributes, type: :array, default: [], banner: "field:type field:type"
|
16
|
+
|
17
|
+
def create_model_file
|
18
|
+
invoke 'apache_age:edge', [name] + attributes.collect { |attr| "#{attr.name}:#{attr.type}" }
|
19
|
+
end
|
20
|
+
|
21
|
+
def create_controller_files
|
22
|
+
template(
|
23
|
+
"controller.rb.tt",
|
24
|
+
File.join(Rails.root, "app/controllers", controller_class_path, "#{controller_file_name}_controller.rb")
|
25
|
+
)
|
26
|
+
end
|
27
|
+
|
28
|
+
def create_route
|
29
|
+
route_content = route_text(class_path, file_name)
|
30
|
+
inject_into_file(
|
31
|
+
File.join(Rails.root, 'config', 'routes.rb'), "\n#{route_content}",
|
32
|
+
after: "Rails.application.routes.draw do"
|
33
|
+
)
|
34
|
+
end
|
35
|
+
|
36
|
+
def copy_view_files
|
37
|
+
available_views.each do |view|
|
38
|
+
view_name = view == 'partial' ? "_#{singular_table_name}" : view
|
39
|
+
filename = filename_with_extensions(view_name)
|
40
|
+
template(
|
41
|
+
"views/#{view}.html.erb.tt",
|
42
|
+
File.join(Rails.root, "app/views", controller_file_path, filename)
|
43
|
+
)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
def available_views
|
50
|
+
%w[index edit show new partial _form]
|
51
|
+
end
|
52
|
+
|
53
|
+
def filename_with_extensions(view)
|
54
|
+
[view, :html, :erb].compact.join('.')
|
55
|
+
end
|
56
|
+
|
57
|
+
def route_text(class_path, file_name)
|
58
|
+
return " resources :#{file_name.pluralize}" if class_path.empty?
|
59
|
+
|
60
|
+
<<-RUBY
|
61
|
+
namespace :#{class_path.join(':')} do
|
62
|
+
resources :#{file_name.pluralize}
|
63
|
+
end
|
64
|
+
RUBY
|
65
|
+
end
|
66
|
+
end
|
67
|
+
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
|
@@ -0,0 +1,47 @@
|
|
1
|
+
<%%= form_with(model: <%= model_resource_name %>) do |form| %>
|
2
|
+
<%% if <%= singular_table_name %>.errors.any? %>
|
3
|
+
<div style="color: red">
|
4
|
+
<h2><%%= pluralize(<%= singular_table_name %>.errors.count, "error") %> prohibited this <%= singular_table_name %> from being saved:</h2>
|
5
|
+
|
6
|
+
<ul>
|
7
|
+
<%% <%= singular_table_name %>.errors.each do |error| %>
|
8
|
+
<li><%%= error.full_message %></li>
|
9
|
+
<%% end %>
|
10
|
+
</ul>
|
11
|
+
</div>
|
12
|
+
<%% end %>
|
13
|
+
|
14
|
+
<% attributes.each do |attribute| -%>
|
15
|
+
<div>
|
16
|
+
<% if attribute.password_digest? -%>
|
17
|
+
<%%= form.label :password, style: "display: block" %>
|
18
|
+
<%%= form.password_field :password %>
|
19
|
+
</div>
|
20
|
+
|
21
|
+
<div>
|
22
|
+
<%%= form.label :password_confirmation, style: "display: block" %>
|
23
|
+
<%%= form.password_field :password_confirmation %>
|
24
|
+
<% elsif attribute.attachments? -%>
|
25
|
+
<%%= form.label :<%= attribute.column_name %>, style: "display: block" %>
|
26
|
+
<%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, multiple: true %>
|
27
|
+
<% else -%>
|
28
|
+
<%%= form.label :<%= attribute.column_name %>, style: "display: block" %>
|
29
|
+
<%%= form.<%= attribute.field_type %> :<%= attribute.column_name %> %>
|
30
|
+
<% end -%>
|
31
|
+
</div>
|
32
|
+
|
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
|
+
|
44
|
+
<div>
|
45
|
+
<%%= form.submit %>
|
46
|
+
</div>
|
47
|
+
<%% end %>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<%% content_for :title, "Editing <%= human_name.downcase %>" %>
|
2
|
+
|
3
|
+
<h1>Editing <%= human_name.downcase %></h1>
|
4
|
+
|
5
|
+
<%%= render "form", <%= singular_table_name %>: @<%= singular_table_name %> %>
|
6
|
+
|
7
|
+
<br>
|
8
|
+
|
9
|
+
<div>
|
10
|
+
<%%= link_to "Show this <%= human_name.downcase %>", <%= model_resource_name(prefix: "@") %> %> |
|
11
|
+
<%%= link_to "Back to <%= human_name.pluralize.downcase %>", <%= index_helper(type: :path) %> %>
|
12
|
+
</div>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<p style="color: green"><%%= notice %></p>
|
2
|
+
|
3
|
+
<%% content_for :title, "<%= human_name.pluralize %>" %>
|
4
|
+
|
5
|
+
<h1><%= human_name.pluralize %></h1>
|
6
|
+
|
7
|
+
<div id="<%= plural_table_name %>">
|
8
|
+
<%% @<%= plural_table_name %>.each do |<%= singular_table_name %>| %>
|
9
|
+
<%%= render '<%= singular_table_name %>', <%= singular_table_name %>: <%= singular_table_name %> %>
|
10
|
+
<p>
|
11
|
+
<%%= link_to "Show this <%= human_name.downcase %>", <%= model_resource_name(singular_table_name) %> %>
|
12
|
+
</p>
|
13
|
+
<%% end %>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
<%%= link_to "New <%= human_name.downcase %>", <%= new_helper(type: :path) %> %>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<%% content_for :title, "New <%= human_name.downcase %>" %>
|
2
|
+
|
3
|
+
<h1>New <%= human_name.downcase %></h1>
|
4
|
+
|
5
|
+
<%%= render "form", <%= singular_table_name %>: @<%= singular_table_name %> %>
|
6
|
+
|
7
|
+
<br>
|
8
|
+
|
9
|
+
<div>
|
10
|
+
<%%= link_to "Back to <%= human_name.pluralize.downcase %>", <%= index_helper(type: :path) %> %>
|
11
|
+
</div>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<div id="<%%= dom_id <%= singular_table_name %> %>">
|
2
|
+
<% attributes.reject(&:password_digest?).each do |attribute| -%>
|
3
|
+
<p>
|
4
|
+
<strong><%= attribute.human_name %>:</strong>
|
5
|
+
<% if attribute.attachment? -%>
|
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
|
+
<% elsif attribute.attachments? -%>
|
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
|
+
<%% end %>
|
11
|
+
<% else -%>
|
12
|
+
<%%= <%= singular_table_name %>.<%= attribute.column_name %> %>
|
13
|
+
<% end -%>
|
14
|
+
</p>
|
15
|
+
|
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>
|
26
|
+
</div>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<p style="color: green"><%%= notice %></p>
|
2
|
+
|
3
|
+
<%%= render '<%= singular_table_name %>', <%= singular_table_name %>: @<%= singular_table_name %> %>
|
4
|
+
|
5
|
+
<div>
|
6
|
+
<%%= link_to "Edit this <%= human_name.downcase %>", <%= edit_helper(type: :path) %> %> |
|
7
|
+
<%%= link_to "Back to <%= human_name.pluralize.downcase %>", <%= index_helper(type: :path) %> %>
|
8
|
+
|
9
|
+
<%%= button_to "Destroy this <%= human_name.downcase %>", <%= model_resource_name(prefix: "@") %>, method: :delete %>
|
10
|
+
</div>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
Description:
|
2
|
+
Explain the generator
|
3
|
+
|
4
|
+
Example:
|
5
|
+
bin/rails generate apache_age:scaffold_node Pet name birthdate:date
|
6
|
+
|
7
|
+
This will create:
|
8
|
+
create app/nodes/pet.rb
|
9
|
+
modified: config/initializers/types.rb
|
10
|
+
create app/controllers/pets_controller.rb
|
11
|
+
route resources :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,67 @@
|
|
1
|
+
# lib/generators/apache_age/scaffold_node/scaffold_node_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 ScaffoldNodeGenerator < Rails::Generators::NamedBase
|
9
|
+
include Rails::Generators::ResourceHelpers
|
10
|
+
|
11
|
+
desc "Generates a node, and its controller and views with the given attributes."
|
12
|
+
|
13
|
+
source_root File.expand_path("templates", __dir__)
|
14
|
+
|
15
|
+
argument :attributes, type: :array, default: [], banner: "field:type field:type"
|
16
|
+
|
17
|
+
def create_model_file
|
18
|
+
invoke 'apache_age:node', [name] + attributes.collect { |attr| "#{attr.name}:#{attr.type}" }
|
19
|
+
end
|
20
|
+
|
21
|
+
def create_controller_files
|
22
|
+
template(
|
23
|
+
"controller.rb.tt",
|
24
|
+
File.join(Rails.root, "app/controllers", controller_class_path, "#{controller_file_name}_controller.rb")
|
25
|
+
)
|
26
|
+
end
|
27
|
+
|
28
|
+
def create_route
|
29
|
+
route_content = route_text(class_path, file_name)
|
30
|
+
inject_into_file(
|
31
|
+
File.join(Rails.root, 'config', 'routes.rb'), "\n#{route_content}",
|
32
|
+
after: "Rails.application.routes.draw do"
|
33
|
+
)
|
34
|
+
end
|
35
|
+
|
36
|
+
def copy_view_files
|
37
|
+
available_views.each do |view|
|
38
|
+
view_name = view == 'partial' ? "_#{singular_table_name}" : view
|
39
|
+
filename = filename_with_extensions(view_name)
|
40
|
+
template(
|
41
|
+
"views/#{view}.html.erb.tt",
|
42
|
+
File.join(Rails.root, "app/views", controller_file_path, filename)
|
43
|
+
)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
def available_views
|
50
|
+
%w[index edit show new partial _form]
|
51
|
+
end
|
52
|
+
|
53
|
+
def filename_with_extensions(view)
|
54
|
+
[view, :html, :erb].compact.join('.')
|
55
|
+
end
|
56
|
+
|
57
|
+
def route_text(class_path, file_name)
|
58
|
+
return " resources :#{file_name.pluralize}" if class_path.empty?
|
59
|
+
|
60
|
+
<<-RUBY
|
61
|
+
namespace :#{class_path.join(':')} do
|
62
|
+
resources :#{file_name.pluralize}
|
63
|
+
end
|
64
|
+
RUBY
|
65
|
+
end
|
66
|
+
end
|
67
|
+
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.map { |attr| ":#{attr.name}" }.join(', ') %>)
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<%%= form_with(model: <%= model_resource_name %>) do |form| %>
|
2
|
+
<%% if <%= singular_table_name %>.errors.any? %>
|
3
|
+
<div style="color: red">
|
4
|
+
<h2><%%= pluralize(<%= singular_table_name %>.errors.count, "error") %> prohibited this <%= singular_table_name %> from being saved:</h2>
|
5
|
+
|
6
|
+
<ul>
|
7
|
+
<%% <%= singular_table_name %>.errors.each do |error| %>
|
8
|
+
<li><%%= error.full_message %></li>
|
9
|
+
<%% end %>
|
10
|
+
</ul>
|
11
|
+
</div>
|
12
|
+
<%% end %>
|
13
|
+
|
14
|
+
<% attributes.each do |attribute| -%>
|
15
|
+
<div>
|
16
|
+
<% if attribute.password_digest? -%>
|
17
|
+
<%%= form.label :password, style: "display: block" %>
|
18
|
+
<%%= form.password_field :password %>
|
19
|
+
</div>
|
20
|
+
|
21
|
+
<div>
|
22
|
+
<%%= form.label :password_confirmation, style: "display: block" %>
|
23
|
+
<%%= form.password_field :password_confirmation %>
|
24
|
+
<% elsif attribute.attachments? -%>
|
25
|
+
<%%= form.label :<%= attribute.column_name %>, style: "display: block" %>
|
26
|
+
<%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, multiple: true %>
|
27
|
+
<% else -%>
|
28
|
+
<%%= form.label :<%= attribute.column_name %>, style: "display: block" %>
|
29
|
+
<%%= form.<%= attribute.field_type %> :<%= attribute.column_name %> %>
|
30
|
+
<% end -%>
|
31
|
+
</div>
|
32
|
+
|
33
|
+
<% end -%>
|
34
|
+
<div>
|
35
|
+
<%%= form.submit %>
|
36
|
+
</div>
|
37
|
+
<%% end %>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<%% content_for :title, "Editing <%= human_name.downcase %>" %>
|
2
|
+
|
3
|
+
<h1>Editing <%= human_name.downcase %></h1>
|
4
|
+
|
5
|
+
<%%= render "form", <%= singular_table_name %>: @<%= singular_table_name %> %>
|
6
|
+
|
7
|
+
<br>
|
8
|
+
|
9
|
+
<div>
|
10
|
+
<%%= link_to "Show this <%= human_name.downcase %>", <%= model_resource_name(prefix: "@") %> %> |
|
11
|
+
<%%= link_to "Back to <%= human_name.pluralize.downcase %>", <%= index_helper(type: :path) %> %>
|
12
|
+
</div>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<p style="color: green"><%%= notice %></p>
|
2
|
+
|
3
|
+
<%% content_for :title, "<%= human_name.pluralize %>" %>
|
4
|
+
|
5
|
+
<h1><%= human_name.pluralize %></h1>
|
6
|
+
|
7
|
+
<div id="<%= plural_table_name %>">
|
8
|
+
<%% @<%= plural_table_name %>.each do |<%= singular_table_name %>| %>
|
9
|
+
<%%= render '<%= singular_table_name %>', <%= singular_table_name %>: <%= singular_table_name %> %>
|
10
|
+
<p>
|
11
|
+
<%%= link_to "Show this <%= human_name.downcase %>", <%= model_resource_name(singular_table_name) %> %>
|
12
|
+
</p>
|
13
|
+
<%% end %>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
<%%= link_to "New <%= human_name.downcase %>", <%= new_helper(type: :path) %> %>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<%% content_for :title, "New <%= human_name.downcase %>" %>
|
2
|
+
|
3
|
+
<h1>New <%= human_name.downcase %></h1>
|
4
|
+
|
5
|
+
<%%= render "form", <%= singular_table_name %>: @<%= singular_table_name %> %>
|
6
|
+
|
7
|
+
<br>
|
8
|
+
|
9
|
+
<div>
|
10
|
+
<%%= link_to "Back to <%= human_name.pluralize.downcase %>", <%= index_helper(type: :path) %> %>
|
11
|
+
</div>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<div id="<%%= dom_id <%= singular_table_name %> %>">
|
2
|
+
<% attributes.reject(&:password_digest?).each do |attribute| -%>
|
3
|
+
<p>
|
4
|
+
<strong><%= attribute.human_name %>:</strong>
|
5
|
+
<% if attribute.attachment? -%>
|
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
|
+
<% elsif attribute.attachments? -%>
|
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
|
+
<%% end %>
|
11
|
+
<% else -%>
|
12
|
+
<%%= <%= singular_table_name %>.<%= attribute.column_name %> %>
|
13
|
+
<% end -%>
|
14
|
+
</p>
|
15
|
+
|
16
|
+
<% end -%>
|
17
|
+
</div>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<p style="color: green"><%%= notice %></p>
|
2
|
+
|
3
|
+
<%%= render '<%= singular_table_name %>', <%= singular_table_name %>: @<%= singular_table_name %> %>
|
4
|
+
|
5
|
+
<div>
|
6
|
+
<%%= link_to "Edit this <%= human_name.downcase %>", <%= edit_helper(type: :path) %> %> |
|
7
|
+
<%%= link_to "Back to <%= human_name.pluralize.downcase %>", <%= index_helper(type: :path) %> %>
|
8
|
+
|
9
|
+
<%%= button_to "Destroy this <%= human_name.downcase %>", <%= model_resource_name(prefix: "@") %>, method: :delete %>
|
10
|
+
</div>
|
data/lib/rails_age/version.rb
CHANGED
data/lib/rails_age.rb
CHANGED
@@ -8,10 +8,16 @@ 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
12
|
require 'apache_age/entities/vertex'
|
13
|
+
require 'apache_age/entities/node'
|
14
|
+
require 'apache_age/entities/edge'
|
15
|
+
require 'apache_age/node'
|
16
|
+
require 'apache_age/edge'
|
17
|
+
require 'apache_age/validators/expected_node_type'
|
18
|
+
require 'apache_age/validators/unique_node'
|
14
19
|
require 'apache_age/validators/unique_edge'
|
15
20
|
require 'apache_age/validators/unique_vertex'
|
21
|
+
require 'apache_age/types/age_type_factory'
|
16
22
|
require 'apache_age/types/age_type_generator'
|
17
23
|
end
|
data/lib/tasks/config_types.rake
CHANGED
@@ -17,16 +17,16 @@ namespace :apache_age do
|
|
17
17
|
RUBY
|
18
18
|
node_type_content =
|
19
19
|
<<-RUBY
|
20
|
-
require_dependency 'apache_age/
|
20
|
+
require_dependency 'apache_age/node'
|
21
21
|
ActiveModel::Type.register(
|
22
|
-
:
|
22
|
+
:node, ApacheAge::Types::AgeTypeGenerator.create_type_for(ApacheAge::Node)
|
23
23
|
)
|
24
24
|
RUBY
|
25
25
|
edge_type_content =
|
26
26
|
<<-RUBY
|
27
|
-
require_dependency 'apache_age/
|
27
|
+
require_dependency 'apache_age/edge'
|
28
28
|
ActiveModel::Type.register(
|
29
|
-
:edge, ApacheAge::Types::AgeTypeGenerator.create_type_for(ApacheAge::
|
29
|
+
:edge, ApacheAge::Types::AgeTypeGenerator.create_type_for(ApacheAge::Edge)
|
30
30
|
)
|
31
31
|
RUBY
|
32
32
|
|