rails_app_generator 0.2.8 → 0.2.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +21 -0
- data/after_templates/addons/administrate/_.rb +45 -0
- data/after_templates/addons/administrate/app/controllers/home_controller.rb +4 -0
- data/after_templates/addons/administrate/app/dashboards/author_dashboard.rb +74 -0
- data/after_templates/addons/administrate/app/dashboards/post_dashboard.rb +74 -0
- data/after_templates/addons/administrate/app/dashboards/product_dashboard.rb +71 -0
- data/after_templates/addons/administrate/app/models/author.rb +6 -0
- data/after_templates/addons/administrate/app/models/post.rb +5 -0
- data/after_templates/addons/administrate/app/views/home/index.html.erb +3 -0
- data/after_templates/addons/administrate/app/views/layouts/_footer.html.erb +3 -0
- data/after_templates/addons/administrate/app/views/layouts/_navbar.html.erb +5 -0
- data/after_templates/addons/administrate/app/views/layouts/application.html.erb +23 -0
- data/after_templates/addons/administrate/db/seeds.rb +116 -0
- data/after_templates/addons/redcarpet/_.rb +22 -0
- data/after_templates/addons/redcarpet/app/controllers/home_controller.rb +299 -0
- data/after_templates/addons/redcarpet/app/views/home/index.html.erb +5 -0
- data/after_templates/addons/redcarpet/app/views/layouts/_footer.html.erb +3 -0
- data/after_templates/addons/redcarpet/app/views/layouts/_navbar.html.erb +4 -0
- data/after_templates/addons/redcarpet/app/views/layouts/application.html.erb +23 -0
- data/docs/last_run/app_generator_class.json +16 -0
- data/docs/last_run/app_generator_data.json +7 -5
- data/docs/last_run/rails_options_class.json +16 -0
- data/docs/last_run/rails_options_data.json +7 -5
- data/lib/rails_app_generator/addons/administrate.rb +30 -0
- data/lib/rails_app_generator/addons/redcarpet.rb +13 -0
- data/lib/rails_app_generator/rag_initializer.rb +2 -0
- data/lib/rails_app_generator/version.rb +1 -1
- data/package-lock.json +2 -2
- data/package.json +1 -1
- data/profiles/addons/administrate.json +15 -0
- data/profiles/addons/redcarpet.json +12 -0
- data/tasks/profile.thor +0 -1
- data/templates/thor_task/addon/addon.tt +1 -1
- data/templates/thor_task/profile/app/controllers/home_controller.rb +0 -3
- data/templates/thor_task/profile/app/views/home/index.html.erb.tt +0 -8
- metadata +24 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e6c154de84c08fa40c02064d9521397096c1bdf33c4180a143b874aac3fc241d
|
4
|
+
data.tar.gz: 8a002deb836d4d51c2f18248d0798f47109db7dce25e72eb725d1a697ed3a081
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f59e8acec1a8e1c6dae728c316901ca75320f205bf4b8c562d9608d1c2f00b5a5ca5e264760da2a26cc41d832a8137e8215ce3fea2d121276fb04fdf366afe90
|
7
|
+
data.tar.gz: e63dde420822b9612ecfe98140e846eb20af617851be18a00a0018d25f943d5a7dfca92582e264d1de0e948058ce9654f1600dddb4d94a05d10238eaf75c8248
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,24 @@
|
|
1
|
+
## [0.2.10](https://github.com/klueless-io/rails_app_generator/compare/v0.2.9...v0.2.10) (2022-08-11)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* add administrate addon ([330ce3c](https://github.com/klueless-io/rails_app_generator/commit/330ce3c0db2148ccb34585eb7fb45dae8b267884))
|
7
|
+
|
8
|
+
## [0.2.9](https://github.com/klueless-io/rails_app_generator/compare/v0.2.8...v0.2.9) (2022-08-11)
|
9
|
+
|
10
|
+
|
11
|
+
### Bug Fixes
|
12
|
+
|
13
|
+
* add redcarpet addon ([fb8acf0](https://github.com/klueless-io/rails_app_generator/commit/fb8acf09d3d1be3d4eb9b82e5fc1d9af1fea0e0c))
|
14
|
+
|
15
|
+
## [0.2.8](https://github.com/klueless-io/rails_app_generator/compare/v0.2.7...v0.2.8) (2022-08-11)
|
16
|
+
|
17
|
+
|
18
|
+
### Bug Fixes
|
19
|
+
|
20
|
+
* add bcrypt_ruby profile ([a07dfdb](https://github.com/klueless-io/rails_app_generator/commit/a07dfdb04190826edfe3a1258b00e00653326e10))
|
21
|
+
|
1
22
|
## [0.2.7](https://github.com/klueless-io/rails_app_generator/compare/v0.2.6...v0.2.7) (2022-08-11)
|
2
23
|
|
3
24
|
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Administrate is inspired by Rails Admin and ActiveAdmin, but aims to provide a better developer/user experience.
|
4
|
+
#
|
5
|
+
# exe/rag addons/administrate
|
6
|
+
|
7
|
+
self.local_template_path = File.dirname(__FILE__)
|
8
|
+
|
9
|
+
gac 'base rails 7 image created'
|
10
|
+
|
11
|
+
bundle_install
|
12
|
+
|
13
|
+
add_controller('home', 'index')
|
14
|
+
|
15
|
+
route("root 'home#index'")
|
16
|
+
|
17
|
+
force_copy
|
18
|
+
|
19
|
+
directory "app/controllers"
|
20
|
+
directory "app/views/home"
|
21
|
+
directory "app/views/layouts"
|
22
|
+
template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
|
23
|
+
|
24
|
+
template 'db/seeds.rb' , 'db/seeds.rb'
|
25
|
+
|
26
|
+
after_bundle do
|
27
|
+
setup_db
|
28
|
+
|
29
|
+
generate('administrate:install')
|
30
|
+
|
31
|
+
directory "app/dashboards"
|
32
|
+
|
33
|
+
rubocop
|
34
|
+
end
|
35
|
+
|
36
|
+
def setup_db
|
37
|
+
add_scaffold('author', 'name:string email:string bio:text')
|
38
|
+
add_scaffold('post', 'title:string content:text published:boolean author:references')
|
39
|
+
add_scaffold('product', 'name', 'quantity:integer', 'price:decimal')
|
40
|
+
|
41
|
+
directory "app/models"
|
42
|
+
|
43
|
+
db_migrate
|
44
|
+
db_seed
|
45
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'administrate/base_dashboard'
|
4
|
+
|
5
|
+
class AuthorDashboard < Administrate::BaseDashboard
|
6
|
+
# ATTRIBUTE_TYPES
|
7
|
+
# a hash that describes the type of each of the model's fields.
|
8
|
+
#
|
9
|
+
# Each different type represents an Administrate::Field object,
|
10
|
+
# which determines how the attribute is displayed
|
11
|
+
# on pages throughout the dashboard.
|
12
|
+
ATTRIBUTE_TYPES = {
|
13
|
+
id: Field::Number,
|
14
|
+
name: Field::String,
|
15
|
+
email: Field::String,
|
16
|
+
bio: Field::Text,
|
17
|
+
posts: Field::HasMany,
|
18
|
+
created_at: Field::DateTime,
|
19
|
+
updated_at: Field::DateTime
|
20
|
+
}.freeze
|
21
|
+
|
22
|
+
# COLLECTION_ATTRIBUTES
|
23
|
+
# an array of attributes that will be displayed on the model's index page.
|
24
|
+
#
|
25
|
+
# By default, it's limited to four items to reduce clutter on index pages.
|
26
|
+
# Feel free to add, remove, or rearrange items.
|
27
|
+
COLLECTION_ATTRIBUTES = %i[
|
28
|
+
id
|
29
|
+
name
|
30
|
+
email
|
31
|
+
posts
|
32
|
+
].freeze
|
33
|
+
|
34
|
+
# SHOW_PAGE_ATTRIBUTES
|
35
|
+
# an array of attributes that will be displayed on the model's show page.
|
36
|
+
SHOW_PAGE_ATTRIBUTES = %i[
|
37
|
+
id
|
38
|
+
name
|
39
|
+
email
|
40
|
+
bio
|
41
|
+
posts
|
42
|
+
created_at
|
43
|
+
updated_at
|
44
|
+
].freeze
|
45
|
+
|
46
|
+
# FORM_ATTRIBUTES
|
47
|
+
# an array of attributes that will be displayed
|
48
|
+
# on the model's form (`new` and `edit`) pages.
|
49
|
+
FORM_ATTRIBUTES = %i[
|
50
|
+
name
|
51
|
+
email
|
52
|
+
bio
|
53
|
+
posts
|
54
|
+
].freeze
|
55
|
+
|
56
|
+
# COLLECTION_FILTERS
|
57
|
+
# a hash that defines filters that can be used while searching via the search
|
58
|
+
# field of the dashboard.
|
59
|
+
#
|
60
|
+
# For example to add an option to search for open resources by typing "open:"
|
61
|
+
# in the search field:
|
62
|
+
#
|
63
|
+
# COLLECTION_FILTERS = {
|
64
|
+
# open: ->(resources) { resources.where(open: true) }
|
65
|
+
# }.freeze
|
66
|
+
COLLECTION_FILTERS = {}.freeze
|
67
|
+
|
68
|
+
# Overwrite this method to customize how authors are displayed
|
69
|
+
# across all pages of the admin dashboard.
|
70
|
+
#
|
71
|
+
# def display_resource(author)
|
72
|
+
# "Author ##{author.id}"
|
73
|
+
# end
|
74
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'administrate/base_dashboard'
|
4
|
+
|
5
|
+
class PostDashboard < Administrate::BaseDashboard
|
6
|
+
# ATTRIBUTE_TYPES
|
7
|
+
# a hash that describes the type of each of the model's fields.
|
8
|
+
#
|
9
|
+
# Each different type represents an Administrate::Field object,
|
10
|
+
# which determines how the attribute is displayed
|
11
|
+
# on pages throughout the dashboard.
|
12
|
+
ATTRIBUTE_TYPES = {
|
13
|
+
author: Field::BelongsTo,
|
14
|
+
id: Field::Number,
|
15
|
+
title: Field::String,
|
16
|
+
content: Field::Text,
|
17
|
+
published: Field::Boolean,
|
18
|
+
created_at: Field::DateTime,
|
19
|
+
updated_at: Field::DateTime
|
20
|
+
}.freeze
|
21
|
+
|
22
|
+
# COLLECTION_ATTRIBUTES
|
23
|
+
# an array of attributes that will be displayed on the model's index page.
|
24
|
+
#
|
25
|
+
# By default, it's limited to four items to reduce clutter on index pages.
|
26
|
+
# Feel free to add, remove, or rearrange items.
|
27
|
+
COLLECTION_ATTRIBUTES = %i[
|
28
|
+
author
|
29
|
+
id
|
30
|
+
title
|
31
|
+
content
|
32
|
+
].freeze
|
33
|
+
|
34
|
+
# SHOW_PAGE_ATTRIBUTES
|
35
|
+
# an array of attributes that will be displayed on the model's show page.
|
36
|
+
SHOW_PAGE_ATTRIBUTES = %i[
|
37
|
+
author
|
38
|
+
id
|
39
|
+
title
|
40
|
+
content
|
41
|
+
published
|
42
|
+
created_at
|
43
|
+
updated_at
|
44
|
+
].freeze
|
45
|
+
|
46
|
+
# FORM_ATTRIBUTES
|
47
|
+
# an array of attributes that will be displayed
|
48
|
+
# on the model's form (`new` and `edit`) pages.
|
49
|
+
FORM_ATTRIBUTES = %i[
|
50
|
+
author
|
51
|
+
title
|
52
|
+
content
|
53
|
+
published
|
54
|
+
].freeze
|
55
|
+
|
56
|
+
# COLLECTION_FILTERS
|
57
|
+
# a hash that defines filters that can be used while searching via the search
|
58
|
+
# field of the dashboard.
|
59
|
+
#
|
60
|
+
# For example to add an option to search for open resources by typing "open:"
|
61
|
+
# in the search field:
|
62
|
+
#
|
63
|
+
# COLLECTION_FILTERS = {
|
64
|
+
# open: ->(resources) { resources.where(open: true) }
|
65
|
+
# }.freeze
|
66
|
+
COLLECTION_FILTERS = {}.freeze
|
67
|
+
|
68
|
+
# Overwrite this method to customize how posts are displayed
|
69
|
+
# across all pages of the admin dashboard.
|
70
|
+
#
|
71
|
+
# def display_resource(post)
|
72
|
+
# "Post ##{post.id}"
|
73
|
+
# end
|
74
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'administrate/base_dashboard'
|
4
|
+
|
5
|
+
class ProductDashboard < Administrate::BaseDashboard
|
6
|
+
# ATTRIBUTE_TYPES
|
7
|
+
# a hash that describes the type of each of the model's fields.
|
8
|
+
#
|
9
|
+
# Each different type represents an Administrate::Field object,
|
10
|
+
# which determines how the attribute is displayed
|
11
|
+
# on pages throughout the dashboard.
|
12
|
+
ATTRIBUTE_TYPES = {
|
13
|
+
id: Field::Number,
|
14
|
+
name: Field::String,
|
15
|
+
quantity: Field::Number,
|
16
|
+
price: Field::String.with_options(searchable: false),
|
17
|
+
created_at: Field::DateTime,
|
18
|
+
updated_at: Field::DateTime
|
19
|
+
}.freeze
|
20
|
+
|
21
|
+
# COLLECTION_ATTRIBUTES
|
22
|
+
# an array of attributes that will be displayed on the model's index page.
|
23
|
+
#
|
24
|
+
# By default, it's limited to four items to reduce clutter on index pages.
|
25
|
+
# Feel free to add, remove, or rearrange items.
|
26
|
+
COLLECTION_ATTRIBUTES = %i[
|
27
|
+
id
|
28
|
+
name
|
29
|
+
quantity
|
30
|
+
price
|
31
|
+
].freeze
|
32
|
+
|
33
|
+
# SHOW_PAGE_ATTRIBUTES
|
34
|
+
# an array of attributes that will be displayed on the model's show page.
|
35
|
+
SHOW_PAGE_ATTRIBUTES = %i[
|
36
|
+
id
|
37
|
+
name
|
38
|
+
quantity
|
39
|
+
price
|
40
|
+
created_at
|
41
|
+
updated_at
|
42
|
+
].freeze
|
43
|
+
|
44
|
+
# FORM_ATTRIBUTES
|
45
|
+
# an array of attributes that will be displayed
|
46
|
+
# on the model's form (`new` and `edit`) pages.
|
47
|
+
FORM_ATTRIBUTES = %i[
|
48
|
+
name
|
49
|
+
quantity
|
50
|
+
price
|
51
|
+
].freeze
|
52
|
+
|
53
|
+
# COLLECTION_FILTERS
|
54
|
+
# a hash that defines filters that can be used while searching via the search
|
55
|
+
# field of the dashboard.
|
56
|
+
#
|
57
|
+
# For example to add an option to search for open resources by typing "open:"
|
58
|
+
# in the search field:
|
59
|
+
#
|
60
|
+
# COLLECTION_FILTERS = {
|
61
|
+
# open: ->(resources) { resources.where(open: true) }
|
62
|
+
# }.freeze
|
63
|
+
COLLECTION_FILTERS = {}.freeze
|
64
|
+
|
65
|
+
# Overwrite this method to customize how products are displayed
|
66
|
+
# across all pages of the admin dashboard.
|
67
|
+
#
|
68
|
+
# def display_resource(product)
|
69
|
+
# "Product ##{product.id}"
|
70
|
+
# end
|
71
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title><%= camelized %></title>
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
6
|
+
<%%= csrf_meta_tags %>
|
7
|
+
<%%= csp_meta_tag %>
|
8
|
+
|
9
|
+
<%- if options[:skip_hotwire] || options[:skip_javascript] -%>
|
10
|
+
<%%= stylesheet_link_tag "application" %>
|
11
|
+
<%- else -%>
|
12
|
+
<%%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
|
13
|
+
<%- end -%>
|
14
|
+
</head>
|
15
|
+
|
16
|
+
<body>
|
17
|
+
<%%= render 'layouts/navbar' %>
|
18
|
+
<main>
|
19
|
+
<%%= yield %>
|
20
|
+
</main>
|
21
|
+
<%%= render 'layouts/footer' %>
|
22
|
+
</body>
|
23
|
+
</html>
|
@@ -0,0 +1,116 @@
|
|
1
|
+
def fake_title
|
2
|
+
[
|
3
|
+
'Fundamentals of Wavelets',
|
4
|
+
'Data Smart',
|
5
|
+
'God Created the Integers',
|
6
|
+
'Superfreakonomics',
|
7
|
+
'Orientalism',
|
8
|
+
'Nature of Statistical Learning Theory',
|
9
|
+
'Integration of the Indian States',
|
10
|
+
'Image Processing & Mathematical Morphology',
|
11
|
+
'How to Think Like Sherlock Holmes',
|
12
|
+
'Data Scientists at Work',
|
13
|
+
'Slaughterhouse Five',
|
14
|
+
'Birth of a Theorem',
|
15
|
+
'Structure & Interpretation of Computer Programs',
|
16
|
+
'Age of Wrath',
|
17
|
+
'Trial',
|
18
|
+
'Data Mining Handbook',
|
19
|
+
'New Machiavelli',
|
20
|
+
'Physics & Philosophy',
|
21
|
+
'Making Software',
|
22
|
+
'Analysis',
|
23
|
+
'Machine Learning for Hackers',
|
24
|
+
'Signal and the Noise',
|
25
|
+
'Python for Data Analysis',
|
26
|
+
'Introduction to Algorithms',
|
27
|
+
'Beautiful and the Damned',
|
28
|
+
'Outsider',
|
29
|
+
'Complete Sherlock Holmes',
|
30
|
+
'Complete Sherlock Holmes',
|
31
|
+
'Wealth of Nations',
|
32
|
+
'Pillars of the Earth',
|
33
|
+
'Mein Kampf',
|
34
|
+
'Tao of Physics',
|
35
|
+
'Farewell to Arms',
|
36
|
+
'Veteran',
|
37
|
+
'False Impressions',
|
38
|
+
'Last Lecture',
|
39
|
+
'Return of the Primitive',
|
40
|
+
'Jurassic Park',
|
41
|
+
'Russian Journal',
|
42
|
+
'Tales of Mystery and Imagination',
|
43
|
+
'Freakonomics',
|
44
|
+
'Hidden Connections',
|
45
|
+
'Story of Philosophy',
|
46
|
+
'Asami Asami',
|
47
|
+
'Journal of a Novel',
|
48
|
+
'Once There Was a War',
|
49
|
+
'Moon is Down',
|
50
|
+
'Brethren',
|
51
|
+
'In a Free State',
|
52
|
+
'Catch 22',
|
53
|
+
'Complete Mastermind',
|
54
|
+
'Dylan on Dylan',
|
55
|
+
'Soft Computing & Intelligent Systems',
|
56
|
+
'Textbook of Economic Theory',
|
57
|
+
'Econometric Analysis',
|
58
|
+
'Learning OpenCV',
|
59
|
+
'Data Structures Using C & C++',
|
60
|
+
'Computer Vision',
|
61
|
+
'Principles of Communication Systems',
|
62
|
+
'Let Us C',
|
63
|
+
'Amulet of Samarkand',
|
64
|
+
'Crime and Punishment',
|
65
|
+
'Angels & Demons',
|
66
|
+
'Argumentative Indian',
|
67
|
+
'Sea of Poppies',
|
68
|
+
'Idea of Justice',
|
69
|
+
'Raisin in the Sun',
|
70
|
+
'Prisoner of Birth',
|
71
|
+
'Scoop!',
|
72
|
+
'Ahe Manohar Tari',
|
73
|
+
'Last Mughal',
|
74
|
+
'Social Choice & Welfare',
|
75
|
+
'Radiowaril Bhashane & Shrutika',
|
76
|
+
'Gun Gayin Awadi',
|
77
|
+
'Aghal Paghal',
|
78
|
+
'Beyond Degrees',
|
79
|
+
'Manasa',
|
80
|
+
'India from Midnight to Milennium',
|
81
|
+
'Great Indian Novel',
|
82
|
+
'O Jerusalem!',
|
83
|
+
'City of Joy',
|
84
|
+
'Freedom at Midnight',
|
85
|
+
'Winter of Our Discontent',
|
86
|
+
'On Education',
|
87
|
+
'Free Will',
|
88
|
+
'Bookless in Baghdad',
|
89
|
+
'Case of the Lame Canary',
|
90
|
+
'Theory of Everything',
|
91
|
+
'New Markets & Other Essays',
|
92
|
+
'Electric Universe',
|
93
|
+
'Hunchback of Notre Dame',
|
94
|
+
'Burning Bright',
|
95
|
+
'Age of Discontuinity'
|
96
|
+
].sample
|
97
|
+
end
|
98
|
+
|
99
|
+
60.times do
|
100
|
+
Author.create!(name: Faker::Name.name, bio: Faker::Lorem.words(number: 5).join(' '), email: Faker::Internet.email)
|
101
|
+
end
|
102
|
+
|
103
|
+
100.times do |i|
|
104
|
+
Post.create!(title: fake_title,
|
105
|
+
content: "This is the body of post #{i}",
|
106
|
+
published: Faker::Boolean.boolean(true_ratio: 0.6),
|
107
|
+
author: Author.all.sample)
|
108
|
+
end
|
109
|
+
|
110
|
+
200.times do
|
111
|
+
Product.create!(
|
112
|
+
name: Faker::Name.name,
|
113
|
+
quantity: Faker::Number.number(digits: 2),
|
114
|
+
price: Faker::Number.decimal(l_digits: 4)
|
115
|
+
)
|
116
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# A fast, safe and extensible Markdown to (X)HTML parser
|
4
|
+
#
|
5
|
+
# exe/rag addons/redcarpet
|
6
|
+
|
7
|
+
self.local_template_path = File.dirname(__FILE__)
|
8
|
+
|
9
|
+
gac 'base rails 7 image created'
|
10
|
+
|
11
|
+
bundle_install
|
12
|
+
|
13
|
+
add_controller('home', 'index')
|
14
|
+
|
15
|
+
route("root 'home#index'")
|
16
|
+
|
17
|
+
force_copy
|
18
|
+
|
19
|
+
directory "app/controllers"
|
20
|
+
directory "app/views/home"
|
21
|
+
directory "app/views/layouts"
|
22
|
+
template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
|
@@ -0,0 +1,299 @@
|
|
1
|
+
class HomeController < ApplicationController
|
2
|
+
def index
|
3
|
+
opts = {
|
4
|
+
tables: true,
|
5
|
+
strikethrough: true,
|
6
|
+
fenced_code_blocks: true
|
7
|
+
}
|
8
|
+
# Initializes a Markdown parser
|
9
|
+
markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, **opts)
|
10
|
+
|
11
|
+
@html = markdown.render(markdown_example).html_safe
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def markdown_example
|
17
|
+
<<-MARKDOWN
|
18
|
+
H1s are easy in Markdown
|
19
|
+
========================
|
20
|
+
|
21
|
+
## H2
|
22
|
+
|
23
|
+
### H3
|
24
|
+
|
25
|
+
#### H4
|
26
|
+
|
27
|
+
##### H5
|
28
|
+
|
29
|
+
###### H6
|
30
|
+
|
31
|
+
Paragraphs are separated by a blank line.
|
32
|
+
|
33
|
+
2nd paragraph. *Italic*, **bold**, and `monospace`. Itemized lists
|
34
|
+
look like:
|
35
|
+
|
36
|
+
* this one
|
37
|
+
* that one
|
38
|
+
* the other one
|
39
|
+
|
40
|
+
Emphasis, aka italics, with *asterisks* or _underscores_.
|
41
|
+
|
42
|
+
Strong emphasis, aka bold, with **asterisks** or __underscores__.
|
43
|
+
|
44
|
+
Strikethrough uses two tildes. ~~Scratch this.~~
|
45
|
+
|
46
|
+
![alt text](https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png "Logo Title Text 1")
|
47
|
+
|
48
|
+
```
|
49
|
+
No language indicated, so no syntax highlighting.
|
50
|
+
But let's throw in a <b>tag</b>.
|
51
|
+
```
|
52
|
+
|
53
|
+
| Tables | Are | Cool |
|
54
|
+
| ------------- |:-------------:| -----:|
|
55
|
+
| col 3 is | right-aligned | $1600 |
|
56
|
+
| col 2 is | centered | $12 |
|
57
|
+
| zebra stripes | are neat | $1 |
|
58
|
+
|
59
|
+
> Blockquotes are very handy in email to emulate reply text.
|
60
|
+
> This line is part of the same quote.
|
61
|
+
|
62
|
+
Quote break.
|
63
|
+
|
64
|
+
> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote.
|
65
|
+
|
66
|
+
|
67
|
+
[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/mpWFrUwAN88/0.jpg)](http://www.youtube.com/watch?v=mpWFrUwAN88)
|
68
|
+
|
69
|
+
|
70
|
+
MARKDOWN
|
71
|
+
end
|
72
|
+
|
73
|
+
def markdown_example2
|
74
|
+
<<-MARKDOWN
|
75
|
+
---
|
76
|
+
__Advertisement :)__
|
77
|
+
|
78
|
+
- __[pica](https://nodeca.github.io/pica/demo/)__ - high quality and fast image
|
79
|
+
resize in browser.
|
80
|
+
- __[babelfish](https://github.com/nodeca/babelfish/)__ - developer friendly
|
81
|
+
i18n with plurals support and easy syntax.
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
You will like those projects!
|
86
|
+
|
87
|
+
---
|
88
|
+
|
89
|
+
# h1 Heading 8-)
|
90
|
+
## h2 Heading
|
91
|
+
### h3 Heading
|
92
|
+
#### h4 Heading
|
93
|
+
##### h5 Heading
|
94
|
+
###### h6 Heading
|
95
|
+
|
96
|
+
|
97
|
+
## Horizontal Rules
|
98
|
+
|
99
|
+
___
|
100
|
+
|
101
|
+
---
|
102
|
+
|
103
|
+
***
|
104
|
+
|
105
|
+
|
106
|
+
## Typographic replacements
|
107
|
+
|
108
|
+
Enable typographer option to see result.
|
109
|
+
|
110
|
+
(c) (C) (r) (R) (tm) (TM) (p) (P) +-
|
111
|
+
|
112
|
+
test.. test... test..... test?..... test!....
|
113
|
+
|
114
|
+
!!!!!! ???? ,, -- ---
|
115
|
+
|
116
|
+
"Smartypants, double quotes" and 'single quotes'
|
117
|
+
|
118
|
+
|
119
|
+
## Emphasis
|
120
|
+
|
121
|
+
**This is bold text**
|
122
|
+
|
123
|
+
__This is bold text__
|
124
|
+
|
125
|
+
*This is italic text*
|
126
|
+
|
127
|
+
_This is italic text_
|
128
|
+
|
129
|
+
~~Strikethrough~~
|
130
|
+
|
131
|
+
|
132
|
+
## Blockquotes
|
133
|
+
|
134
|
+
|
135
|
+
> Blockquotes can also be nested...
|
136
|
+
>> ...by using additional greater-than signs right next to each other...
|
137
|
+
> > > ...or with spaces between arrows.
|
138
|
+
|
139
|
+
|
140
|
+
## Lists
|
141
|
+
|
142
|
+
Unordered
|
143
|
+
|
144
|
+
+ Create a list by starting a line with `+`, `-`, or `*`
|
145
|
+
+ Sub-lists are made by indenting 2 spaces:
|
146
|
+
- Marker character change forces new list start:
|
147
|
+
* Ac tristique libero volutpat at
|
148
|
+
+ Facilisis in pretium nisl aliquet
|
149
|
+
- Nulla volutpat aliquam velit
|
150
|
+
+ Very easy!
|
151
|
+
|
152
|
+
Ordered
|
153
|
+
|
154
|
+
1. Lorem ipsum dolor sit amet
|
155
|
+
2. Consectetur adipiscing elit
|
156
|
+
3. Integer molestie lorem at massa
|
157
|
+
|
158
|
+
|
159
|
+
1. You can use sequential numbers...
|
160
|
+
1. ...or keep all the numbers as `1.`
|
161
|
+
|
162
|
+
Start numbering with offset:
|
163
|
+
|
164
|
+
57. foo
|
165
|
+
1. bar
|
166
|
+
|
167
|
+
|
168
|
+
## Code
|
169
|
+
|
170
|
+
Inline `code`
|
171
|
+
|
172
|
+
Indented code
|
173
|
+
|
174
|
+
// Some comments
|
175
|
+
line 1 of code
|
176
|
+
line 2 of code
|
177
|
+
line 3 of code
|
178
|
+
|
179
|
+
|
180
|
+
## Tables
|
181
|
+
|
182
|
+
| Option | Description |
|
183
|
+
| ------ | ----------- |
|
184
|
+
| data | path to data files to supply the data that will be passed into templates. |
|
185
|
+
| engine | engine to be used for processing templates. Handlebars is the default. |
|
186
|
+
| ext | extension to be used for dest files. |
|
187
|
+
|
188
|
+
Right aligned columns
|
189
|
+
|
190
|
+
| Option | Description |
|
191
|
+
| ------:| -----------:|
|
192
|
+
| data | path to data files to supply the data that will be passed into templates. |
|
193
|
+
| engine | engine to be used for processing templates. Handlebars is the default. |
|
194
|
+
| ext | extension to be used for dest files. |
|
195
|
+
|
196
|
+
|
197
|
+
## Links
|
198
|
+
|
199
|
+
[link text](http://dev.nodeca.com)
|
200
|
+
|
201
|
+
[link with title](http://nodeca.github.io/pica/demo/ "title text!")
|
202
|
+
|
203
|
+
|
204
|
+
## Plugins
|
205
|
+
|
206
|
+
The killer feature of `markdown-it` is very effective support of
|
207
|
+
[syntax plugins](https://www.npmjs.org/browse/keyword/markdown-it-plugin).
|
208
|
+
|
209
|
+
|
210
|
+
### [Emojies](https://github.com/markdown-it/markdown-it-emoji)
|
211
|
+
|
212
|
+
> Classic markup: :wink: :crush: :cry: :tear: :laughing: :yum:
|
213
|
+
>
|
214
|
+
> Shortcuts (emoticons): :-) :-( 8-) ;)
|
215
|
+
|
216
|
+
see [how to change output](https://github.com/markdown-it/markdown-it-emoji#change-output) with twemoji.
|
217
|
+
|
218
|
+
|
219
|
+
### [Subscript](https://github.com/markdown-it/markdown-it-sub) / [Superscript](https://github.com/markdown-it/markdown-it-sup)
|
220
|
+
|
221
|
+
- 19^th^
|
222
|
+
- H~2~O
|
223
|
+
|
224
|
+
|
225
|
+
### [\<ins>](https://github.com/markdown-it/markdown-it-ins)
|
226
|
+
|
227
|
+
++Inserted text++
|
228
|
+
|
229
|
+
|
230
|
+
### [\<mark>](https://github.com/markdown-it/markdown-it-mark)
|
231
|
+
|
232
|
+
==Marked text==
|
233
|
+
|
234
|
+
|
235
|
+
### [Footnotes](https://github.com/markdown-it/markdown-it-footnote)
|
236
|
+
|
237
|
+
Footnote 1 link[^first].
|
238
|
+
|
239
|
+
Footnote 2 link[^second].
|
240
|
+
|
241
|
+
Inline footnote^[Text of inline footnote] definition.
|
242
|
+
|
243
|
+
Duplicated footnote reference[^second].
|
244
|
+
|
245
|
+
[^first]: Footnote **can have markup**
|
246
|
+
|
247
|
+
and multiple paragraphs.
|
248
|
+
|
249
|
+
[^second]: Footnote text.
|
250
|
+
|
251
|
+
|
252
|
+
### [Definition lists](https://github.com/markdown-it/markdown-it-deflist)
|
253
|
+
|
254
|
+
Term 1
|
255
|
+
|
256
|
+
: Definition 1
|
257
|
+
with lazy continuation.
|
258
|
+
|
259
|
+
Term 2 with *inline markup*
|
260
|
+
|
261
|
+
: Definition 2
|
262
|
+
|
263
|
+
{ some code, part of Definition 2 }
|
264
|
+
|
265
|
+
Third paragraph of definition 2.
|
266
|
+
|
267
|
+
_Compact style:_
|
268
|
+
|
269
|
+
Term 1
|
270
|
+
~ Definition 1
|
271
|
+
|
272
|
+
Term 2
|
273
|
+
~ Definition 2a
|
274
|
+
~ Definition 2b
|
275
|
+
|
276
|
+
|
277
|
+
### [Abbreviations](https://github.com/markdown-it/markdown-it-abbr)
|
278
|
+
|
279
|
+
This is HTML abbreviation example.
|
280
|
+
|
281
|
+
It converts "HTML", but keep intact partial entries like "xxxHTMLyyy" and so on.
|
282
|
+
|
283
|
+
*[HTML]: Hyper Text Markup Language
|
284
|
+
|
285
|
+
### [Custom containers](https://github.com/markdown-it/markdown-it-container)
|
286
|
+
|
287
|
+
::: warning
|
288
|
+
*here be dragons*
|
289
|
+
:::
|
290
|
+
|
291
|
+
## Images
|
292
|
+
|
293
|
+
![Minion](https://octodex.github.com/images/minion.png)
|
294
|
+
![Stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg "The Stormtroopocat")
|
295
|
+
|
296
|
+
Like links, Images also have a footnote style syntax
|
297
|
+
MARKDOWN
|
298
|
+
end
|
299
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title><%= camelized %></title>
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
6
|
+
<%%= csrf_meta_tags %>
|
7
|
+
<%%= csp_meta_tag %>
|
8
|
+
|
9
|
+
<%- if options[:skip_hotwire] || options[:skip_javascript] -%>
|
10
|
+
<%%= stylesheet_link_tag "application" %>
|
11
|
+
<%- else -%>
|
12
|
+
<%%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
|
13
|
+
<%- end -%>
|
14
|
+
</head>
|
15
|
+
|
16
|
+
<body>
|
17
|
+
<%%= render 'layouts/navbar' %>
|
18
|
+
<main>
|
19
|
+
<%%= yield %>
|
20
|
+
</main>
|
21
|
+
<%%= render 'layouts/footer' %>
|
22
|
+
</body>
|
23
|
+
</html>
|
@@ -46,6 +46,7 @@
|
|
46
46
|
"add_annotate",
|
47
47
|
"add_lograge",
|
48
48
|
"add_acts_as_list",
|
49
|
+
"add_administrate",
|
49
50
|
"add_browser",
|
50
51
|
"add_bcrypt_ruby",
|
51
52
|
"add_chartkick",
|
@@ -58,6 +59,7 @@
|
|
58
59
|
"add_phony_rails",
|
59
60
|
"add_public_suffix",
|
60
61
|
"add_rails_html_sanitizer",
|
62
|
+
"add_redcarpet",
|
61
63
|
"add_twilio_ruby"
|
62
64
|
],
|
63
65
|
"class_options": [
|
@@ -383,6 +385,13 @@
|
|
383
385
|
"default": false,
|
384
386
|
"required": false
|
385
387
|
},
|
388
|
+
{
|
389
|
+
"name": "add_administrate",
|
390
|
+
"description": "Indicates when to generate add administrate",
|
391
|
+
"type": "boolean",
|
392
|
+
"default": false,
|
393
|
+
"required": false
|
394
|
+
},
|
386
395
|
{
|
387
396
|
"name": "add_browser",
|
388
397
|
"description": "Indicates when to generate add browser",
|
@@ -467,6 +476,13 @@
|
|
467
476
|
"default": false,
|
468
477
|
"required": false
|
469
478
|
},
|
479
|
+
{
|
480
|
+
"name": "add_redcarpet",
|
481
|
+
"description": "Indicates when to generate add redcarpet",
|
482
|
+
"type": "boolean",
|
483
|
+
"default": false,
|
484
|
+
"required": false
|
485
|
+
},
|
470
486
|
{
|
471
487
|
"name": "add_twilio_ruby",
|
472
488
|
"description": "Indicates when to generate add twilio ruby",
|
@@ -32,14 +32,15 @@
|
|
32
32
|
"test": "rspec",
|
33
33
|
"add_devise": false,
|
34
34
|
"add_dotenv": false,
|
35
|
-
"add_rubocop":
|
36
|
-
"add_annotate":
|
35
|
+
"add_rubocop": true,
|
36
|
+
"add_annotate": true,
|
37
37
|
"add_lograge": false,
|
38
38
|
"add_acts_as_list": false,
|
39
|
+
"add_administrate": true,
|
39
40
|
"add_browser": false,
|
40
|
-
"add_bcrypt_ruby":
|
41
|
+
"add_bcrypt_ruby": false,
|
41
42
|
"add_chartkick": false,
|
42
|
-
"add_faker":
|
43
|
+
"add_faker": true,
|
43
44
|
"add_groupdate": false,
|
44
45
|
"add_hexapdf": false,
|
45
46
|
"add_httparty": false,
|
@@ -48,7 +49,8 @@
|
|
48
49
|
"add_phony_rails": false,
|
49
50
|
"add_public_suffix": false,
|
50
51
|
"add_rails_html_sanitizer": false,
|
52
|
+
"add_redcarpet": false,
|
51
53
|
"add_twilio_ruby": false,
|
52
|
-
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/
|
54
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/administrate/_.rb"
|
53
55
|
}
|
54
56
|
}
|
@@ -46,6 +46,7 @@
|
|
46
46
|
"add_annotate",
|
47
47
|
"add_lograge",
|
48
48
|
"add_acts_as_list",
|
49
|
+
"add_administrate",
|
49
50
|
"add_browser",
|
50
51
|
"add_bcrypt_ruby",
|
51
52
|
"add_chartkick",
|
@@ -58,6 +59,7 @@
|
|
58
59
|
"add_phony_rails",
|
59
60
|
"add_public_suffix",
|
60
61
|
"add_rails_html_sanitizer",
|
62
|
+
"add_redcarpet",
|
61
63
|
"add_twilio_ruby"
|
62
64
|
],
|
63
65
|
"class_options": [
|
@@ -383,6 +385,13 @@
|
|
383
385
|
"default": false,
|
384
386
|
"required": false
|
385
387
|
},
|
388
|
+
{
|
389
|
+
"name": "add_administrate",
|
390
|
+
"description": "",
|
391
|
+
"type": "boolean",
|
392
|
+
"default": false,
|
393
|
+
"required": false
|
394
|
+
},
|
386
395
|
{
|
387
396
|
"name": "add_browser",
|
388
397
|
"description": "",
|
@@ -467,6 +476,13 @@
|
|
467
476
|
"default": false,
|
468
477
|
"required": false
|
469
478
|
},
|
479
|
+
{
|
480
|
+
"name": "add_redcarpet",
|
481
|
+
"description": "",
|
482
|
+
"type": "boolean",
|
483
|
+
"default": false,
|
484
|
+
"required": false
|
485
|
+
},
|
470
486
|
{
|
471
487
|
"name": "add_twilio_ruby",
|
472
488
|
"description": "",
|
@@ -7,7 +7,7 @@
|
|
7
7
|
"quiet": false,
|
8
8
|
"skip": false,
|
9
9
|
"ruby": "/Users/davidcruwys/.asdf/installs/ruby/2.7.6/bin/ruby",
|
10
|
-
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/
|
10
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/administrate/_.rb",
|
11
11
|
"database": "sqlite3",
|
12
12
|
"skip_git": true,
|
13
13
|
"skip_keeps": false,
|
@@ -42,14 +42,15 @@
|
|
42
42
|
"test": "rspec",
|
43
43
|
"add_devise": false,
|
44
44
|
"add_dotenv": false,
|
45
|
-
"add_rubocop":
|
46
|
-
"add_annotate":
|
45
|
+
"add_rubocop": true,
|
46
|
+
"add_annotate": true,
|
47
47
|
"add_lograge": false,
|
48
48
|
"add_acts_as_list": false,
|
49
|
+
"add_administrate": true,
|
49
50
|
"add_browser": false,
|
50
|
-
"add_bcrypt_ruby":
|
51
|
+
"add_bcrypt_ruby": false,
|
51
52
|
"add_chartkick": false,
|
52
|
-
"add_faker":
|
53
|
+
"add_faker": true,
|
53
54
|
"add_groupdate": false,
|
54
55
|
"add_hexapdf": false,
|
55
56
|
"add_httparty": false,
|
@@ -58,6 +59,7 @@
|
|
58
59
|
"add_phony_rails": false,
|
59
60
|
"add_public_suffix": false,
|
60
61
|
"add_rails_html_sanitizer": false,
|
62
|
+
"add_redcarpet": false,
|
61
63
|
"add_twilio_ruby": false
|
62
64
|
}
|
63
65
|
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RailsAppGenerator
|
4
|
+
# Custom add-ons for RailsAppGenerator
|
5
|
+
module AddOns
|
6
|
+
# Add Administrate to rails application
|
7
|
+
class Administrate < RailsAppGenerator::Addon
|
8
|
+
required_gem gem.version('administrate', '0.17.0', 'Administrate is inspired by Rails Admin and ActiveAdmin, but aims to provide a better developer/user experience.')
|
9
|
+
|
10
|
+
def apply
|
11
|
+
say 'Setting up Administrate'
|
12
|
+
# template('administrate_template.rb', 'target/administrate.rb', force: true)
|
13
|
+
# template('app/javascript/stylesheets/components.scss')
|
14
|
+
# create_file('target/administrate.rb', 'put your content here')
|
15
|
+
# directory 'app/template', 'app/target', force: true
|
16
|
+
# empty_directory 'app/target'
|
17
|
+
# inject_into_file('app/application.js', "some content")
|
18
|
+
# rails_command('tailwindcss:install')
|
19
|
+
end
|
20
|
+
|
21
|
+
def before_bundle
|
22
|
+
say 'Setting up Administrate - before bundle install'
|
23
|
+
end
|
24
|
+
|
25
|
+
def after_bundle
|
26
|
+
say 'Setting up Administrate - after bundle install'
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RailsAppGenerator
|
4
|
+
# Custom add-ons for RailsAppGenerator
|
5
|
+
module AddOns
|
6
|
+
# Add RedCarpet to rails application
|
7
|
+
class Redcarpet < RailsAppGenerator::Addon
|
8
|
+
required_gem gem.version('redcarpet', '3.5.1', 'A fast, safe and extensible Markdown to (X)HTML parser')
|
9
|
+
|
10
|
+
def apply; end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -107,6 +107,7 @@ KConfig.configure do |config|
|
|
107
107
|
|
108
108
|
# NEW GEM ADDONS
|
109
109
|
rag.add_option :add_acts_as_list , type: :boolean, default: false
|
110
|
+
rag.add_option :add_administrate , type: :boolean, default: false
|
110
111
|
rag.add_option :add_browser , type: :boolean, default: false
|
111
112
|
rag.add_option :add_bcrypt_ruby , type: :boolean, default: false
|
112
113
|
rag.add_option :add_chartkick , type: :boolean, default: false
|
@@ -119,6 +120,7 @@ KConfig.configure do |config|
|
|
119
120
|
rag.add_option :add_phony_rails , type: :boolean, default: false
|
120
121
|
rag.add_option :add_public_suffix , type: :boolean, default: false
|
121
122
|
rag.add_option :add_rails_html_sanitizer , type: :boolean, default: false
|
123
|
+
rag.add_option :add_redcarpet , type: :boolean, default: false
|
122
124
|
rag.add_option :add_twilio_ruby , type: :boolean, default: false
|
123
125
|
end
|
124
126
|
|
data/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "rails_app_generator",
|
3
|
-
"version": "0.2.
|
3
|
+
"version": "0.2.11",
|
4
4
|
"lockfileVersion": 2,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "rails_app_generator",
|
9
|
-
"version": "0.2.
|
9
|
+
"version": "0.2.11",
|
10
10
|
"dependencies": {
|
11
11
|
"daisyui": "^2.20.0"
|
12
12
|
},
|
data/package.json
CHANGED
@@ -0,0 +1,15 @@
|
|
1
|
+
{
|
2
|
+
"args": {
|
3
|
+
"app_path": "administrate",
|
4
|
+
"destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/addons"
|
5
|
+
},
|
6
|
+
"opts": {
|
7
|
+
"skip_git": true,
|
8
|
+
"skip_test": true,
|
9
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/administrate/_.rb",
|
10
|
+
"add_annotate": true,
|
11
|
+
"add_administrate": true,
|
12
|
+
"add_faker": true,
|
13
|
+
"add_rubocop": true
|
14
|
+
}
|
15
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
{
|
2
|
+
"args": {
|
3
|
+
"app_path": "redcarpet",
|
4
|
+
"destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/addons"
|
5
|
+
},
|
6
|
+
"opts": {
|
7
|
+
"skip_git": true,
|
8
|
+
"skip_test": true,
|
9
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/redcarpet/_.rb",
|
10
|
+
"add_redcarpet": true
|
11
|
+
}
|
12
|
+
}
|
data/tasks/profile.thor
CHANGED
@@ -44,7 +44,6 @@ class Profile < Thor
|
|
44
44
|
template('profile/app/controllers/home_controller.rb' , after_template_path('app/controllers/home_controller.rb') , force: options[:force])
|
45
45
|
template('profile/app/views/home/index.html.erb' , after_template_path('app/views/home/index.html.erb') , force: options[:force])
|
46
46
|
|
47
|
-
copy_file('profile/app/views/layouts/_alerts.html.erb' , after_template_path('app/views/layouts/_alerts.html.erb') , force: options[:force])
|
48
47
|
copy_file('profile/app/views/layouts/_navbar.html.erb' , after_template_path('app/views/layouts/_navbar.html.erb') , force: options[:force])
|
49
48
|
copy_file('profile/app/views/layouts/_footer.html.erb' , after_template_path('app/views/layouts/_footer.html.erb') , force: options[:force])
|
50
49
|
copy_file('profile/app/views/layouts/application.html.erb' , after_template_path('app/views/layouts/application.html.erb') , force: options[:force])
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
# lib/rails_app_generator/rag_initializer.rb
|
4
|
-
# rag.add_option :add_<%= data.name_snake %>
|
4
|
+
# rag.add_option :add_<%= data.name_snake %> , type: :boolean, default: false
|
5
5
|
|
6
6
|
module RailsAppGenerator
|
7
7
|
# Custom add-ons for RailsAppGenerator
|
@@ -1,11 +1,3 @@
|
|
1
|
-
<style>
|
2
|
-
.alert { color: red; }
|
3
|
-
.notice { color: green; }
|
4
|
-
</style>
|
5
|
-
|
6
|
-
<%% flash.each do |type, msg| %><div class="<%%= type %>"><%%= msg %></div><%% end %>
|
7
|
-
<%% if flash.any? %><hr /><%% end %>
|
8
|
-
|
9
1
|
<h1><%= data.name_human %></h1>
|
10
2
|
|
11
3
|
<h2><%= data.description %></h2>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_app_generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-08-
|
11
|
+
date: 2022-08-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bootsnap
|
@@ -189,6 +189,18 @@ files:
|
|
189
189
|
- after_templates/addons/acts_as_list/app/views/todo_items/index.html.erb
|
190
190
|
- after_templates/addons/acts_as_list/config/routes.rb
|
191
191
|
- after_templates/addons/acts_as_list/db/seeds.rb
|
192
|
+
- after_templates/addons/administrate/_.rb
|
193
|
+
- after_templates/addons/administrate/app/controllers/home_controller.rb
|
194
|
+
- after_templates/addons/administrate/app/dashboards/author_dashboard.rb
|
195
|
+
- after_templates/addons/administrate/app/dashboards/post_dashboard.rb
|
196
|
+
- after_templates/addons/administrate/app/dashboards/product_dashboard.rb
|
197
|
+
- after_templates/addons/administrate/app/models/author.rb
|
198
|
+
- after_templates/addons/administrate/app/models/post.rb
|
199
|
+
- after_templates/addons/administrate/app/views/home/index.html.erb
|
200
|
+
- after_templates/addons/administrate/app/views/layouts/_footer.html.erb
|
201
|
+
- after_templates/addons/administrate/app/views/layouts/_navbar.html.erb
|
202
|
+
- after_templates/addons/administrate/app/views/layouts/application.html.erb
|
203
|
+
- after_templates/addons/administrate/db/seeds.rb
|
192
204
|
- after_templates/addons/bcrypt_ruby/_.rb
|
193
205
|
- after_templates/addons/bcrypt_ruby/app/controllers/home_controller.rb
|
194
206
|
- after_templates/addons/bcrypt_ruby/app/models/user.rb
|
@@ -271,6 +283,12 @@ files:
|
|
271
283
|
- after_templates/addons/public_suffix/app/views/layouts/application.html.erb
|
272
284
|
- after_templates/addons/rails_html_sanitizer/_.rb
|
273
285
|
- after_templates/addons/rails_html_sanitizer/home/index.html.erb
|
286
|
+
- after_templates/addons/redcarpet/_.rb
|
287
|
+
- after_templates/addons/redcarpet/app/controllers/home_controller.rb
|
288
|
+
- after_templates/addons/redcarpet/app/views/home/index.html.erb
|
289
|
+
- after_templates/addons/redcarpet/app/views/layouts/_footer.html.erb
|
290
|
+
- after_templates/addons/redcarpet/app/views/layouts/_navbar.html.erb
|
291
|
+
- after_templates/addons/redcarpet/app/views/layouts/application.html.erb
|
274
292
|
- after_templates/addons/rubocop/_.rb
|
275
293
|
- after_templates/addons/rubocop/app/assets/images/cop-output.png
|
276
294
|
- after_templates/addons/rubocop/app/controllers/home_controller.rb
|
@@ -480,6 +498,7 @@ files:
|
|
480
498
|
- lib/rails_app_generator/addon.rb
|
481
499
|
- lib/rails_app_generator/addon_util.rb
|
482
500
|
- lib/rails_app_generator/addons/acts_as_list.rb
|
501
|
+
- lib/rails_app_generator/addons/administrate.rb
|
483
502
|
- lib/rails_app_generator/addons/annotate.rb
|
484
503
|
- lib/rails_app_generator/addons/bcrypt_ruby.rb
|
485
504
|
- lib/rails_app_generator/addons/browser.rb
|
@@ -506,6 +525,7 @@ files:
|
|
506
525
|
- lib/rails_app_generator/addons/public_suffix.rb
|
507
526
|
- lib/rails_app_generator/addons/pundit.rb
|
508
527
|
- lib/rails_app_generator/addons/rails_html_sanitizer.rb
|
528
|
+
- lib/rails_app_generator/addons/redcarpet.rb
|
509
529
|
- lib/rails_app_generator/addons/rspec.rb
|
510
530
|
- lib/rails_app_generator/addons/rubocop.rb
|
511
531
|
- lib/rails_app_generator/addons/scaffold.rb
|
@@ -551,6 +571,7 @@ files:
|
|
551
571
|
- package-lock.json
|
552
572
|
- package.json
|
553
573
|
- profiles/addons/acts_as_list.json
|
574
|
+
- profiles/addons/administrate.json
|
554
575
|
- profiles/addons/bcrypt_ruby.json
|
555
576
|
- profiles/addons/browser.json
|
556
577
|
- profiles/addons/chartkick.json
|
@@ -564,6 +585,7 @@ files:
|
|
564
585
|
- profiles/addons/phony_rails.json
|
565
586
|
- profiles/addons/public_suffix.json
|
566
587
|
- profiles/addons/rails-html-sanitizer.json
|
588
|
+
- profiles/addons/redcarpet.json
|
567
589
|
- profiles/addons/rubocop.json
|
568
590
|
- profiles/addons/twilio_ruby.json
|
569
591
|
- profiles/application/printspeak.json
|