effective_developer 0.0.8 → 0.0.9
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/README.md +31 -9
- data/app/models/effective/code_writer.rb +218 -0
- data/lib/effective_developer/version.rb +1 -1
- data/lib/generators/effective/ability_generator.rb +78 -0
- data/lib/generators/effective/controller_generator.rb +27 -9
- data/lib/generators/effective/datatable_generator.rb +20 -2
- data/lib/generators/effective/form_generator.rb +46 -0
- data/lib/generators/effective/helpers.rb +94 -11
- data/lib/generators/effective/menu_generator.rb +52 -0
- data/lib/generators/effective/migration_generator.rb +16 -2
- data/lib/generators/effective/model_generator.rb +23 -1
- data/lib/generators/effective/route_generator.rb +58 -2
- data/lib/generators/effective/scaffold_controller_generator.rb +51 -0
- data/lib/generators/effective/scaffold_generator.rb +25 -52
- data/lib/generators/effective/views_generator.rb +47 -0
- data/lib/scaffolds/controllers/controller.rb +142 -0
- data/lib/scaffolds/datatables/datatable.rb +18 -0
- data/lib/scaffolds/forms/_form.html.haml +9 -0
- data/lib/{generators/effective_developer/csv_importer.rb.erb → scaffolds/importers/csv_importer.rb} +0 -0
- data/lib/scaffolds/models/model.rb +48 -0
- data/lib/scaffolds/views/_resource.html.haml +7 -0
- data/lib/scaffolds/views/edit.html.haml +3 -0
- data/lib/scaffolds/views/index.html.haml +10 -0
- data/lib/scaffolds/views/new.html.haml +3 -0
- data/lib/scaffolds/views/show.html.haml +3 -0
- data/lib/tasks/effective_csv_importer.rake +1 -1
- metadata +18 -12
- data/app/scaffolds/controllers/controller.rb +0 -13
- data/app/scaffolds/datatables/datatable.rb +0 -14
- data/app/scaffolds/models/model.rb +0 -15
- data/app/scaffolds/views/_form.html.haml +0 -15
- data/app/scaffolds/views/edit.html.haml +0 -7
- data/app/scaffolds/views/index.html.haml +0 -25
- data/app/scaffolds/views/new.html.haml +0 -5
- data/app/scaffolds/views/show.html.haml +0 -11
- data/lib/generators/effective/view_generator.rb +0 -40
@@ -0,0 +1,46 @@
|
|
1
|
+
# rails generate effective:form NAME [field[:type] field[:type]] [options]
|
2
|
+
|
3
|
+
# TODO
|
4
|
+
|
5
|
+
# Generates a form
|
6
|
+
# rails generate effective:form Thing
|
7
|
+
# rails generate effective:form Thing name:string description:text
|
8
|
+
|
9
|
+
module Effective
|
10
|
+
module Generators
|
11
|
+
class FormGenerator < Rails::Generators::NamedBase
|
12
|
+
include Helpers
|
13
|
+
|
14
|
+
source_root File.expand_path(('../' * 4) + 'lib/scaffolds', __FILE__)
|
15
|
+
|
16
|
+
desc 'Creates a _form.html.haml in your app/views/model/ folder.'
|
17
|
+
|
18
|
+
argument :attributes, type: :array, default: [], banner: 'field[:type] field[:type]'
|
19
|
+
|
20
|
+
def assign_attributes
|
21
|
+
@attributes = (invoked_attributes.presence || klass_attributes).map do |attribute|
|
22
|
+
Rails::Generators::GeneratedAttribute.parse(attribute)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def invoke_form
|
27
|
+
say_status :invoke, :form, :white
|
28
|
+
end
|
29
|
+
|
30
|
+
def create_form
|
31
|
+
template 'forms/_form.html.haml', File.join('app/views', namespace_path, (namespace_path.present? ? '' : class_path), plural_name, '_form.html.haml')
|
32
|
+
end
|
33
|
+
|
34
|
+
protected
|
35
|
+
|
36
|
+
def form_for
|
37
|
+
if namespaces.blank?
|
38
|
+
singular_name
|
39
|
+
else
|
40
|
+
'[' + namespaces.map { |ns| ':' + ns }.join(', ') + ', ' + singular_name + ']'
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -4,26 +4,109 @@ module Effective
|
|
4
4
|
|
5
5
|
protected
|
6
6
|
|
7
|
-
def
|
8
|
-
|
9
|
-
_attributes.map { |att| "#{att.name}:#{att.type}" }
|
7
|
+
def crud_actions
|
8
|
+
%w(index new create show edit update destroy)
|
10
9
|
end
|
11
10
|
|
11
|
+
# --actions crud another
|
12
|
+
# --actions crud-show another
|
12
13
|
def invoked_actions
|
13
|
-
|
14
|
-
|
14
|
+
actions = (respond_to?(:actions) ? self.actions : options.actions)
|
15
|
+
actions = Array(actions).flat_map { |arg| arg.gsub('[', '').gsub(']', '').split(',') }
|
16
|
+
|
17
|
+
crudish = actions.find { |action| action.start_with?('crud') }
|
15
18
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
+
if crudish
|
20
|
+
actions = crud_actions + (actions - [crudish])
|
21
|
+
crudish.split('-').each { |except| actions.delete(except) }
|
22
|
+
end
|
23
|
+
|
24
|
+
actions
|
25
|
+
end
|
26
|
+
|
27
|
+
def invoked_attributes
|
28
|
+
if respond_to?(:attributes)
|
29
|
+
attributes.map { |att| "#{att.name}:#{att.type}" }
|
19
30
|
else
|
20
|
-
|
31
|
+
Array(options.attributes).compact
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def invoked_attributes_args
|
36
|
+
invoked_attributes.present? ? (['--attributes'] + invoked_attributes) : []
|
37
|
+
end
|
38
|
+
|
39
|
+
def klass_attributes
|
40
|
+
klass = class_name.safe_constantize
|
41
|
+
return [] unless klass
|
42
|
+
|
43
|
+
begin
|
44
|
+
attributes = klass.new().attributes
|
45
|
+
rescue ActiveRecord::StatementInvalid => e
|
46
|
+
pending = ActiveRecord::Migrator.new(:up, ActiveRecord::Migrator.migrations(ActiveRecord::Migrator.migrations_paths)).pending_migrations.present?
|
47
|
+
|
48
|
+
if e.message.include?('PG::UndefinedTable') && pending
|
49
|
+
migrate = ask("Unable to read the attributes of #{class_name}. There are pending migrations. Run db:migrate now? [y/n]")
|
50
|
+
system('bundle exec rake db:migrate') if migrate.to_s.include?('y')
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
begin
|
55
|
+
attributes = klass.new().attributes
|
56
|
+
rescue => e
|
57
|
+
puts "Unable to call #{class_name}.new().attributes. Continuing with empty attributes."
|
58
|
+
return []
|
59
|
+
end
|
60
|
+
|
61
|
+
(attributes.keys - [klass.primary_key, 'created_at', 'updated_at']).map do |attr|
|
62
|
+
"#{attr}:#{klass.column_for_attribute(attr).type || 'string'}"
|
21
63
|
end
|
22
64
|
end
|
23
65
|
|
24
|
-
# Used by model and datatable
|
25
66
|
def parent_class_name
|
26
|
-
options[:parent] || 'ApplicationRecord'
|
67
|
+
options[:parent] || (Rails::VERSION::MAJOR > 4 ? 'ApplicationRecord' : 'ActiveRecord::Base')
|
68
|
+
end
|
69
|
+
|
70
|
+
# We handle this a bit different than the regular scaffolds
|
71
|
+
def assign_names!(name)
|
72
|
+
@class_path = (name.include?('/') ? name[(name.rindex('/')+1)..-1] : name).split('::')
|
73
|
+
@class_path.map!(&:underscore)
|
74
|
+
@class_path[@class_path.length-1] = @class_path.last.singularize # Always singularize
|
75
|
+
@file_name = @class_path.pop
|
76
|
+
end
|
77
|
+
|
78
|
+
def namespaces
|
79
|
+
@namespaces ||= namespace_path.split('/')
|
80
|
+
end
|
81
|
+
|
82
|
+
# admin/effective::things => 'admin'
|
83
|
+
# effective::things => ''
|
84
|
+
def namespace_path
|
85
|
+
name.include?('/') ? name[0...name.rindex('/')] : ''
|
86
|
+
end
|
87
|
+
|
88
|
+
def namespaced_class_name
|
89
|
+
if name.include?('/')
|
90
|
+
name[0...name.rindex('/')].classify + '::' + singular_name.classify.pluralize
|
91
|
+
else
|
92
|
+
singular_name.classify.pluralize
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def index_path
|
97
|
+
[namespace_path.underscore.presence, plural_name].compact.join('_') + '_path'
|
98
|
+
end
|
99
|
+
|
100
|
+
def new_path
|
101
|
+
['new', namespace_path.underscore.presence, singular_name].compact.join('_') + '_path'
|
102
|
+
end
|
103
|
+
|
104
|
+
def edit_path
|
105
|
+
"edit_#{show_path}"
|
106
|
+
end
|
107
|
+
|
108
|
+
def show_path
|
109
|
+
[namespace_path.underscore.presence, singular_name].compact.join('_') + "_path(@#{singular_name})"
|
27
110
|
end
|
28
111
|
|
29
112
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# rails generate effective:menu NAME
|
2
|
+
|
3
|
+
# Adds a menu to namespace/_navbar if present
|
4
|
+
# rails generate effective:menu Thing
|
5
|
+
|
6
|
+
module Effective
|
7
|
+
module Generators
|
8
|
+
class MenuGenerator < Rails::Generators::NamedBase
|
9
|
+
include Helpers
|
10
|
+
|
11
|
+
source_root File.expand_path(('../' * 4) + 'lib/scaffolds', __FILE__)
|
12
|
+
|
13
|
+
desc 'Adds a menu link to an existing _navbar.html.haml'
|
14
|
+
|
15
|
+
def invoke_ability
|
16
|
+
say_status :invoke, :menu, :white
|
17
|
+
end
|
18
|
+
|
19
|
+
def create_menu
|
20
|
+
begin
|
21
|
+
Effective::CodeWriter.new((['app/views'] + namespaces + ['_navbar.html.haml']).join('/')) do |w|
|
22
|
+
if w.find { |line, _| line == content.last.strip }
|
23
|
+
say_status :identical, index_path, :blue
|
24
|
+
else
|
25
|
+
index = w.last { |line, _| line.start_with?('- if can?') }
|
26
|
+
|
27
|
+
if index.blank?
|
28
|
+
say_status(:skipped, :menu, :yellow) and return
|
29
|
+
end
|
30
|
+
|
31
|
+
w.insert_raw(content, index+1, w.depth_at(index))
|
32
|
+
say_status :menu, index_path, :green
|
33
|
+
end
|
34
|
+
end
|
35
|
+
rescue Errno::ENOENT
|
36
|
+
# This will raise an error if the navbar file isn't present
|
37
|
+
say_status :skipped, :menu, :yellow
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def content
|
44
|
+
[
|
45
|
+
"\n",
|
46
|
+
"- if can? :manage, #{class_name}",
|
47
|
+
" %li= link_to '#{plural_name.titleize}', #{index_path}"
|
48
|
+
]
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -1,18 +1,32 @@
|
|
1
1
|
# rails generate effective:migration NAME [field[:type] field[:type]] [options]
|
2
2
|
|
3
|
+
# TODO - read from model dsl
|
4
|
+
|
5
|
+
# Generates a create_* migration
|
6
|
+
# rails generate effective:migration Thing
|
7
|
+
# rails generate effective:migration Thing name:string description:text
|
8
|
+
|
3
9
|
module Effective
|
4
10
|
module Generators
|
5
11
|
class MigrationGenerator < Rails::Generators::NamedBase
|
6
12
|
include Helpers
|
7
13
|
|
8
|
-
source_root File.expand_path(('../' * 4) + '
|
14
|
+
source_root File.expand_path(('../' * 4) + 'lib/scaffolds', __FILE__)
|
9
15
|
|
10
16
|
desc 'Creates a migration.'
|
11
17
|
|
12
18
|
argument :attributes, type: :array, default: [], banner: 'field[:type] field[:type]'
|
13
19
|
|
20
|
+
def invoke_migration
|
21
|
+
say_status :invoke, :migration, :white
|
22
|
+
end
|
23
|
+
|
14
24
|
def create_migration
|
15
|
-
Rails::Generators.invoke('migration', ["create_#{
|
25
|
+
Rails::Generators.invoke('migration', ["create_#{plural_name}"] + invoked_attributes)
|
26
|
+
end
|
27
|
+
|
28
|
+
def invoked_attributes
|
29
|
+
super | ['created_at:datetime', 'updated_at:datetime']
|
16
30
|
end
|
17
31
|
|
18
32
|
end
|
@@ -1,20 +1,42 @@
|
|
1
1
|
# rails generate effective:model NAME [field[:type] field[:type]] [options]
|
2
2
|
|
3
|
+
# Generates a model
|
4
|
+
# rails generate effective:model Thing
|
5
|
+
# rails generate effective:model Thing name:string description:text
|
6
|
+
|
3
7
|
module Effective
|
4
8
|
module Generators
|
5
9
|
class ModelGenerator < Rails::Generators::NamedBase
|
6
10
|
include Helpers
|
7
11
|
|
8
|
-
source_root File.expand_path(('../' * 4) + '
|
12
|
+
source_root File.expand_path(('../' * 4) + 'lib/scaffolds', __FILE__)
|
9
13
|
|
10
14
|
desc 'Creates a model in your app/models folder.'
|
11
15
|
|
12
16
|
argument :attributes, type: :array, default: [], banner: 'field[:type] field[:type]'
|
13
17
|
|
18
|
+
def invoke_model
|
19
|
+
say_status :invoke, :model, :white
|
20
|
+
end
|
21
|
+
|
14
22
|
def create_model
|
15
23
|
template 'models/model.rb', File.join('app/models', class_path, "#{file_name}.rb")
|
16
24
|
end
|
17
25
|
|
26
|
+
protected
|
27
|
+
|
28
|
+
def to_s_attribute
|
29
|
+
attributes.find { |att| ['display_name', 'name', 'title', 'subject'].include?(att.name) }
|
30
|
+
end
|
31
|
+
|
32
|
+
def archived_attribute
|
33
|
+
attributes.find { |att| att.name == 'archived' && att.type == :boolean }
|
34
|
+
end
|
35
|
+
|
36
|
+
def max_attribute_name_length
|
37
|
+
@max_attribute_name_length ||= (attributes.map { |att| att.name.length }.max || 0)
|
38
|
+
end
|
39
|
+
|
18
40
|
end
|
19
41
|
end
|
20
42
|
end
|
@@ -1,18 +1,74 @@
|
|
1
1
|
# rails generate effective:route NAME [action action] [options]
|
2
2
|
|
3
|
+
# Adds a route to config/routes.rb
|
4
|
+
# rails generate effective:route Thing
|
5
|
+
# rails generate effective:model Thing index edit create
|
6
|
+
|
3
7
|
module Effective
|
4
8
|
module Generators
|
5
9
|
class RouteGenerator < Rails::Generators::NamedBase
|
6
10
|
include Helpers
|
7
11
|
|
8
|
-
source_root File.expand_path(('../' * 4) + '
|
12
|
+
source_root File.expand_path(('../' * 4) + 'lib/scaffolds', __FILE__)
|
9
13
|
|
10
14
|
desc 'Creates a route.'
|
11
15
|
|
12
16
|
argument :actions, type: :array, default: ['crud'], banner: 'action action'
|
13
17
|
|
18
|
+
def invoke_route
|
19
|
+
say_status :invoke, :route, :white
|
20
|
+
end
|
21
|
+
|
14
22
|
def create_route
|
15
|
-
|
23
|
+
blocks = []
|
24
|
+
|
25
|
+
Effective::CodeWriter.new('config/routes.rb') do |w|
|
26
|
+
namespaces.each do |namespace|
|
27
|
+
index = nil
|
28
|
+
|
29
|
+
w.within(blocks.last) do
|
30
|
+
index = w.first { |line, depth| depth == 1 && line == "namespace :#{namespace} do"}
|
31
|
+
end
|
32
|
+
|
33
|
+
index ? (blocks << index) : break
|
34
|
+
end
|
35
|
+
|
36
|
+
content = namespaces[blocks.length..-1].map { |ns| "namespace :#{ns} do"} + [resources].flatten + (['end'] * (namespaces.length - blocks.length))
|
37
|
+
|
38
|
+
w.within(blocks.last) do
|
39
|
+
if content.length == 1 && w.find { |line, depth| depth == 1 && line == content.first }
|
40
|
+
say_status :identical, content.first, :blue
|
41
|
+
else
|
42
|
+
w.insert_after_last(content) { |line, depth| depth == 1 && line.start_with?('resources') } ||
|
43
|
+
w.insert_before_last(content) { |line, depth| depth == 1 && line.start_with?('root') } ||
|
44
|
+
w.insert_before_last(content) { |line, depth| line == 'end' }
|
45
|
+
|
46
|
+
say_status :route, content.join("\n\t\t")
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
private
|
53
|
+
|
54
|
+
def resources
|
55
|
+
@resources ||= (
|
56
|
+
resources = "resources :#{plural_name}"
|
57
|
+
|
58
|
+
if ((crud_actions - ['show']) == invoked_actions)
|
59
|
+
resources << ', except: [:show]'
|
60
|
+
elsif (crud_actions - invoked_actions).present?
|
61
|
+
resources << ', only: ['
|
62
|
+
resources << (crud_actions & invoked_actions).map { |action| ':' + action }.join(', ')
|
63
|
+
resources << ']'
|
64
|
+
end
|
65
|
+
|
66
|
+
if (invoked_actions - crud_actions).present?
|
67
|
+
[resources + ' do'] + (invoked_actions - crud_actions).map { |action| "get :#{action}, on: :member" } + ['end']
|
68
|
+
else
|
69
|
+
resources
|
70
|
+
end
|
71
|
+
)
|
16
72
|
end
|
17
73
|
|
18
74
|
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# rails generate effective:scaffold NAME [field[:type] field[:type]] [options]
|
2
|
+
|
3
|
+
# Generates a migration, model, datatable, routes, controller, views
|
4
|
+
|
5
|
+
# rails generate effective:scaffold Thing
|
6
|
+
# rails generate effective:scaffold admin/thing name:string details:text --actions index show edit update
|
7
|
+
# rails generate effective:scaffold admin/thing name:string details:text
|
8
|
+
|
9
|
+
module Effective
|
10
|
+
module Generators
|
11
|
+
class ScaffoldControllerGenerator < Rails::Generators::NamedBase
|
12
|
+
include Helpers
|
13
|
+
|
14
|
+
source_root File.expand_path(('../' * 4) + 'lib/scaffolds', __FILE__)
|
15
|
+
|
16
|
+
desc 'Creates an Effective Scaffold'
|
17
|
+
|
18
|
+
argument :attributes, type: :array, default: [], banner: 'field[:type] field[:type]'
|
19
|
+
class_option :actions, type: :array, default: ['crud'], desc: 'Included actions', banner: 'index show'
|
20
|
+
|
21
|
+
def invoke_controller
|
22
|
+
Rails::Generators.invoke('effective:controller', [name] + invoked_actions + invoked_attributes_args)
|
23
|
+
end
|
24
|
+
|
25
|
+
def invoke_route
|
26
|
+
Rails::Generators.invoke('effective:route', [name] + invoked_actions)
|
27
|
+
end
|
28
|
+
|
29
|
+
def invoke_ability
|
30
|
+
Rails::Generators.invoke('effective:ability', [name] + invoked_actions)
|
31
|
+
end
|
32
|
+
|
33
|
+
def invoke_menu
|
34
|
+
Rails::Generators.invoke('effective:menu', [name])
|
35
|
+
end
|
36
|
+
|
37
|
+
def invoke_datatable
|
38
|
+
Rails::Generators.invoke('effective:datatable', [name] + invoked_attributes)
|
39
|
+
end
|
40
|
+
|
41
|
+
def invoke_views
|
42
|
+
Rails::Generators.invoke('effective:views', [name] + invoked_actions + invoked_attributes_args)
|
43
|
+
end
|
44
|
+
|
45
|
+
def invoke_form
|
46
|
+
Rails::Generators.invoke('effective:form', [name] + invoked_attributes)
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
# rails generate effective:scaffold Thing
|
4
4
|
# rails generate effective:scaffold admin/thing name:string details:text --actions index show edit update
|
5
|
+
# rails generate effective:scaffold admin/thing name:string details:text --actions crud-show
|
5
6
|
# rails generate effective:scaffold admin/thing name:string details:text
|
6
7
|
|
7
8
|
module Effective
|
@@ -9,77 +10,49 @@ module Effective
|
|
9
10
|
class ScaffoldGenerator < Rails::Generators::NamedBase
|
10
11
|
include Helpers
|
11
12
|
|
12
|
-
source_root File.expand_path(('../' * 4) + '
|
13
|
+
source_root File.expand_path(('../' * 4) + 'lib/scaffolds', __FILE__)
|
13
14
|
|
14
15
|
desc 'Creates an Effective Scaffold'
|
15
16
|
|
16
17
|
argument :attributes, type: :array, default: [], banner: 'field[:type] field[:type]'
|
17
18
|
class_option :actions, type: :array, default: ['crud'], desc: 'Included actions', banner: 'index show'
|
18
19
|
|
19
|
-
def
|
20
|
-
Rails::Generators.invoke('effective:
|
20
|
+
def invoke_model
|
21
|
+
Rails::Generators.invoke('effective:model', [name] + invoked_attributes)
|
21
22
|
end
|
22
23
|
|
23
|
-
def
|
24
|
-
Rails::Generators.invoke('effective:
|
24
|
+
def invoke_migration
|
25
|
+
Rails::Generators.invoke('effective:migration', [name] + invoked_attributes)
|
25
26
|
end
|
26
27
|
|
27
|
-
def
|
28
|
-
Rails::Generators.invoke('effective:
|
28
|
+
def invoke_controller
|
29
|
+
Rails::Generators.invoke('effective:controller', [name] + invoked_actions + invoked_attributes_args)
|
29
30
|
end
|
30
31
|
|
31
|
-
def
|
32
|
+
def invoke_route
|
32
33
|
Rails::Generators.invoke('effective:route', [name] + invoked_actions)
|
33
34
|
end
|
34
35
|
|
35
|
-
def
|
36
|
-
Rails::Generators.invoke('effective:
|
36
|
+
def invoke_ability
|
37
|
+
Rails::Generators.invoke('effective:ability', [name] + invoked_actions)
|
37
38
|
end
|
38
39
|
|
39
|
-
def
|
40
|
-
Rails::Generators.invoke('effective:
|
40
|
+
def invoke_menu
|
41
|
+
Rails::Generators.invoke('effective:menu', [name])
|
41
42
|
end
|
42
43
|
|
43
|
-
|
44
|
-
|
45
|
-
end
|
46
|
-
|
47
|
-
# class_name
|
48
|
-
# class_path
|
49
|
-
# file_path
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
# require "rails/generators/rails/resource/resource_generator"
|
54
|
-
|
55
|
-
# module Effective
|
56
|
-
# module Generators
|
57
|
-
# class ScaffoldGenerator < ResourceGenerator # :nodoc:
|
58
|
-
# remove_hook_for :resource_controller
|
59
|
-
# remove_class_option :actions
|
60
|
-
|
61
|
-
# class_option :stylesheets, type: :boolean, desc: "Generate Stylesheets"
|
62
|
-
# class_option :stylesheet_engine, desc: "Engine for Stylesheets"
|
63
|
-
# class_option :assets, type: :boolean
|
64
|
-
# class_option :resource_route, type: :boolean
|
65
|
-
# class_option :scaffold_stylesheet, type: :boolean
|
66
|
-
|
67
|
-
# def handle_skip
|
68
|
-
# @options = @options.merge(stylesheets: false) unless options[:assets]
|
69
|
-
# @options = @options.merge(stylesheet_engine: false) unless options[:stylesheets] && options[:scaffold_stylesheet]
|
70
|
-
# end
|
44
|
+
def invoke_datatable
|
45
|
+
Rails::Generators.invoke('effective:datatable', [name] + invoked_attributes)
|
46
|
+
end
|
71
47
|
|
72
|
-
|
48
|
+
def invoke_views
|
49
|
+
Rails::Generators.invoke('effective:views', [name] + invoked_actions + invoked_attributes_args)
|
50
|
+
end
|
73
51
|
|
74
|
-
|
75
|
-
|
76
|
-
|
52
|
+
def invoke_form
|
53
|
+
Rails::Generators.invoke('effective:form', [name] + invoked_attributes)
|
54
|
+
end
|
77
55
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
# end
|
82
|
-
# end
|
83
|
-
# end
|
84
|
-
# end
|
85
|
-
# end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|