neo4j-meta_model 0.0.1 → 0.1.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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/README.rdoc +19 -2
  3. data/app/assets/javascripts/meta_model.js.coffee +132 -130
  4. data/app/controllers/neo4j/meta_model/application_controller.rb +14 -0
  5. data/app/controllers/neo4j/meta_model/meta/has_associations_controller.rb +46 -0
  6. data/app/controllers/neo4j/meta_model/meta/models_controller.rb +82 -0
  7. data/app/controllers/neo4j/meta_model/meta/properties_controller.rb +38 -0
  8. data/app/controllers/neo4j/meta_model/meta_controller.rb +9 -0
  9. data/app/controllers/neo4j/meta_model/models_controller.rb +71 -0
  10. data/app/helpers/neo4j/meta_model/application_helper.rb +12 -0
  11. data/app/helpers/neo4j/meta_model/model_helper.rb +12 -0
  12. data/app/models/concerns/neo4j/meta_model/model_base.rb +45 -0
  13. data/app/models/neo4j/meta_model/has_association.rb +48 -0
  14. data/app/models/neo4j/meta_model/meta_model_base.rb +9 -0
  15. data/app/models/neo4j/meta_model/model.rb +53 -0
  16. data/app/models/neo4j/meta_model/property.rb +13 -0
  17. data/app/serializers/neo4j/meta_model/has_association_serializer.rb +15 -0
  18. data/app/serializers/neo4j/meta_model/model_serializer.rb +13 -0
  19. data/app/serializers/neo4j/meta_model/property_serializer.rb +8 -0
  20. data/app/views/{meta_model → neo4j/meta_model}/meta/associations/index.html.slim +0 -0
  21. data/app/views/{meta_model → neo4j/meta_model}/meta/index.html.slim +0 -0
  22. data/app/views/{meta_model → neo4j/meta_model}/meta/models/edit.html.slim +0 -0
  23. data/app/views/{meta_model → neo4j/meta_model}/models/_form.html.slim +16 -8
  24. data/app/views/{meta_model → neo4j/meta_model}/models/_has_many_association.html.slim +0 -0
  25. data/app/views/{meta_model → neo4j/meta_model}/models/_record_details.html.slim +0 -0
  26. data/app/views/{meta_model → neo4j/meta_model}/models/edit.html.slim +0 -0
  27. data/app/views/{meta_model → neo4j/meta_model}/models/index.html.slim +0 -0
  28. data/app/views/{meta_model → neo4j/meta_model}/models/meta_index.html.slim +0 -0
  29. data/app/views/{meta_model → neo4j/meta_model}/models/new.html.slim +0 -0
  30. data/app/views/{meta_model → neo4j/meta_model}/models/show.html.slim +0 -0
  31. data/config/routes.rb +1 -1
  32. data/lib/meta_models.rb +9 -7
  33. data/lib/neo4j/meta_model.rb +6 -0
  34. data/lib/neo4j/meta_model/engine.rb +25 -0
  35. data/lib/neo4j/meta_model/version.rb +5 -0
  36. data/test/dummy/config/application.rb +1 -1
  37. metadata +31 -31
  38. data/app/controllers/meta_model/application_controller.rb +0 -12
  39. data/app/controllers/meta_model/meta/has_associations_controller.rb +0 -44
  40. data/app/controllers/meta_model/meta/models_controller.rb +0 -80
  41. data/app/controllers/meta_model/meta/properties_controller.rb +0 -36
  42. data/app/controllers/meta_model/meta_controller.rb +0 -7
  43. data/app/controllers/meta_model/models_controller.rb +0 -69
  44. data/app/helpers/meta_model/application_helper.rb +0 -10
  45. data/app/helpers/meta_model/model_helper.rb +0 -10
  46. data/app/models/concerns/meta_model/model_base.rb +0 -43
  47. data/app/models/meta_model/has_association.rb +0 -46
  48. data/app/models/meta_model/meta_model_base.rb +0 -7
  49. data/app/models/meta_model/model.rb +0 -51
  50. data/app/models/meta_model/property.rb +0 -11
  51. data/app/serializers/meta_model/has_association_serializer.rb +0 -13
  52. data/app/serializers/meta_model/model_serializer.rb +0 -11
  53. data/app/serializers/meta_model/property_serializer.rb +0 -6
  54. data/lib/meta_model.rb +0 -4
  55. data/lib/meta_model/engine.rb +0 -23
  56. data/lib/meta_model/version.rb +0 -3
@@ -0,0 +1,6 @@
1
+ require "neo4j/meta_model/engine"
2
+
3
+ module Neo4j
4
+ module MetaModel
5
+ end
6
+ end
@@ -0,0 +1,25 @@
1
+ require 'active_model_serializers'
2
+ require 'slim-rails'
3
+ require 'ember-rails'
4
+ require 'emblem/rails'
5
+
6
+ # TODO: Isolate?
7
+ ActiveModel::Serializer.setup do |config|
8
+ config.embed = :ids
9
+ config.embed_in_root = true
10
+ end
11
+
12
+ module Neo4j
13
+ module MetaModel
14
+ class Engine < ::Rails::Engine
15
+ isolate_namespace MetaModel
16
+
17
+ initializer :assets do |config|
18
+ Rails.application.config.assets.precompile += %w( admin/models.js meta_model.js
19
+ meta_model.css )
20
+
21
+ Rails.application.config.assets.paths << "#{Rails.root}/vendor/assets/fonts"
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,5 @@
1
+ module Neo4j
2
+ module MetaModel
3
+ VERSION = "0.1.0"
4
+ end
5
+ end
@@ -3,7 +3,7 @@ require File.expand_path('../boot', __FILE__)
3
3
  require 'rails/all'
4
4
 
5
5
  Bundler.require(*Rails.groups)
6
- require "meta_model"
6
+ require "neo4j/meta_model"
7
7
 
8
8
  module MetaModel
9
9
  class Application < Rails::Application
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neo4j-meta_model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Underwood
@@ -131,41 +131,41 @@ files:
131
131
  - app/assets/javascripts/templates/models/edit.emblem
132
132
  - app/assets/javascripts/templates/models/hierarchy.emblem
133
133
  - app/assets/stylesheets/meta_model.css.scss
134
- - app/controllers/meta_model/application_controller.rb
135
- - app/controllers/meta_model/meta/has_associations_controller.rb
136
- - app/controllers/meta_model/meta/models_controller.rb
137
- - app/controllers/meta_model/meta/properties_controller.rb
138
- - app/controllers/meta_model/meta_controller.rb
139
- - app/controllers/meta_model/models_controller.rb
140
- - app/helpers/meta_model/application_helper.rb
141
- - app/helpers/meta_model/model_helper.rb
142
- - app/models/concerns/meta_model/model_base.rb
143
- - app/models/meta_model/has_association.rb
144
- - app/models/meta_model/meta_model_base.rb
145
- - app/models/meta_model/model.rb
146
- - app/models/meta_model/property.rb
147
- - app/serializers/meta_model/has_association_serializer.rb
148
- - app/serializers/meta_model/model_serializer.rb
149
- - app/serializers/meta_model/property_serializer.rb
134
+ - app/controllers/neo4j/meta_model/application_controller.rb
135
+ - app/controllers/neo4j/meta_model/meta/has_associations_controller.rb
136
+ - app/controllers/neo4j/meta_model/meta/models_controller.rb
137
+ - app/controllers/neo4j/meta_model/meta/properties_controller.rb
138
+ - app/controllers/neo4j/meta_model/meta_controller.rb
139
+ - app/controllers/neo4j/meta_model/models_controller.rb
140
+ - app/helpers/neo4j/meta_model/application_helper.rb
141
+ - app/helpers/neo4j/meta_model/model_helper.rb
142
+ - app/models/concerns/neo4j/meta_model/model_base.rb
143
+ - app/models/neo4j/meta_model/has_association.rb
144
+ - app/models/neo4j/meta_model/meta_model_base.rb
145
+ - app/models/neo4j/meta_model/model.rb
146
+ - app/models/neo4j/meta_model/property.rb
147
+ - app/serializers/neo4j/meta_model/has_association_serializer.rb
148
+ - app/serializers/neo4j/meta_model/model_serializer.rb
149
+ - app/serializers/neo4j/meta_model/property_serializer.rb
150
150
  - app/views/layouts/meta_model.html.slim
151
- - app/views/meta_model/meta/associations/index.html.slim
152
- - app/views/meta_model/meta/index.html.slim
153
- - app/views/meta_model/meta/models/edit.html.slim
154
- - app/views/meta_model/models/_form.html.slim
155
- - app/views/meta_model/models/_has_many_association.html.slim
156
- - app/views/meta_model/models/_record_details.html.slim
157
- - app/views/meta_model/models/edit.html.slim
158
- - app/views/meta_model/models/index.html.slim
159
- - app/views/meta_model/models/meta_index.html.slim
160
- - app/views/meta_model/models/new.html.slim
161
- - app/views/meta_model/models/show.html.slim
151
+ - app/views/neo4j/meta_model/meta/associations/index.html.slim
152
+ - app/views/neo4j/meta_model/meta/index.html.slim
153
+ - app/views/neo4j/meta_model/meta/models/edit.html.slim
154
+ - app/views/neo4j/meta_model/models/_form.html.slim
155
+ - app/views/neo4j/meta_model/models/_has_many_association.html.slim
156
+ - app/views/neo4j/meta_model/models/_record_details.html.slim
157
+ - app/views/neo4j/meta_model/models/edit.html.slim
158
+ - app/views/neo4j/meta_model/models/index.html.slim
159
+ - app/views/neo4j/meta_model/models/meta_index.html.slim
160
+ - app/views/neo4j/meta_model/models/new.html.slim
161
+ - app/views/neo4j/meta_model/models/show.html.slim
162
162
  - config/initializers/active_model_serializer.rb
163
163
  - config/routes.rb
164
164
  - lib/ext/hash.rb
165
- - lib/meta_model.rb
166
- - lib/meta_model/engine.rb
167
- - lib/meta_model/version.rb
168
165
  - lib/meta_models.rb
166
+ - lib/neo4j/meta_model.rb
167
+ - lib/neo4j/meta_model/engine.rb
168
+ - lib/neo4j/meta_model/version.rb
169
169
  - lib/tasks/meta_model_tasks.rake
170
170
  - test/dummy/README.rdoc
171
171
  - test/dummy/Rakefile
@@ -1,12 +0,0 @@
1
- require 'meta_models.rb'
2
- create_models
3
-
4
- module MetaModel
5
- class ApplicationController < ::ApplicationController
6
- protect_from_forgery with: :exception
7
-
8
- helper MetaModel::Engine.helpers
9
-
10
- layout 'layouts/meta_model'
11
- end
12
- end
@@ -1,44 +0,0 @@
1
- module MetaModel
2
- module Meta
3
- class HasAssociationsController < ApplicationController
4
- before_action :get_has_association, only: [:edit, :show, :update, :destroy]
5
-
6
- def index
7
- render json: HasAssociation.all
8
- end
9
-
10
- def show
11
- respond_to do |format|
12
- format.json { render json: @has_association }
13
- end
14
- end
15
-
16
- def create
17
- has_association = HasAssociation.create(has_association_params)
18
-
19
- create_models
20
-
21
- render json: has_association
22
- end
23
-
24
- def destroy
25
- @has_association.destroy
26
-
27
- create_models
28
-
29
- render json: nil
30
- end
31
-
32
-
33
- private
34
-
35
- def get_has_association
36
- @has_association = HasAssociation.find(params[:id])
37
- end
38
-
39
- def has_association_params
40
- params.require(:has_association).permit(:join_type, :name, :opposite_name, :relationship_type, :from_model_id, :to_model_id)
41
- end
42
- end
43
- end
44
- end
@@ -1,80 +0,0 @@
1
- module MetaModel
2
- module Meta
3
- class ModelsController < ApplicationController
4
- before_action :get_model, only: [:edit, :show, :update, :destroy]
5
-
6
- def index
7
- respond_to do |format|
8
- format.html { @hierarchy = Model.all.hierarchically }
9
- format.json { render json: Model.all }
10
- end
11
- end
12
-
13
- def hierarchy
14
- respond_to do |format|
15
- format.json { render json: Model.all.hierarchically }
16
- end
17
- end
18
-
19
- def show
20
- respond_to do |format|
21
- format.json do
22
- render json: @model
23
- end
24
- end
25
- end
26
-
27
- def edit
28
- @models = Model.all.order(:name)
29
- end
30
-
31
- def create
32
- model = Model.create(model_params)
33
-
34
- create_models
35
-
36
- render json: model
37
- end
38
-
39
- def update
40
- model_params.each do |key, value|
41
- @model.send("#{key}=", value)
42
- end
43
- @model.save
44
-
45
- create_models
46
-
47
- render json: @model
48
- end
49
-
50
- def destroy
51
- @model.destroy
52
-
53
- create_models
54
-
55
- render json: nil
56
- end
57
-
58
- private
59
-
60
- def get_model
61
- @model = if model_param_class_name
62
- Model.where(class_name: model_param_class_name).first
63
- end || Model.find(params[:id])
64
- end
65
-
66
- def model_param_class_name
67
- if params[:id]
68
- @model_param_class_name ||= params[:id].classify
69
- end
70
- rescue NameError
71
- end
72
-
73
- def model_params
74
- superclass_model = params[:model].delete(:superclass_model_id)
75
- params.require(:model).permit(:class_name, :superclass_model).merge(superclass_model: superclass_model)
76
- end
77
- end
78
- end
79
- end
80
-
@@ -1,36 +0,0 @@
1
- module MetaModel
2
- module Meta
3
- class PropertiesController < ApplicationController
4
- before_action :get_property, only: [:edit, :show, :update, :destroy]
5
-
6
- def destroy
7
- @property.destroy
8
-
9
- render json: nil
10
- end
11
-
12
- def create
13
- property = Property.create(property_params)
14
-
15
- render json: property
16
- end
17
-
18
- def update
19
- @property.update_attributes(property_params)
20
-
21
- render json: @property
22
- end
23
-
24
- private
25
-
26
- def get_property
27
- @property = Property.find(params[:id])
28
- end
29
-
30
- def property_params
31
- model = params[:property].delete(:model_id)
32
- params.require(:property).permit(:name, :type).merge(model: model)
33
- end
34
- end
35
- end
36
- end
@@ -1,7 +0,0 @@
1
- module MetaModel
2
- class MetaController < ApplicationController
3
- def index
4
-
5
- end
6
- end
7
- end
@@ -1,69 +0,0 @@
1
- module MetaModel
2
- class ModelsController < MetaModel::ApplicationController
3
- before_action :get_model
4
- before_action :get_meta_model
5
- before_action :get_record, only: [:show, :edit, :update]
6
-
7
- layout 'layouts/meta_model'
8
- def meta_index
9
- @hierarchy = Model.order(:class_name).hierarchically
10
- end
11
-
12
- def index
13
- @records = @model.all.to_a
14
- respond_to do |format|
15
- format.html
16
- format.json { render json: @records, root: :records }
17
- end
18
- end
19
-
20
- def show
21
- end
22
-
23
- def edit
24
- end
25
-
26
- def update
27
- @record.update_attributes(params[:data])
28
-
29
- redirect_to action: :show
30
- end
31
-
32
- def new
33
- @record = @model.new
34
- end
35
-
36
- def create
37
- record = @model.create(params[:data])
38
-
39
- redirect_to action: :show, id: record.id
40
- end
41
-
42
- def destroy
43
- @record.destroy
44
-
45
- redirect_to action: :index, model: params[:model]
46
- end
47
-
48
- private
49
-
50
- def get_record
51
- @record = @model.find(params[:id])
52
- end
53
-
54
- def get_meta_model
55
- @meta_model = Model.where(class_name: model_param_class_name).first if model_param_class_name
56
- end
57
-
58
- def get_model
59
- @model = "MetaModel::#{model_param_class_name}".constantize if model_param_class_name
60
- end
61
-
62
- def model_param_class_name
63
- if params[:model]
64
- @model_param_class_name ||= params[:model].classify
65
- end
66
- end
67
- end
68
-
69
- end
@@ -1,10 +0,0 @@
1
- module MetaModel
2
- module ApplicationHelper
3
- def action_and_controller_javascript_include_tag
4
- capture do
5
- concat javascript_include_tag controller_path if Rails.root.join("app/assets/javascripts/#{controller_path}.js.coffee").exist?
6
- concat javascript_include_tag "#{controller_path}/#{action_name}" if Rails.root.join("app/assets/javascripts/#{controller_path}/#{action_name}.js.coffee").exist?
7
- end
8
- end
9
- end
10
- end
@@ -1,10 +0,0 @@
1
- module MetaModel
2
- module ModelHelper
3
- def hierarchical_render(hierarchy, level = 0, &block)
4
- hierarchy.each do |object, sub_hierarchy|
5
- block.call object, level
6
- hierarchical_render(sub_hierarchy, level + 1, &block)
7
- end
8
- end
9
- end
10
- end
@@ -1,43 +0,0 @@
1
- module MetaModel
2
- module ModelBase
3
- extend ActiveSupport::Concern
4
-
5
- LOADED_CLASSES = []
6
- included do |base|
7
- LOADED_CLASSES << self
8
- end
9
-
10
- module ClassMethods
11
- def inherited(base)
12
- LOADED_CLASSES << base
13
- end
14
-
15
- def meta_model_class
16
- name.gsub(/^MetaModel::/, '')
17
- end
18
-
19
- def naming_column
20
- # Probably want to allow the user to choose this
21
- MetaModel::Model.where(class_name: meta_model_class).first.properties.detect {|p| p.type == 'String' }.name
22
- end
23
- end
24
-
25
- def naming_column_value
26
- self.read_attribute(self.class.naming_column)
27
- end
28
-
29
- def meta_model_class
30
- self.class.meta_model_class
31
- end
32
-
33
- def association_values
34
- self.class.associations.each_with_object({}) do |(key, _), result|
35
- result[key] = self.send(key)
36
- end
37
- end
38
-
39
- def _description
40
- self.try(:name) || self.try(:name) || self.try(:description) || self.id
41
- end
42
- end
43
- end