faalis 2.0.0.rc5 → 2.0.0.rc6
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.
- checksums.yaml +4 -4
- data/Rakefile +20 -0
- data/lib/faalis/dashboard/sections/resource.rb +4 -0
- data/lib/faalis/dashboard/sections/resource_create.rb +25 -4
- data/lib/faalis/dashboard/sections/resource_destroy.rb +10 -1
- data/lib/faalis/dashboard/sections/resource_show.rb +7 -2
- data/lib/faalis/dashboard/sections/resources_index.rb +6 -1
- data/lib/faalis/version.rb +1 -1
- data/lib/generators/faalis/install_generator.rb +6 -1
- data/lib/generators/faalis/views_generator.rb +43 -29
- data/spec/generators/install_spec.rb +2 -0
- metadata +47 -106
- data/lib/generators/faalis/angularjs_resource_generator.rb +0 -74
- data/lib/generators/faalis/install_specs_generator.rb +0 -48
- data/lib/generators/faalis/js/install_i18n_generator.rb +0 -47
- data/lib/generators/faalis/js/list_view_generator.rb +0 -95
- data/lib/generators/faalis/scaffold_generator.rb +0 -215
- data/spec/dummy/db/migrate/20151210221051_devise_create_faalis_users.faalis.rb +0 -63
- data/spec/dummy/db/migrate/20151210221052_create_faalis_groups.faalis.rb +0 -13
- data/spec/dummy/db/migrate/20151210221053_create_faalis_permissions.faalis.rb +0 -13
- data/spec/dummy/db/migrate/20151210221054_add_permissions_groups_table.faalis.rb +0 -9
- data/spec/dummy/db/migrate/20151210221055_add_users_groups_table.faalis.rb +0 -9
- data/spec/dummy/db/migrate/20151210221056_add_uniqueness_index_to_users_groups.faalis.rb +0 -12
- data/spec/dummy/db/migrate/20151210221057_create_application_models.model_discovery_engine.rb +0 -10
- data/spec/dummy/db/schema.rb +0 -70
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/test.log +0 -3922
- data/spec/dummy/tmp/Gemfile +0 -2
- data/spec/dummy/tmp/app/assets/javascripts/dashboard/application.js +0 -19
- data/spec/dummy/tmp/app/assets/stylesheets/dashboard/ltr/application.css +0 -3
- data/spec/dummy/tmp/app/assets/stylesheets/dashboard/rtl/application.css +0 -3
- data/spec/dummy/tmp/app/assets/stylesheets/ltr/application.css +0 -3
- data/spec/dummy/tmp/app/assets/stylesheets/rtl/application.css +0 -3
- data/spec/dummy/tmp/app/controllers/api_controller.rb +0 -2
- data/spec/dummy/tmp/app/controllers/application_controller.rb +0 -0
- data/spec/dummy/tmp/app/controllers/dashboard/application_controller.rb +0 -18
- data/spec/dummy/tmp/app/policies/application_policy.rb +0 -2
- data/spec/dummy/tmp/config/initializers/assets.rb +0 -1
- data/spec/dummy/tmp/config/initializers/devise.rb +0 -251
- data/spec/dummy/tmp/config/initializers/faalis.rb +0 -12
- data/spec/dummy/tmp/config/initializers/faalis_assets.rb +0 -1
- data/spec/dummy/tmp/config/initializers/formtastic.rb +0 -1
- data/spec/dummy/tmp/config/routes.rb +0 -0
- data/spec/dummy/tmp/db/seeds.rb +0 -1
@@ -1,74 +0,0 @@
|
|
1
|
-
# -----------------------------------------------------------------------------
|
2
|
-
# Faalis - Basic website skel engine
|
3
|
-
# Copyright (C) 2012-2013 Yellowen
|
4
|
-
#
|
5
|
-
# This program is free software; you can redistribute it and/or modify
|
6
|
-
# it under the terms of the GNU General Public License as published by
|
7
|
-
# the Free Software Foundation; either version 2 of the License, or
|
8
|
-
# (at your option) any later version.
|
9
|
-
#
|
10
|
-
# This program is distributed in the hope that it will be useful,
|
11
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
-
# GNU General Public License for more details.
|
14
|
-
#
|
15
|
-
# You should have received a copy of the GNU General Public License along
|
16
|
-
# with this program; if not, write to the Free Software Foundation, Inc.,
|
17
|
-
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
18
|
-
# -----------------------------------------------------------------------------
|
19
|
-
|
20
|
-
module Faalis
|
21
|
-
module Generators
|
22
|
-
class AngularjsResourceGenerator < Rails::Generators::Base
|
23
|
-
source_root File.expand_path('../templates', __FILE__)
|
24
|
-
|
25
|
-
argument :resource_name, :type => :string, :required => true
|
26
|
-
argument :dependencies, type: :array, default: [], banner: "dependencies"
|
27
|
-
|
28
|
-
desc "Create a new resource for angularjs application"
|
29
|
-
def create_module
|
30
|
-
template "angularjs/module.js.erb", "#{angularjs_app_path}modules/#{resource_path}.js"
|
31
|
-
end
|
32
|
-
|
33
|
-
def create_template
|
34
|
-
template "angularjs/index.html.erb", "app/assets/templates/#{resource.underscore}/index.html"
|
35
|
-
end
|
36
|
-
|
37
|
-
private
|
38
|
-
|
39
|
-
def get_dependencies
|
40
|
-
deps = []
|
41
|
-
dependencies.each do |dependency|
|
42
|
-
deps << "'#{dependency.camelize}'"
|
43
|
-
end
|
44
|
-
|
45
|
-
deps.join(", ")
|
46
|
-
end
|
47
|
-
|
48
|
-
def resource_path
|
49
|
-
path_parts = resource_name.split("/")
|
50
|
-
if path_parts.length > 1
|
51
|
-
return "#{path_parts(0..-2).join("/")}/#{path_parts[-1].underscore}"
|
52
|
-
end
|
53
|
-
resource_name.underscore
|
54
|
-
end
|
55
|
-
|
56
|
-
def resource
|
57
|
-
path_parts = resource_name.split("/")
|
58
|
-
if path_parts.length > 1
|
59
|
-
return path_parts[-1].camelize
|
60
|
-
end
|
61
|
-
resource_name.camelize
|
62
|
-
end
|
63
|
-
|
64
|
-
def is_in_engine?
|
65
|
-
false
|
66
|
-
end
|
67
|
-
|
68
|
-
def angularjs_app_path
|
69
|
-
path = Faalis::Engine.dashboard_js_manifest.split("/")[0..-2].join("/")
|
70
|
-
"app/assets/javascripts/#{path}/"
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
# -----------------------------------------------------------------------------
|
2
|
-
# Faalis - Basic website skel engine
|
3
|
-
# Copyright (C) 2012-2013 Yellowen
|
4
|
-
#
|
5
|
-
# This program is free software; you can redistribute it and/or modify
|
6
|
-
# it under the terms of the GNU General Public License as published by
|
7
|
-
# the Free Software Foundation; either version 2 of the License, or
|
8
|
-
# (at your option) any later version.
|
9
|
-
#
|
10
|
-
# This program is distributed in the hope that it will be useful,
|
11
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
-
# GNU General Public License for more details.
|
14
|
-
#
|
15
|
-
# You should have received a copy of the GNU General Public License along
|
16
|
-
# with this program; if not, write to the Free Software Foundation, Inc.,
|
17
|
-
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
18
|
-
# -----------------------------------------------------------------------------
|
19
|
-
|
20
|
-
module Faalis
|
21
|
-
module Generators
|
22
|
-
class InstallSpecsGenerator < Rails::Generators::Base
|
23
|
-
source_root File.expand_path('../templates', __FILE__)
|
24
|
-
|
25
|
-
desc "Copy all the necessary files to install and use specs"
|
26
|
-
|
27
|
-
def install_gems
|
28
|
-
invoke "rspec:install"
|
29
|
-
invoke "cucumber:install", ["--capybara", "--rspec"]
|
30
|
-
end
|
31
|
-
|
32
|
-
def update_configurations
|
33
|
-
copy_file "features/step_definitions/email_steps.rb", "features/step_definitions/email_steps.rb"
|
34
|
-
copy_file "features/support/env.rb", "features/support/env.rb"
|
35
|
-
copy_file "spec/factories/groups.rb", "spec/factories/groups.rb"
|
36
|
-
copy_file "spec/factories/users.rb", "spec/factories/users.rb"
|
37
|
-
copy_file "spec/spec_helper.rb", "spec/spec_helper.rb"
|
38
|
-
copy_file "spec/support/devise.rb", "spec/support/devise.rb"
|
39
|
-
end
|
40
|
-
|
41
|
-
def show_readme
|
42
|
-
readme "SPECS" if behavior == :invoke
|
43
|
-
end
|
44
|
-
|
45
|
-
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
# -----------------------------------------------------------------------------
|
2
|
-
# Faalis - Basic website skel engine
|
3
|
-
# Copyright (C) 2012-2013 Yellowen
|
4
|
-
#
|
5
|
-
# This program is free software; you can redistribute it and/or modify
|
6
|
-
# it under the terms of the GNU General Public License as published by
|
7
|
-
# the Free Software Foundation; either version 2 of the License, or
|
8
|
-
# (at your option) any later version.
|
9
|
-
#
|
10
|
-
# This program is distributed in the hope that it will be useful,
|
11
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
-
# GNU General Public License for more details.
|
14
|
-
#
|
15
|
-
# You should have received a copy of the GNU General Public License along
|
16
|
-
# with this program; if not, write to the Free Software Foundation, Inc.,
|
17
|
-
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
18
|
-
# -----------------------------------------------------------------------------
|
19
|
-
|
20
|
-
module Faalis
|
21
|
-
module Generators
|
22
|
-
module Js
|
23
|
-
# Generator responsible for `install_i18n` generator
|
24
|
-
class InstallI18nGenerator < Rails::Generators::Base
|
25
|
-
source_root File.expand_path('../../templates/', __FILE__)
|
26
|
-
|
27
|
-
desc 'Copy all the necessary files to use Faalis client side i18n'
|
28
|
-
|
29
|
-
def copy_init_files
|
30
|
-
template 'i18n/Gruntfile.js.erb', 'lib/tasks/grunt/Gruntfile.js'
|
31
|
-
copy_file 'i18n/fa.js', 'app/assets/javascripts/locales/fa.js'
|
32
|
-
end
|
33
|
-
|
34
|
-
def show_readme
|
35
|
-
readme 'i18n/README' if behavior == :invoke
|
36
|
-
end
|
37
|
-
|
38
|
-
private
|
39
|
-
|
40
|
-
def angularjs_app_path
|
41
|
-
path = Faalis::Engine.dashboard_js_manifest.split('/')[0..-2].join('/')
|
42
|
-
"app/assets/javascripts/#{path}/"
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
@@ -1,95 +0,0 @@
|
|
1
|
-
module Faalis
|
2
|
-
module Generators
|
3
|
-
module Js
|
4
|
-
# `faalis:js:list_view` scaffold generator class
|
5
|
-
class ListViewGenerator < Faalis::Generators::DashboardScaffold
|
6
|
-
|
7
|
-
# templates path
|
8
|
-
source_root File.expand_path('../../templates', __FILE__)
|
9
|
-
|
10
|
-
# Field name to use as title of each object
|
11
|
-
class_option :title_field, :type => :string, :default => "name", :desc => "Field name to use as title of each object"
|
12
|
-
|
13
|
-
# Don't copy the new.html template
|
14
|
-
class_option :no_new_template, :type => :boolean, :default => false, :desc => "Don't copy the new.html template"
|
15
|
-
|
16
|
-
desc "Create a new resource for client side application"
|
17
|
-
def create_module
|
18
|
-
unless options[:only_controller]
|
19
|
-
unless options[:only_specs]
|
20
|
-
template "js/list_view/module.js.erb", "#{angularjs_app_path}modules/#{resource_path}.js"
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def create_template
|
26
|
-
unless options[:only_controller]
|
27
|
-
unless options[:only_specs]
|
28
|
-
template "js/list_view/index.html.erb", "app/views/angular/#{resource.underscore}/index.html"
|
29
|
-
unless options[:no_new_template]
|
30
|
-
template "js/list_view/new.html.erb", "app/views/angular/#{resource.underscore}/new.html"
|
31
|
-
end
|
32
|
-
template "js/list_view/details.html.erb", "app/views/angular/#{resource.underscore}/details.html"
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
unless options[:only_specs]
|
37
|
-
template "views/index.json.jbuilder.erb", "app/views/api/v1/#{resource.pluralize.underscore}/index.json.jbuilder"
|
38
|
-
template "views/show.json.jbuilder.erb", "app/views/api/v1/#{resource.pluralize.underscore}/show.json.jbuilder"
|
39
|
-
template "views/create.json.jbuilder.erb", "app/views/api/v1/#{resource.pluralize.underscore}/create.json.jbuilder"
|
40
|
-
template "views/destroy.json.jbuilder.erb", "app/views/api/v1/#{resource.pluralize.underscore}/destroy.json.jbuilder"
|
41
|
-
template "views/update.json.jbuilder.erb", "app/views/api/v1/#{resource.pluralize.underscore}/update.json.jbuilder"
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def create_api
|
46
|
-
unless options[:only_specs]
|
47
|
-
template "api/controller.rb.erb", "app/controllers/api/v1/#{resource.pluralize.underscore}_controller.rb"
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def create_policy
|
52
|
-
template "policy/policy.rb.erb", "app/policies/#{resource.underscore}_policy.rb"
|
53
|
-
end
|
54
|
-
|
55
|
-
def create_specs
|
56
|
-
unless options[:without_specs]
|
57
|
-
template "features/api.feature", "features/#{resource.underscore}.api.feature"
|
58
|
-
template "features/api.step.rb", "features/step_definitions/#{resource.underscore}.rb"
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
def show_readme
|
63
|
-
readme "js/list_view/README" if behavior == :invoke
|
64
|
-
end
|
65
|
-
|
66
|
-
# PRIVATES --------------------------------------------
|
67
|
-
private
|
68
|
-
|
69
|
-
def is_in_engine?
|
70
|
-
false
|
71
|
-
end
|
72
|
-
|
73
|
-
def random_json_data
|
74
|
-
data = {}
|
75
|
-
fields.each do |field, type|
|
76
|
-
case type
|
77
|
-
when "belongs_to"
|
78
|
-
data["#{field}_id"] = 1
|
79
|
-
when "integer"
|
80
|
-
data[field] = 1+ rand(1000)
|
81
|
-
else
|
82
|
-
data[field] = random_string
|
83
|
-
end
|
84
|
-
end
|
85
|
-
data.to_json.to_s
|
86
|
-
end
|
87
|
-
|
88
|
-
def random_string
|
89
|
-
o = [('a'..'z'), ('A'..'Z')].map { |i| i.to_a }.flatten
|
90
|
-
(0...50).map{ o[rand(o.length)] }.join
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
@@ -1,215 +0,0 @@
|
|
1
|
-
# -----------------------------------------------------------------------------
|
2
|
-
# Faalis - Basic website skel engine
|
3
|
-
# Copyright (C) 2012-2015 Yellowen
|
4
|
-
#
|
5
|
-
# This program is free software; you can redistribute it and/or modify
|
6
|
-
# it under the terms of the GNU General Public License as published by
|
7
|
-
# the Free Software Foundation; either version 2 of the License, or
|
8
|
-
# (at your option) any later version.
|
9
|
-
#
|
10
|
-
# This program is distributed in the hope that it will be useful,
|
11
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
-
# GNU General Public License for more details.
|
14
|
-
#
|
15
|
-
# You should have received a copy of the GNU General Public License along
|
16
|
-
# with this program; if not, write to the Free Software Foundation, Inc.,
|
17
|
-
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
18
|
-
# -----------------------------------------------------------------------------
|
19
|
-
|
20
|
-
module Faalis
|
21
|
-
module Generators
|
22
|
-
# Generator Full Faalis scaffold with dashboard
|
23
|
-
class ScaffoldGenerator < Rails::Generators::Base
|
24
|
-
include Faalis::Generators::Concerns::RequireFields
|
25
|
-
include Faalis::Generators::Concerns::Parent
|
26
|
-
include Faalis::Generators::Concerns::Child
|
27
|
-
include Faalis::Generators::Concerns::InputFile
|
28
|
-
include Faalis::Generators::Concerns::ResourceName
|
29
|
-
include Faalis::Generators::Concerns::ResourceFields
|
30
|
-
include Faalis::Generators::Concerns::Globalize
|
31
|
-
|
32
|
-
|
33
|
-
desc 'Create full faalis full scaffold'
|
34
|
-
# FIXME: These options should have :desc or even default
|
35
|
-
# value
|
36
|
-
class_option :no_model, :type => :boolean
|
37
|
-
class_option :no_route, :type => :boolean
|
38
|
-
class_option :no_controller, :type => :boolean
|
39
|
-
class_option :no_migration, :type => :boolean
|
40
|
-
class_option :no_asset, :type => :boolean
|
41
|
-
|
42
|
-
# This method will create full scaffold based on user options
|
43
|
-
def create_scaffold
|
44
|
-
if options.empty?
|
45
|
-
# TODO: ....
|
46
|
-
end
|
47
|
-
# TODO: Show error if in class_option migration is selected by model not
|
48
|
-
create_model unless options[:no_model]
|
49
|
-
create_route unless options[:no_route]
|
50
|
-
create_controller unless options[:no_controller]
|
51
|
-
create_list_view
|
52
|
-
end
|
53
|
-
|
54
|
-
private
|
55
|
-
|
56
|
-
# Create a dedicated controller,
|
57
|
-
def create_controller
|
58
|
-
if options[:no_asset]
|
59
|
-
`rails g scaffold_controller #{resource_data["name"]} #{all_fields}--assets=false`
|
60
|
-
else
|
61
|
-
`rails g scaffold_controller #{resource_data["name"]} #{all_fields}`
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
# Create route of the scaffold in config/routes.rb
|
66
|
-
def create_route
|
67
|
-
route "resources :#{resource_data["name"].pluralize}"
|
68
|
-
end
|
69
|
-
|
70
|
-
# Create model of the scaffold with belongs_to support
|
71
|
-
# It does not support has_many relation yet
|
72
|
-
def create_model
|
73
|
-
|
74
|
-
# Load all globalize field and create a string to adding in model
|
75
|
-
globalizes = "\n translates "+
|
76
|
-
globalize_fields.map { |field | ":#{field['name'].underscore}" }.join(", ")
|
77
|
-
invoke('active_record:model', [resource_data['name'].singularize.underscore, all_fields.split(' ')], {
|
78
|
-
migration: !options[:no_migragtion], timestamps: true
|
79
|
-
})
|
80
|
-
if globalize_fields.any?
|
81
|
-
create_globalize_migration
|
82
|
-
end
|
83
|
-
|
84
|
-
if File.exist?("app/models/#{resource_data["name"]}.rb")
|
85
|
-
inject_into_file "app/models/#{resource_data["name"].underscore}.rb", after: 'Base' do
|
86
|
-
globalize_fields.empty? ? relations : relations + globalizes
|
87
|
-
end
|
88
|
-
else
|
89
|
-
say_status "error", "Could not find file app/models/#{resource_data["name"].underscore}"
|
90
|
-
end
|
91
|
-
|
92
|
-
end
|
93
|
-
|
94
|
-
#Invoke Faalis list view generator
|
95
|
-
def create_list_view
|
96
|
-
invoke 'faalis:js:list_view', [input_file]
|
97
|
-
end
|
98
|
-
|
99
|
-
def create_globalize_migration
|
100
|
-
`rails g migration add_globalize_to_#{resource_data["name"].underscore} `
|
101
|
-
Dir["#{Rails.root}/db/migrate/**/*globalize*.rb"].each {|file| require file }
|
102
|
-
klass = "add_globalize_to_#{resource_data['name']}".underscore.camelize
|
103
|
-
|
104
|
-
migration_class = "::#{klass}".constantize
|
105
|
-
migration_path = migration_class.instance_method(:change).source_location
|
106
|
-
|
107
|
-
fields = globalize_fields.map { |field | ":#{field['name']} => :#{field['type']}" }.join(", ")
|
108
|
-
|
109
|
-
inject_into_file migration_path[0], after: 'change' do
|
110
|
-
"\n #{resource_data['name'].camelize}"+
|
111
|
-
'.create_translation_table! '+
|
112
|
-
fields
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
def create_images
|
117
|
-
fields.each do |name, type|
|
118
|
-
if type == 'image'
|
119
|
-
generate "paperclicp #{resource_data['name']} #{name}"
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
|
-
def create_tags
|
125
|
-
fields.each do |name, type|
|
126
|
-
if type == 'image'
|
127
|
-
rake "rake acts_as_taggable_on_engine:install:migrations"
|
128
|
-
end
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
|
-
# Create string of all relations that needs in models
|
133
|
-
def relations
|
134
|
-
relations = "\n"
|
135
|
-
|
136
|
-
fields.each do |name, type, to|
|
137
|
-
case type
|
138
|
-
when 'belongs_to'
|
139
|
-
if to.singularize != name
|
140
|
-
relations << " belongs_to :#{name.singularize},
|
141
|
-
:class_name => \"#{to.singularize.camelize}\"\n"
|
142
|
-
else
|
143
|
-
relations << " belongs_to :#{to.singularize}\n"
|
144
|
-
end
|
145
|
-
|
146
|
-
when 'image'
|
147
|
-
relations << "
|
148
|
-
attr_accessor :image_data\n
|
149
|
-
before_create :randomize_file_name\n
|
150
|
-
has_attached_file :#{name}\n
|
151
|
-
content_type: %w(image/jpeg image/jpg image/png),
|
152
|
-
validates_attachment_content_type :#{name},
|
153
|
-
less_than: 1.megabytes\n
|
154
|
-
"
|
155
|
-
# TODO: randomize_file_name method should be added
|
156
|
-
when 'tag'
|
157
|
-
relations << " acts_as_taggable_on :#{name}\n"
|
158
|
-
|
159
|
-
when 'has_and_belongs_to_many'
|
160
|
-
relations << " has_and_belongs_to_many :#{to.pluralize}\n"
|
161
|
-
say_status 'warn', "There is a many to many relation between #{resource_data['name']} and #{to},
|
162
|
-
You should create it manually in model files"
|
163
|
-
|
164
|
-
when 'has_many'
|
165
|
-
relations << " has_many :#{to.pluralize}\n"
|
166
|
-
say_status 'warn', "There is a many to many relation between #{resource_data['name']} and #{to},
|
167
|
-
You should create it manually in model files"
|
168
|
-
end
|
169
|
-
end
|
170
|
-
|
171
|
-
if parent?
|
172
|
-
parents.each do |parent|
|
173
|
-
relations << " belongs_to :#{parent.singularize}\n"
|
174
|
-
end
|
175
|
-
end
|
176
|
-
|
177
|
-
childs.each do |child|
|
178
|
-
relations << " has_many :#{child.pluralize}\n"
|
179
|
-
end
|
180
|
-
return relations
|
181
|
-
end
|
182
|
-
|
183
|
-
# It will extract name and types of all fields
|
184
|
-
# And will return it as supported format for scaffold_controller
|
185
|
-
def all_fields
|
186
|
-
result = []
|
187
|
-
fields.each do |name, type, to|
|
188
|
-
case type
|
189
|
-
when 'belongs_to'
|
190
|
-
name_ = "#{name.singularize}_id"
|
191
|
-
result << [name_, 'integer']
|
192
|
-
|
193
|
-
when 'text', 'integer', 'string', 'boolean', 'datetime', 'time', 'date', 'float'
|
194
|
-
result << [name, type]
|
195
|
-
|
196
|
-
when 'tag', 'in'
|
197
|
-
result << [name, 'string']
|
198
|
-
end
|
199
|
-
end
|
200
|
-
|
201
|
-
if parent?
|
202
|
-
parents.each do |parent|
|
203
|
-
result << ["#{parent.singularize}_id", "integer"]
|
204
|
-
end
|
205
|
-
end
|
206
|
-
|
207
|
-
all_fields = []
|
208
|
-
all_fields = result.collect do |x|
|
209
|
-
x.join(':')
|
210
|
-
end
|
211
|
-
return all_fields.join " "
|
212
|
-
end
|
213
|
-
end
|
214
|
-
end
|
215
|
-
end
|