rails_app_generator 0.1.14 → 0.1.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -0
- data/CHANGELOG.md +22 -0
- data/after_templates/addons/acts_as_list/_.rb +62 -0
- data/after_templates/addons/acts_as_list/app/controllers/home_controller.rb +7 -0
- data/after_templates/addons/acts_as_list/app/controllers/todo_items_controller.rb +132 -0
- data/after_templates/addons/acts_as_list/app/models/todo_item.rb +23 -0
- data/after_templates/addons/acts_as_list/app/models/todo_list.rb +12 -0
- data/after_templates/addons/acts_as_list/app/views/home/index.html.erb +23 -0
- data/after_templates/addons/acts_as_list/app/views/layouts/_alerts.html.erb +2 -0
- data/after_templates/addons/acts_as_list/app/views/layouts/_footer.html.erb +3 -0
- data/after_templates/addons/acts_as_list/app/views/layouts/_navbar.html.erb +8 -0
- data/after_templates/addons/acts_as_list/app/views/layouts/application.html.erb +28 -0
- data/after_templates/addons/acts_as_list/app/views/todo_items/_todo_item.html.erb +21 -0
- data/after_templates/addons/acts_as_list/app/views/todo_items/index.html.erb +25 -0
- data/after_templates/addons/acts_as_list/config/routes.rb +15 -0
- data/after_templates/addons/acts_as_list/db/seeds.rb +17 -0
- data/after_templates/addons/browser/_.rb +20 -0
- data/after_templates/addons/browser/app/controllers/home_controller.rb +5 -0
- data/after_templates/addons/browser/app/views/home/index.html.erb +103 -0
- data/after_templates/addons/faker/_.rb +38 -0
- data/after_templates/addons/faker/app/controllers/home_controller.rb +7 -0
- data/after_templates/addons/faker/app/views/home/index.html.erb +102 -0
- data/after_templates/addons/faker/app/views/layouts/_alerts.html.erb +2 -0
- data/after_templates/addons/faker/app/views/layouts/_footer.html.erb +3 -0
- data/after_templates/addons/faker/app/views/layouts/_navbar.html.erb +3 -0
- data/after_templates/addons/faker/app/views/layouts/application.html.erb +28 -0
- data/lib/rails_app_generator/addons/acts_as_list.rb +17 -0
- data/lib/rails_app_generator/addons/browser.rb +13 -0
- data/lib/rails_app_generator/addons/faker.rb +16 -0
- data/lib/rails_app_generator/app_generator.rb +6 -6
- data/lib/rails_app_generator/options/rails_options.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/acts_as_list.json +13 -0
- data/profiles/addons/browser.json +12 -0
- data/profiles/addons/faker.json +12 -0
- data/tasks/profile.thor +14 -3
- data/templates/thor_task/profile/{after_template.rb.tt → after_template.rb} +11 -1
- data/templates/thor_task/profile/app/controllers/home_controller.rb +7 -0
- data/templates/thor_task/profile/app/views/home/index.html.erb.tt +23 -0
- data/templates/thor_task/profile/app/views/layouts/_alerts.html.erb.tt +2 -0
- data/templates/thor_task/profile/app/views/layouts/_footer.html.erb.tt +3 -0
- data/templates/thor_task/profile/app/views/layouts/_navbar.html.erb +7 -0
- data/templates/thor_task/profile/app/views/layouts/application.html.erb.tt +28 -0
- data/templates/thor_task/profile/config/initializers/addon_name.rb +1 -0
- data/templates/thor_task/profile/db/seeds.rb +16 -0
- metadata +41 -5
- data/after_templates/addons/rails_html_sanitizer_xxx/home/index.html.erb +0 -31
- data/templates/thor_task/profile/home/index.html.erb.tt +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0537d791d3c10bc8073b5e9e923d9f3780afad431fad2d1caa4d8f52c9dc92b2
|
4
|
+
data.tar.gz: e798fbbc728bff9920c1974754052c435f25cc1426bde4a028c4bacd8e58b9b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c46126c1818d49d73f0732beff5975546c5f3c3c7c4f63377f4b240b2cc186179f3a675c1330c0c87f47f0dcd1a47d487c31253678890036af5d9663290e5978
|
7
|
+
data.tar.gz: 33633fa8eb13f610dbfed6d07d0f03678f1a33de1abfc768b5d31e977dc9df3abd6a742717ee15ad7e926072fb7dbaf25ddf1811440547e44d241ce9edbcd852
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,25 @@
|
|
1
|
+
## [0.1.16](https://github.com/klueless-io/rails_app_generator/compare/v0.1.15...v0.1.16) (2022-08-05)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* addon faker ([0c61f17](https://github.com/klueless-io/rails_app_generator/commit/0c61f17dbff15dcfc2f9d3851601cbdddde4d207))
|
7
|
+
|
8
|
+
## [0.1.15](https://github.com/klueless-io/rails_app_generator/compare/v0.1.14...v0.1.15) (2022-08-04)
|
9
|
+
|
10
|
+
|
11
|
+
### Bug Fixes
|
12
|
+
|
13
|
+
* addon acts_as_list ([6b7e759](https://github.com/klueless-io/rails_app_generator/commit/6b7e759b1601300b7f616ced2a8dce27056bf781))
|
14
|
+
* addon acts_as_list ([c88e583](https://github.com/klueless-io/rails_app_generator/commit/c88e58373833e5ab9685dd1ddf7dd4327ef7db8b))
|
15
|
+
|
16
|
+
## [0.1.14](https://github.com/klueless-io/rails_app_generator/compare/v0.1.13...v0.1.14) (2022-08-04)
|
17
|
+
|
18
|
+
|
19
|
+
### Bug Fixes
|
20
|
+
|
21
|
+
* add twilio addon ([2a70a12](https://github.com/klueless-io/rails_app_generator/commit/2a70a1216dc9d7475289a154f6c7b8c4a2a80403))
|
22
|
+
|
1
23
|
## [0.1.13](https://github.com/klueless-io/rails_app_generator/compare/v0.1.12...v0.1.13) (2022-08-03)
|
2
24
|
|
3
25
|
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# require 'pry'
|
4
|
+
|
5
|
+
# This "acts_as" extension provides the capabilities for sorting and reordering a number of objects in a list. The class that has this specified needs to have a "position" column defined as an integer on the mapped database table.
|
6
|
+
#
|
7
|
+
# exe/rag addons/acts_as_list
|
8
|
+
|
9
|
+
self.local_template_path = File.dirname(__FILE__)
|
10
|
+
|
11
|
+
gac 'base rails 7 image created'
|
12
|
+
|
13
|
+
add_controller('home', 'index')
|
14
|
+
route("root 'home#index'")
|
15
|
+
|
16
|
+
force_copy
|
17
|
+
|
18
|
+
add_scaffold('todo_list', 'name')
|
19
|
+
add_scaffold('todo_item', 'task', 'position:integer', 'todo_list:references')
|
20
|
+
|
21
|
+
copy_file 'app/controllers/home_controller.rb' , 'app/controllers/home_controller.rb'
|
22
|
+
copy_file 'app/controllers/todo_items_controller.rb' , 'app/controllers/todo_items_controller.rb'
|
23
|
+
copy_file 'app/models/todo_list.rb' , 'app/models/todo_list.rb'
|
24
|
+
copy_file 'app/models/todo_item.rb' , 'app/models/todo_item.rb'
|
25
|
+
|
26
|
+
copy_file 'app/views/home/index.html.erb' , 'app/views/home/index.html.erb'
|
27
|
+
|
28
|
+
copy_file 'app/views/layouts/_alerts.html.erb' , 'app/views/layouts/_alerts.html.erb'
|
29
|
+
copy_file 'app/views/layouts/_navbar.html.erb' , 'app/views/layouts/_navbar.html.erb'
|
30
|
+
copy_file 'app/views/layouts/_footer.html.erb' , 'app/views/layouts/_footer.html.erb'
|
31
|
+
template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
|
32
|
+
|
33
|
+
copy_file 'app/views/todo_items/index.html.erb' , 'app/views/todo_items/index.html.erb'
|
34
|
+
copy_file 'app/views/todo_items/_todo_item.html.erb' , 'app/views/todo_items/_todo_item.html.erb'
|
35
|
+
|
36
|
+
copy_file 'config/routes.rb' , 'config/routes.rb'
|
37
|
+
|
38
|
+
template 'db/seeds.rb' , 'db/seeds.rb'
|
39
|
+
|
40
|
+
after_bundle do
|
41
|
+
setup_db
|
42
|
+
end
|
43
|
+
|
44
|
+
def setup_db
|
45
|
+
|
46
|
+
db_migrate
|
47
|
+
rails_command('db:seed')
|
48
|
+
end
|
49
|
+
|
50
|
+
# Other template command examples
|
51
|
+
# css_install('tailwind')
|
52
|
+
# rails_command('db:migrate')
|
53
|
+
# bundle_add('hotwire-rails')
|
54
|
+
# rails_command('hotwire:install')
|
55
|
+
# run('bin/importmap pin sortablejs')
|
56
|
+
# run('npm install daisyui')
|
57
|
+
# create_file 'app/assets/stylesheets/custom-bootstrap-import.scss' , read_template('custom-bootstrap-import.scss')
|
58
|
+
# append_to_file 'app/assets/config/manifest.js' , read_template('manifest.js')
|
59
|
+
# insert_into_file 'app/views/layouts/application.html.erb', read_template('application.html.erb'),
|
60
|
+
# before: %( <%= javascript_include_tag "application", "data-turbo-track": "reload", defer: true %>)
|
61
|
+
# gsub_file 'app/views/layouts/application.html.erb', %(container mx-auto mt-28 px-5 flex), 'container mx-auto px-5'
|
62
|
+
# template 'home.css', 'app/assets/stylesheets/home.css'
|
@@ -0,0 +1,132 @@
|
|
1
|
+
class TodoItemsController < ApplicationController
|
2
|
+
before_action :set_todo_item, only: %i[
|
3
|
+
show
|
4
|
+
edit
|
5
|
+
update
|
6
|
+
destroy
|
7
|
+
insert_at
|
8
|
+
move_lower
|
9
|
+
move_higher
|
10
|
+
move_to_bottom
|
11
|
+
move_to_top
|
12
|
+
remove_from_list
|
13
|
+
]
|
14
|
+
|
15
|
+
before_action :set_todo_items, only: %i[
|
16
|
+
index
|
17
|
+
insert_at
|
18
|
+
move_lower
|
19
|
+
move_higher
|
20
|
+
move_to_bottom
|
21
|
+
move_to_top
|
22
|
+
remove_from_list
|
23
|
+
]
|
24
|
+
|
25
|
+
# GET /todo_items or /todo_items.json
|
26
|
+
def index
|
27
|
+
end
|
28
|
+
|
29
|
+
# GET /todo_items/1 or /todo_items/1.json
|
30
|
+
def show
|
31
|
+
end
|
32
|
+
|
33
|
+
def insert_at
|
34
|
+
@todo_item.insert_at(2)
|
35
|
+
render :index, params
|
36
|
+
end
|
37
|
+
|
38
|
+
def move_lower
|
39
|
+
@todo_item.move_lower
|
40
|
+
render :index, params
|
41
|
+
end
|
42
|
+
|
43
|
+
def move_higher
|
44
|
+
@todo_item.move_higher
|
45
|
+
render :index, params
|
46
|
+
end
|
47
|
+
|
48
|
+
def move_to_bottom
|
49
|
+
@todo_item.move_to_bottom
|
50
|
+
render :index, params
|
51
|
+
end
|
52
|
+
|
53
|
+
def move_to_top
|
54
|
+
@todo_item.move_to_top
|
55
|
+
render :index, params
|
56
|
+
end
|
57
|
+
|
58
|
+
def remove_from_list
|
59
|
+
@todo_item.remove_from_list
|
60
|
+
render :index, params
|
61
|
+
end
|
62
|
+
|
63
|
+
# GET /todo_items/new
|
64
|
+
def new
|
65
|
+
@todo_item = TodoItem.new
|
66
|
+
end
|
67
|
+
|
68
|
+
# GET /todo_items/1/edit
|
69
|
+
def edit
|
70
|
+
end
|
71
|
+
|
72
|
+
# POST /todo_items or /todo_items.json
|
73
|
+
def create
|
74
|
+
@todo_item = TodoItem.new(todo_item_params)
|
75
|
+
|
76
|
+
respond_to do |format|
|
77
|
+
if @todo_item.save
|
78
|
+
format.html { redirect_to todo_item_url(@todo_item), notice: "Todo item was successfully created." }
|
79
|
+
format.json { render :show, status: :created, location: @todo_item }
|
80
|
+
else
|
81
|
+
format.html { render :new, status: :unprocessable_entity }
|
82
|
+
format.json { render json: @todo_item.errors, status: :unprocessable_entity }
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
# PATCH/PUT /todo_items/1 or /todo_items/1.json
|
88
|
+
def update
|
89
|
+
respond_to do |format|
|
90
|
+
if @todo_item.update(todo_item_params)
|
91
|
+
format.html { redirect_to todo_item_url(@todo_item), notice: "Todo item was successfully updated." }
|
92
|
+
format.json { render :show, status: :ok, location: @todo_item }
|
93
|
+
else
|
94
|
+
format.html { render :edit, status: :unprocessable_entity }
|
95
|
+
format.json { render json: @todo_item.errors, status: :unprocessable_entity }
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
# DELETE /todo_items/1 or /todo_items/1.json
|
101
|
+
def destroy
|
102
|
+
@todo_item.destroy
|
103
|
+
|
104
|
+
respond_to do |format|
|
105
|
+
format.html { redirect_to todo_items_url, notice: "Todo item was successfully destroyed." }
|
106
|
+
format.json { head :no_content }
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
def query_params
|
111
|
+
params.permit(:todo_list_id)
|
112
|
+
end
|
113
|
+
helper_method :query_params
|
114
|
+
|
115
|
+
private
|
116
|
+
# Use callbacks to share common setup or constraints between actions.
|
117
|
+
def set_todo_item
|
118
|
+
@todo_item = TodoItem.find(params[:id])
|
119
|
+
end
|
120
|
+
|
121
|
+
def set_todo_items
|
122
|
+
todo_list_id = params[:todo_list_id]
|
123
|
+
|
124
|
+
@todo_items = todo_list_id.nil? ? TodoItem.all : TodoItem.where(todo_list_id: todo_list_id)
|
125
|
+
@todo_items = @todo_items.order(:todo_list_id, :position)
|
126
|
+
end
|
127
|
+
|
128
|
+
# Only allow a list of trusted parameters through.
|
129
|
+
def todo_item_params
|
130
|
+
params.require(:todo_item).permit(:task, :position, :todo_list_id)
|
131
|
+
end
|
132
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# == Schema Information
|
2
|
+
#
|
3
|
+
# Table name: todo_items
|
4
|
+
#
|
5
|
+
# id :integer not null, primary key
|
6
|
+
# position :integer
|
7
|
+
# task :string
|
8
|
+
# created_at :datetime not null
|
9
|
+
# updated_at :datetime not null
|
10
|
+
# todo_list_id :integer not null
|
11
|
+
#
|
12
|
+
# Indexes
|
13
|
+
#
|
14
|
+
# index_todo_items_on_todo_list_id (todo_list_id)
|
15
|
+
#
|
16
|
+
# Foreign Keys
|
17
|
+
#
|
18
|
+
# todo_list_id (todo_list_id => todo_lists.id)
|
19
|
+
#
|
20
|
+
class TodoItem < ApplicationRecord
|
21
|
+
belongs_to :todo_list
|
22
|
+
acts_as_list scope: :todo_list
|
23
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# == Schema Information
|
2
|
+
#
|
3
|
+
# Table name: todo_lists
|
4
|
+
#
|
5
|
+
# id :integer not null, primary key
|
6
|
+
# name :string
|
7
|
+
# created_at :datetime not null
|
8
|
+
# updated_at :datetime not null
|
9
|
+
#
|
10
|
+
class TodoList < ApplicationRecord
|
11
|
+
has_many :todo_items, -> { order(position: :asc) }
|
12
|
+
end
|
@@ -0,0 +1,23 @@
|
|
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
|
+
<h1>Acts as list</h1>
|
10
|
+
|
11
|
+
<h2>This "acts_as" extension provides the capabilities for sorting and reordering a number of objects in a list. The class that has this specified needs to have a "position" column defined as an integer on the mapped database table.</h2>
|
12
|
+
|
13
|
+
<!--
|
14
|
+
Add/Remove as needed
|
15
|
+
-->
|
16
|
+
|
17
|
+
<!--
|
18
|
+
<= link_to 'Some Action', home_some_action_path %>
|
19
|
+
|
20
|
+
<= link_to 'Products', products_path %> |
|
21
|
+
<= link_to 'Posts', posts_path %> |
|
22
|
+
<= link_to 'People', people_path %>
|
23
|
+
-->
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<header>
|
2
|
+
<%= link_to 'Home', root_path %> |
|
3
|
+
<%= link_to 'ToDo List', todo_lists_path %> |
|
4
|
+
<%= link_to 'ToDo Items', todo_items_path %> |
|
5
|
+
<%= link_to 'People', todo_items_path(todo_list_id: TodoList.find_by(name: 'people')) %> |
|
6
|
+
<%= link_to 'Jobs', todo_items_path(todo_list_id: TodoList.find_by(name: 'jobs')) %>
|
7
|
+
<hr />
|
8
|
+
</header>
|
@@ -0,0 +1,28 @@
|
|
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
|
+
<style>
|
15
|
+
.alert { color: red; }
|
16
|
+
.notice { color: green; }
|
17
|
+
</style>
|
18
|
+
</head>
|
19
|
+
|
20
|
+
<body>
|
21
|
+
<%%= render 'layouts/navbar' %>
|
22
|
+
<main>
|
23
|
+
<%%= render 'layouts/alerts' %>
|
24
|
+
<%%= yield %>
|
25
|
+
</main>
|
26
|
+
<%%= render 'layouts/footer' %>
|
27
|
+
</body>
|
28
|
+
</html>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<tr>
|
2
|
+
<td>
|
3
|
+
<%= todo_item.task %>
|
4
|
+
</td>
|
5
|
+
<td>
|
6
|
+
<%= todo_item.position %>
|
7
|
+
</td>
|
8
|
+
<td>
|
9
|
+
<%= todo_item.todo_list.name %>
|
10
|
+
</td>
|
11
|
+
<td>
|
12
|
+
<%= link_to "Show", todo_item %> |
|
13
|
+
<%= link_to "Insert At #2", insert_at_todo_item_path(todo_item.id, **query_params) %> |
|
14
|
+
<%= link_to "Higher", move_higher_todo_item_path(todo_item.id, **query_params) %> |
|
15
|
+
<%= link_to "Lower", move_lower_todo_item_path(todo_item.id, **query_params) %> |
|
16
|
+
<%= link_to "Top", move_to_top_todo_item_path(todo_item.id, **query_params) %> |
|
17
|
+
<%= link_to "Bottom", move_to_bottom_todo_item_path(todo_item.id, **query_params) %> |
|
18
|
+
<%= link_to "Remove From List", remove_from_list_todo_item_path(todo_item.id, **query_params) %>
|
19
|
+
</td>
|
20
|
+
</tr>
|
21
|
+
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<p style="color: green"><%= notice %></p>
|
2
|
+
|
3
|
+
<h1>Todo items</h1>
|
4
|
+
|
5
|
+
<div id="todo_items">
|
6
|
+
<table>
|
7
|
+
<thead>
|
8
|
+
<tr>
|
9
|
+
<th>Task</th>
|
10
|
+
<th>Position</th>
|
11
|
+
<th>List Name</th>
|
12
|
+
</tr>
|
13
|
+
</thead>
|
14
|
+
<tbody>
|
15
|
+
|
16
|
+
<% @todo_items.each do |todo_item| %>
|
17
|
+
<%= render todo_item %>
|
18
|
+
<% end %>
|
19
|
+
|
20
|
+
</tbody>
|
21
|
+
</table>
|
22
|
+
|
23
|
+
</div>
|
24
|
+
|
25
|
+
<%= link_to "New todo item", new_todo_item_path %>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
Rails.application.routes.draw do
|
2
|
+
resources :todo_items do
|
3
|
+
member do
|
4
|
+
get :insert_at
|
5
|
+
get :move_lower
|
6
|
+
get :move_higher
|
7
|
+
get :move_to_bottom
|
8
|
+
get :move_to_top
|
9
|
+
get :remove_from_list
|
10
|
+
end
|
11
|
+
end
|
12
|
+
resources :todo_lists
|
13
|
+
root 'home#index'
|
14
|
+
get 'home/index'
|
15
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# This file should contain all the record creation needed to seed the database with its default values.
|
2
|
+
# The data can then be loaded with the bin/rails db:seed command (or created alongside the database with db:setup).
|
3
|
+
#
|
4
|
+
# User.find_or_create_by(email: "admin@admin.com") do |user|
|
5
|
+
# user.name = 'Admin'
|
6
|
+
# user.password = 'password'
|
7
|
+
# user.admin = true
|
8
|
+
# end
|
9
|
+
|
10
|
+
people = TodoList.create(name: 'people')
|
11
|
+
jobs = TodoList.create(name: 'jobs')
|
12
|
+
# lisa = User.create(email: 'lisa@site.com', name: 'lisa', password: 'password')
|
13
|
+
|
14
|
+
5.times do |i|
|
15
|
+
TodoItem.create(todo_list: people, task: "Person Name #{i}", position: i)
|
16
|
+
TodoItem.create(todo_list: jobs , task: "Profession #{i}", position: i)
|
17
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# require 'pry'
|
4
|
+
|
5
|
+
# Do some browser detection with Ruby.
|
6
|
+
#
|
7
|
+
# exe/rag addons/browser
|
8
|
+
|
9
|
+
self.local_template_path = File.dirname(__FILE__)
|
10
|
+
|
11
|
+
gac 'base rails 7 image created'
|
12
|
+
|
13
|
+
add_controller('home', 'index')
|
14
|
+
route("root 'home#index'")
|
15
|
+
|
16
|
+
force_copy
|
17
|
+
|
18
|
+
copy_file 'app/controllers/home_controller.rb' , 'app/controllers/home_controller.rb'
|
19
|
+
copy_file 'app/views/home/index.html.erb' , 'app/views/home/index.html.erb'
|
20
|
+
|
@@ -0,0 +1,103 @@
|
|
1
|
+
<h1>Browser</h1>
|
2
|
+
|
3
|
+
<h2>Do some browser detection with Ruby.</h2>
|
4
|
+
|
5
|
+
<ul>
|
6
|
+
<li><code>browser.bot?</code> <%= browser.bot? %>
|
7
|
+
<li><code>browser.chrome?</code> <%= browser.chrome? %>
|
8
|
+
<li><code>browser.core_media?</code> <%= browser.core_media? %>
|
9
|
+
<li><code>browser.duck_duck_go?</code> <%= browser.duck_duck_go? %>
|
10
|
+
<li><code>browser.edge?</code> <%= browser.edge? %>
|
11
|
+
<li><code>browser.electron?</code> <%= browser.electron? %>
|
12
|
+
<li><code>browser.firefox?</code> <%= browser.firefox? %>
|
13
|
+
<li><code>browser.full_version</code> <%= browser.full_version %>
|
14
|
+
<li><code>browser.ie?</code> <%= browser.ie? %>
|
15
|
+
<li><code>browser.known?</code> <%= browser.known? %>
|
16
|
+
<li><code>browser.unknown?</code> <%= browser.unknown? %>
|
17
|
+
<li><code>browser.meta</code> <%= browser.meta %>
|
18
|
+
<li><code>browser.name</code> <%= browser.name %>
|
19
|
+
<li><code>browser.nokia?</code> <%= browser.nokia? %>
|
20
|
+
<li><code>browser.opera?</code> <%= browser.opera? %>
|
21
|
+
<li><code>browser.opera_mini?</code> <%= browser.opera_mini? %>
|
22
|
+
<li><code>browser.phantom_js?</code> <%= browser.phantom_js? %>
|
23
|
+
<li><code>browser.quicktime?</code> <%= browser.quicktime? %>
|
24
|
+
<li><code>browser.safari?</code> <%= browser.safari? %>
|
25
|
+
<li><code>browser.safari_webapp_mode?</code> <%= browser.safari_webapp_mode? %>
|
26
|
+
<li><code>browser.samsung_browser?</code> <%= browser.samsung_browser? %>
|
27
|
+
<li><code>browser.to_s</code> <%= browser.to_s %>
|
28
|
+
<li><code>browser.uc_browser?</code> <%= browser.uc_browser? %>
|
29
|
+
<li><code>browser.version</code> <%= browser.version %>
|
30
|
+
<li><code>browser.webkit?</code> <%= browser.webkit? %>
|
31
|
+
<li><code>browser.webkit_full_version</code> <%= browser.webkit_full_version %>
|
32
|
+
<li><code>browser.yandex?</code> <%= browser.yandex? %>
|
33
|
+
<li><code>browser.wechat?</code> <%= browser.wechat? %>
|
34
|
+
<li><code>browser.qq?</code> <%= browser.qq? %>
|
35
|
+
<li><code>browser.weibo?</code> <%= browser.weibo? %>
|
36
|
+
<li><code>browser.sputnik?</code> <%= browser.sputnik? %>
|
37
|
+
<li><code>browser.sougou_browser?</code> <%= browser.sougou_browser? %>
|
38
|
+
<li><code>browser.bot.name</code> <%= browser.bot.name %>
|
39
|
+
<li><code>browser.bot.search_engine?</code> <%= browser.bot.search_engine? %>
|
40
|
+
<li><code>browser.bot?</code> <%= browser.bot? %>
|
41
|
+
<li><code>browser.bot.why? </code> <%= browser.bot.why? %>
|
42
|
+
<li><code>browser.device</code> <%= browser.device %>
|
43
|
+
<li><code>browser.device.id</code> <%= browser.device.id %>
|
44
|
+
<li><code>browser.device.name</code> <%= browser.device.name %>
|
45
|
+
<li><code>browser.device.unknown?</code> <%= browser.device.unknown? %>
|
46
|
+
<li><code>browser.device.blackberry_playbook?</code> <%= browser.device.blackberry_playbook? %>
|
47
|
+
<li><code>browser.device.console?</code> <%= browser.device.console? %>
|
48
|
+
<li><code>browser.device.ipad?</code> <%= browser.device.ipad? %>
|
49
|
+
<li><code>browser.device.iphone?</code> <%= browser.device.iphone? %>
|
50
|
+
<li><code>browser.device.ipod_touch?</code> <%= browser.device.ipod_touch? %>
|
51
|
+
<li><code>browser.device.kindle?</code> <%= browser.device.kindle? %>
|
52
|
+
<li><code>browser.device.kindle_fire?</code> <%= browser.device.kindle_fire? %>
|
53
|
+
<li><code>browser.device.mobile?</code> <%= browser.device.mobile? %>
|
54
|
+
<li><code>browser.device.nintendo?</code> <%= browser.device.nintendo? %>
|
55
|
+
<li><code>browser.device.playstation?</code> <%= browser.device.playstation? %>
|
56
|
+
<li><code>browser.device.ps3?</code> <%= browser.device.ps3? %>
|
57
|
+
<li><code>browser.device.ps4?</code> <%= browser.device.ps4? %>
|
58
|
+
<li><code>browser.device.psp?</code> <%= browser.device.psp? %>
|
59
|
+
<li><code>browser.device.silk?</code> <%= browser.device.silk? %>
|
60
|
+
<li><code>browser.device.surface?</code> <%= browser.device.surface? %>
|
61
|
+
<li><code>browser.device.tablet?</code> <%= browser.device.tablet? %>
|
62
|
+
<li><code>browser.device.tv?</code> <%= browser.device.tv? %>
|
63
|
+
<li><code>browser.device.vita?</code> <%= browser.device.vita? %>
|
64
|
+
<li><code>browser.device.wii?</code> <%= browser.device.wii? %>
|
65
|
+
<li><code>browser.device.wiiu?</code> <%= browser.device.wiiu? %>
|
66
|
+
<li><code>browser.device.samsung?</code> <%= browser.device.samsung? %>
|
67
|
+
<li><code>browser.device.switch?</code> <%= browser.device.switch? %>
|
68
|
+
<li><code>browser.device.xbox?</code> <%= browser.device.xbox? %>
|
69
|
+
<li><code>browser.device.xbox_360?</code> <%= browser.device.xbox_360? %>
|
70
|
+
<li><code>browser.device.xbox_one?</code> <%= browser.device.xbox_one? %>
|
71
|
+
<li><code>browser.platform</code> <%= browser.platform %>
|
72
|
+
<li><code>browser.platform.id</code> <%= browser.platform.id %>
|
73
|
+
<li><code>browser.platform.name</code> <%= browser.platform.name %>
|
74
|
+
<li><code>browser.platform.version</code> <%= browser.platform.version %>
|
75
|
+
<li><code>browser.platform.adobe_air?</code> <%= browser.platform.adobe_air? %>
|
76
|
+
<li><code>browser.platform.android?</code> <%= browser.platform.android? %>
|
77
|
+
<li><code>browser.platform.blackberry?</code> <%= browser.platform.blackberry? %>
|
78
|
+
<li><code>browser.platform.blackberry?(10) </code> <%= browser.platform.blackberry?(10) %>
|
79
|
+
<li><code>browser.platform.chrome_os?</code> <%= browser.platform.chrome_os? %>
|
80
|
+
<li><code>browser.platform.firefox_os?</code> <%= browser.platform.firefox_os? %>
|
81
|
+
<li><code>browser.platform.ios?</code> <%= browser.platform.ios? %>
|
82
|
+
<li><code>browser.platform.ios?(9)</code> <%= browser.platform.ios?(9) %>
|
83
|
+
<li><code>browser.platform.ios_app? </code> <%= browser.platform.ios_app? %>
|
84
|
+
<li><code>browser.platform.ios_webview? </code> <%= browser.platform.ios_webview? %>
|
85
|
+
<li><code>browser.platform.linux?</code> <%= browser.platform.linux? %>
|
86
|
+
<li><code>browser.platform.mac?</code> <%= browser.platform.mac? %>
|
87
|
+
<li><code>browser.platform.unknown?</code> <%= browser.platform.unknown? %>
|
88
|
+
<li><code>browser.platform.windows10?</code> <%= browser.platform.windows10? %>
|
89
|
+
<li><code>browser.platform.windows7?</code> <%= browser.platform.windows7? %>
|
90
|
+
<li><code>browser.platform.windows8?</code> <%= browser.platform.windows8? %>
|
91
|
+
<li><code>browser.platform.windows8_1?</code> <%= browser.platform.windows8_1? %>
|
92
|
+
<li><code>browser.platform.windows?</code> <%= browser.platform.windows? %>
|
93
|
+
<li><code>browser.platform.windows_mobile?</code> <%= browser.platform.windows_mobile? %>
|
94
|
+
<li><code>browser.platform.windows_phone?</code> <%= browser.platform.windows_phone? %>
|
95
|
+
<li><code>browser.platform.windows_rt?</code> <%= browser.platform.windows_rt? %>
|
96
|
+
<li><code>browser.platform.windows_touchscreen_desktop?</code> <%= browser.platform.windows_touchscreen_desktop? %>
|
97
|
+
<li><code>browser.platform.windows_vista?</code> <%= browser.platform.windows_vista? %>
|
98
|
+
<li><code>browser.platform.windows_wow64?</code> <%= browser.platform.windows_wow64? %>
|
99
|
+
<li><code>browser.platform.windows_x64?</code> <%= browser.platform.windows_x64? %>
|
100
|
+
<li><code>browser.platform.windows_x64_inclusive?</code> <%= browser.platform.windows_x64_inclusive? %>
|
101
|
+
<li><code>browser.platform.windows_xp?</code> <%= browser.platform.windows_xp? %>
|
102
|
+
<li><code>browser.platform.kai_os?</code> <%= browser.platform.kai_os? %>
|
103
|
+
</ul>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# require 'pry'
|
4
|
+
|
5
|
+
# Faker, a port of Data::Faker from Perl, is used to easily generate fake data: names, addresses, phone numbers, etc.
|
6
|
+
#
|
7
|
+
# exe/rag addons/faker
|
8
|
+
|
9
|
+
self.local_template_path = File.dirname(__FILE__)
|
10
|
+
|
11
|
+
gac 'base rails 7 image created'
|
12
|
+
|
13
|
+
add_controller('home', 'index')
|
14
|
+
route("root 'home#index'")
|
15
|
+
|
16
|
+
force_copy
|
17
|
+
|
18
|
+
copy_file 'app/controllers/home_controller.rb' , 'app/controllers/home_controller.rb'
|
19
|
+
copy_file 'app/views/home/index.html.erb' , 'app/views/home/index.html.erb'
|
20
|
+
|
21
|
+
copy_file 'app/views/layouts/_alerts.html.erb' , 'app/views/layouts/_alerts.html.erb'
|
22
|
+
copy_file 'app/views/layouts/_navbar.html.erb' , 'app/views/layouts/_navbar.html.erb'
|
23
|
+
copy_file 'app/views/layouts/_footer.html.erb' , 'app/views/layouts/_footer.html.erb'
|
24
|
+
template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
|
25
|
+
|
26
|
+
# Other template command examples
|
27
|
+
# css_install('tailwind')
|
28
|
+
# rails_command('db:migrate')
|
29
|
+
# bundle_add('hotwire-rails')
|
30
|
+
# rails_command('hotwire:install')
|
31
|
+
# run('bin/importmap pin sortablejs')
|
32
|
+
# run('npm install daisyui')
|
33
|
+
# create_file 'app/assets/stylesheets/custom-bootstrap-import.scss' , read_template('custom-bootstrap-import.scss')
|
34
|
+
# append_to_file 'app/assets/config/manifest.js' , read_template('manifest.js')
|
35
|
+
# insert_into_file 'app/views/layouts/application.html.erb', read_template('application.html.erb'),
|
36
|
+
# before: %( <%= javascript_include_tag "application", "data-turbo-track": "reload", defer: true %>)
|
37
|
+
# gsub_file 'app/views/layouts/application.html.erb', %(container mx-auto mt-28 px-5 flex), 'container mx-auto px-5'
|
38
|
+
# template 'home.css', 'app/assets/stylesheets/home.css'
|