roda-project 0.1.5 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/lib/roda/project/bin/generator.rb +11 -0
  3. data/lib/roda/project/bin/generators/migration.rb +49 -0
  4. data/lib/roda/project/bin/generators/routes.rb +105 -0
  5. data/lib/roda/project/bin/generators.rb +36 -0
  6. data/lib/roda/project/cli.rb +28 -40
  7. data/lib/roda/project/generator.rb +19 -0
  8. data/lib/roda/project/helpers/ids.rb +34 -1
  9. data/lib/roda/project/helpers/{input.rb → interactive_input.rb} +14 -2
  10. data/lib/roda/project/helpers/template.rb +13 -9
  11. data/lib/roda/project/{context.rb → main_context.rb} +25 -10
  12. data/lib/roda/{templates → project/templates}/base/app/app.rb.erb +10 -7
  13. data/lib/roda/{templates → project/templates}/base/minimal/Gemfile.erb +1 -3
  14. data/lib/roda/{templates → project/templates}/base/minimal/app.rb +4 -1
  15. data/lib/roda/project/templates/base/minimal/bin/roda.erb +47 -0
  16. data/lib/roda/{templates → project/templates}/base/scaffold/Gemfile.erb +8 -9
  17. data/lib/roda/project/templates/base/scaffold/app/config/config.rb.erb +24 -0
  18. data/lib/roda/project/templates/base/scaffold/bin/roda.erb +88 -0
  19. data/lib/roda/project/templates/front-end/app/views/layout.erb +23 -0
  20. data/lib/roda/{templates → project/templates}/front-end/esbuild.js +6 -6
  21. data/lib/roda/project/version.rb +2 -2
  22. data/lib/roda/project.rb +23 -12
  23. metadata +80 -63
  24. data/lib/roda/templates/base/minimal/Rakefile.erb +0 -60
  25. data/lib/roda/templates/base/scaffold/Rakefile.erb +0 -209
  26. data/lib/roda/templates/base/scaffold/app/config/config.rb.erb +0 -35
  27. data/lib/roda/templates/front-end/app/views/foo/html.rb +0 -6
  28. data/lib/roda/templates/front-end/app/views/html.rb +0 -38
  29. data/lib/roda/templates/front-end/app/views/layout.erb +0 -15
  30. /data/lib/roda/{templates → project/templates}/base/minimal/AGENTS.md +0 -0
  31. /data/lib/roda/{templates → project/templates}/base/minimal/Gemfile.lock +0 -0
  32. /data/lib/roda/{templates → project/templates}/base/minimal/Guardfile +0 -0
  33. /data/lib/roda/{templates → project/templates}/base/minimal/README.md +0 -0
  34. /data/lib/roda/{templates → project/templates}/base/minimal/boot.rb +0 -0
  35. /data/lib/roda/{templates → project/templates}/base/minimal/config.ru +0 -0
  36. /data/lib/roda/{templates → project/templates}/base/minimal/public/exception_page.css +0 -0
  37. /data/lib/roda/{templates → project/templates}/base/scaffold/AGENTS.md +0 -0
  38. /data/lib/roda/{templates → project/templates}/base/scaffold/Guardfile +0 -0
  39. /data/lib/roda/{templates → project/templates}/base/scaffold/README.md +0 -0
  40. /data/lib/roda/{templates → project/templates}/base/scaffold/app/config/locales/en.yml +0 -0
  41. /data/lib/roda/{templates → project/templates}/base/scaffold/app/config/locales/foo/en.yml +0 -0
  42. /data/lib/roda/{templates → project/templates}/base/scaffold/app/config/locales/foo/pt-br.yml +0 -0
  43. /data/lib/roda/{templates → project/templates}/base/scaffold/app/config/locales/pt-br.yml +0 -0
  44. /data/lib/roda/{templates → project/templates}/base/scaffold/app/config/providers/logger.rb +0 -0
  45. /data/lib/roda/{templates → project/templates}/base/scaffold/app/config/providers/mailer.rb +0 -0
  46. /data/lib/roda/{templates → project/templates}/base/scaffold/app/routes/foo.rb.erb +0 -0
  47. /data/lib/roda/{templates → project/templates}/base/scaffold/boot.rb.erb +0 -0
  48. /data/lib/roda/{templates → project/templates}/base/scaffold/config.ru.erb +0 -0
  49. /data/lib/roda/{templates → project/templates}/base/scaffold/public/exception_page.css +0 -0
  50. /data/lib/roda/{templates → project/templates}/database/app/config/providers/db/conn.rb +0 -0
  51. /data/lib/roda/{templates → project/templates}/database/db/seeds.rb +0 -0
  52. /data/lib/roda/{templates → project/templates}/front-end/app/assets/css/app.css +0 -0
  53. /data/lib/roda/{templates → project/templates}/front-end/app/assets/js/app.js +0 -0
  54. /data/lib/roda/{templates → project/templates}/front-end/app/assets/js/some/foo.js +0 -0
  55. /data/lib/roda/{templates → project/templates}/front-end/app/views/foo/bar.erb +0 -0
  56. /data/lib/roda/{templates → project/templates}/front-end/app/views/index.erb +0 -0
  57. /data/lib/roda/{templates → project/templates}/front-end/package.json +0 -0
  58. /data/lib/roda/{templates/base/scaffold → project/templates/front-end}/public/assets/app.css +0 -0
  59. /data/lib/roda/{templates/base/scaffold → project/templates/front-end}/public/assets/app.js +0 -0
  60. /data/lib/roda/{templates/base/scaffold → project/templates/front-end}/public/images/roda-project.png +0 -0
  61. /data/lib/roda/{templates → project/templates}/rodauth/app/models/account.rb +0 -0
  62. /data/lib/roda/{templates → project/templates}/rodauth/app/views/create-account.erb +0 -0
  63. /data/lib/roda/{templates → project/templates}/rodauth/db/migrations/001_add_rodauth.rb +0 -0
  64. /data/lib/roda/{templates → project/templates}/tests/minimal/minitest/spec/app_spec.rb +0 -0
  65. /data/lib/roda/{templates → project/templates}/tests/minimal/minitest/spec/spec_helper.rb.erb +0 -0
  66. /data/lib/roda/{templates → project/templates}/tests/minimal/rspec/spec/app_spec.rb +0 -0
  67. /data/lib/roda/{templates → project/templates}/tests/minimal/rspec/spec/spec_helper.rb +0 -0
  68. /data/lib/roda/{templates → project/templates}/tests/minitest/spec/app/app_spec.rb.erb +0 -0
  69. /data/lib/roda/{templates → project/templates}/tests/minitest/spec/app/routes/foo_spec.rb +0 -0
  70. /data/lib/roda/{templates → project/templates}/tests/minitest/spec/app/routes/test_branch_spec.rb +0 -0
  71. /data/lib/roda/{templates → project/templates}/tests/minitest/spec/app/views/html_spec.rb +0 -0
  72. /data/lib/roda/{templates → project/templates}/tests/minitest/spec/spec_helper.rb.erb +0 -0
  73. /data/lib/roda/{templates → project/templates}/tests/rspec/spec/app/app_spec.rb.erb +0 -0
  74. /data/lib/roda/{templates → project/templates}/tests/rspec/spec/app/routes/foo_spec.rb +0 -0
  75. /data/lib/roda/{templates → project/templates}/tests/rspec/spec/app/routes/test_branch_spec.rb +0 -0
  76. /data/lib/roda/{templates → project/templates}/tests/rspec/spec/app/views/html_spec.rb +0 -0
  77. /data/lib/roda/{templates → project/templates}/tests/rspec/spec/spec_helper.rb.erb +0 -0
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env ruby
2
+ require "thor"
3
+
4
+ class CLI < Thor
5
+ desc "console", "Open a console with application context, alias: roda c"
6
+ def console
7
+ system("irb -r ./boot.rb")
8
+ end
9
+ map "c" => "console"
10
+
11
+ desc "lint", "Run lint"
12
+ option :fix, type: :boolean, aliases: "-w", desc: "Auto fix lint warnings"
13
+ def lint
14
+ if options[:fix]
15
+ system("bundle exec standardrb --fix")
16
+ else
17
+ system("bundle exec standardrb")
18
+ end
19
+ end
20
+
21
+ desc "test", "Run tests"
22
+ def test<% if context.rspec? %>
23
+ system("RACK_ENV=test bundle exec rspec")<% else %>
24
+ system("RACK_ENV=test bundle exec minitest spec/")<% end %>
25
+ end
26
+
27
+ desc "dev", "Exec development server watching for changes"
28
+ def dev
29
+ system("RACK_ENV=development bundle exec guard")
30
+ end
31
+
32
+ desc "server", "Runs the project, alias roda s"
33
+ def server
34
+ if ENV["RACK_ENV"] == "production"
35
+ if ENV["SESSION_SECRET"].nil?
36
+ puts("SESSION_SECRET is empty")
37
+ exit 1
38
+ end
39
+ system("RUBYOPT=--yjit RUBY_YJIT_ENABLE=1 RACK_ENV=production bundle exec puma --port 4000")
40
+ else
41
+ system("RACK_ENV=development bundle exec puma --port 4000")
42
+ end
43
+ end
44
+ map "s" => "server"
45
+ end
46
+
47
+ CLI.start(ARGV)
@@ -10,34 +10,33 @@ gem "zeitwerk"
10
10
  # Authentication
11
11
  gem "rodauth"
12
12
  gem "jwt"
13
- <% end %>
13
+ <% end %><% if context.database? %>
14
14
  # Database
15
15
  gem "sequel"
16
- <%= "gem \"#{context.db_gem}\"" if context.database? %>
17
-
16
+ <%= "gem \"#{context.db_gem}\"" %>
17
+ <% end %>
18
18
  # Web Server
19
19
  gem "puma"
20
20
  # gem "falcon"
21
21
  # gem 'iodine'
22
- # gem 'thin'
22
+ # gem 'thin'<% if context.fullstack? %>
23
23
 
24
+ # Views
25
+ gem 'roda-assets_manifest'
26
+ <% end %>
24
27
  # Performance
25
28
  gem "oj"
26
29
  # gem 'async'
27
30
 
28
- # CLI
29
- gem "rake"
30
-
31
31
  # Security
32
32
  # gem "rack-attack"
33
33
 
34
34
  # Misc
35
- gem "html_slice"
36
35
  gem "mail"
37
36
  gem "bcrypt"
38
37
  gem "logger"
39
-
40
38
  group :development do
39
+ gem "thor"
41
40
  gem "guard-puma"
42
41
  gem "guard-livereload"
43
42
  gem "rack-livereload"
@@ -0,0 +1,24 @@
1
+ module Config
2
+ class << self
3
+ def get
4
+ @config ||= {
5
+ secret: ENV["SESSION_SECRET"] || 'DEV-ONLY-8<FQF8HiF)>l0hbPk£vBQ#IrYsoO}14k\l+-/gIU[j}l0hbPk£vBQ#IrY',
6
+ environment:,<% if context.rodauth? %>
7
+ hmac_secret: ENV["RODAUTH_HMAC_SECRET"] || 'DEV-ONLY',
8
+ jwt_secret: ENV["JWT_SECRET"] || 'DEV-ONLY',<% end %><% if context.fullstack? %>
9
+ i18n: {
10
+ translations: ["app/config/locales", "app/config/locales/foo"],
11
+ locale: ["en", "pt-br"]
12
+ }<% end %><% if context.database? %>,
13
+ db: {
14
+ url: not_production? ? <%= context.default_db_url %> : ENV["DATABASE_URL"]
15
+ }<% end %>
16
+ }
17
+ end
18
+
19
+ def not_production? = environment != "production"
20
+ def environment
21
+ ENV["RACK_ENV"] || "development"
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,88 @@
1
+ #!/usr/bin/env ruby
2
+ require "thor"
3
+ require "roda/project/bin/generators"
4
+ <% if context.database? %>
5
+ class Db < Thor
6
+ desc "migrate", "Migrate the database. Optional: provide target version, e.g., 'roda db:migrate 1'"
7
+ option :target, type: :numeric, aliases: "-t", desc: "provide target version"
8
+ def migrate
9
+ require_relative "../boot"
10
+ require "sequel"
11
+ require "sequel/extensions/migration"
12
+
13
+ Sequel.extension :migration
14
+ db = Providers::DB::Conn.get
15
+ if options[:target]
16
+ Sequel::Migrator.run(db, "db/migrations", target: options[:target].to_i)
17
+ else
18
+ Sequel::Migrator.run(db, "db/migrations")
19
+ end
20
+ puts "* database migration complete."
21
+ end
22
+ end
23
+ <% end %>
24
+ class CLI < Thor
25
+ desc "console", "Open a console with application context, alias: roda c"
26
+ def console
27
+ system("irb -r ./boot.rb")
28
+ end
29
+ map "c" => "console"
30
+
31
+ desc "lint", "Run lint"
32
+ option :fix, type: :boolean, aliases: "-w", desc: "Auto fix lint warnings"
33
+ def lint
34
+ if options[:fix]
35
+ system("bundle exec standardrb --fix")
36
+ else
37
+ system("bundle exec standardrb")
38
+ end
39
+ end
40
+
41
+ desc "test", "Run tests"
42
+ def test<% if context.rspec? %>
43
+ system("RACK_ENV=test bundle exec rspec")<% else %>
44
+ system("RACK_ENV=test bundle exec minitest spec/")<% end %>
45
+ end
46
+
47
+ desc "dev", "Exec development server watching for changes"
48
+ def dev
49
+ system("RACK_ENV=development bundle exec guard")
50
+ end
51
+ <% if context.fullstack? %>
52
+ desc "assets", "Compile assets (use -w flag to watch for changes)"
53
+ option :watch, type: :boolean, aliases: "-w", desc: "Watch for changes"
54
+ def assets
55
+ if options[:watch]
56
+ system("npm i && npm run build:watch")
57
+ else
58
+ system("npm i && npm run build")
59
+ end
60
+ end
61
+ <% end %>
62
+ desc "server", "Runs the project, alias roda s"
63
+ def server
64
+ if ENV["RACK_ENV"] == "production"<% if context.database? %>
65
+ if ENV["DATABASE_URL"].nil?
66
+ puts("DATABASE_URL is empty")
67
+ exit 1
68
+ end<% end %>
69
+ if ENV["SESSION_SECRET"].nil?
70
+ puts("SESSION_SECRET is empty")
71
+ exit 1
72
+ end
73
+ system("RUBYOPT=--yjit RUBY_YJIT_ENABLE=1 RACK_ENV=production bundle exec puma --port 4000")
74
+ else
75
+ system("RACK_ENV=development bundle exec puma --port 4000")
76
+ end
77
+ end
78
+ map "s" => "server"
79
+ <% if context.database? %>
80
+ desc "db", "Database functions"
81
+ subcommand "db", Db
82
+ <% end %>
83
+ desc "generate", "Commands to generate code"
84
+ <%= context.to_thor_option %>
85
+ subcommand "generate", Roda::Project::Bin::Generators
86
+ end
87
+
88
+ CLI.start(ARGV)
@@ -0,0 +1,23 @@
1
+ <html>
2
+ <head>
3
+ <meta charset='utf-8' />
4
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
5
+ <meta name="viewport"
6
+ content="width=device-width, initial-scale=1, shrink-to-fit=no">
7
+
8
+ <title>Roda project</title>
9
+
10
+ <%= css_entrypoint_tag(:app) %>
11
+ </head>
12
+ <body>
13
+ <img src='/public/images/roda-project.png' />
14
+ <br>
15
+ <div class="navbar">
16
+ <a href="/">home</a>
17
+ <a href="/foo/bar">foo/bar</a>
18
+ </div>
19
+
20
+ <%= yield %>
21
+ <%= js_entrypoint_tag(:app) %>
22
+ </body>
23
+ </html>
@@ -6,13 +6,13 @@ const isProduction = process.env.RACK_ENV === 'production';
6
6
  const cssEntryPoints = ['app']
7
7
  const jsEntryPoints = ['app']
8
8
 
9
- function config() {
10
- const assetsEntryPoints =
11
- cssEntryPoints.map((e) => `css/${e}.css`)
12
- .concat(
13
- jsEntryPoints.map((e) => `js/${e}.js`)
14
- )
9
+ const assetsEntryPoints =
10
+ cssEntryPoints.map((e) => `css/${e}.css`)
11
+ .concat(
12
+ jsEntryPoints.map((e) => `js/${e}.js`)
13
+ )
15
14
 
15
+ function config() {
16
16
  return {
17
17
  entryPoints: assetsEntryPoints.map((name) => `app/assets/${name}`),
18
18
  bundle: true,
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Roda
3
+ class Roda
4
4
  module Project
5
- VERSION = "0.1.5"
5
+ VERSION = "0.1.7"
6
6
  end
7
7
  end
data/lib/roda/project.rb CHANGED
@@ -1,17 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "tty-file"
4
- require "fileutils"
5
- require "tty-reader"
6
- require "pastel"
7
- require_relative "project/version"
8
- require_relative "project/helpers/ids"
9
- require_relative "project/context"
10
- require_relative "project/helpers/input"
11
- require_relative "project/helpers/template"
12
- require_relative "project/cli"
13
-
14
- module Roda
3
+ class Roda
15
4
  module Project
16
5
  class Error < StandardError; end
17
6
 
@@ -55,3 +44,25 @@ module Roda
55
44
  end
56
45
  end
57
46
  end
47
+
48
+ # Dependences
49
+ require "tty-file"
50
+ require "fileutils"
51
+ require "tty-reader"
52
+ require "pastel"
53
+ require "thor"
54
+ # Helpers
55
+ require_relative "project/helpers/ids"
56
+ require_relative "project/helpers/interactive_input"
57
+ require_relative "project/helpers/template"
58
+ # Base
59
+ require_relative "project/main_context"
60
+ require_relative "project/generator"
61
+ require_relative "project/cli"
62
+ # Generators
63
+ require_relative "project/bin/generator"
64
+ require_relative 'project/bin/generators/migration'
65
+ require_relative 'project/bin/generators/routes'
66
+ require_relative "project/bin/generators"
67
+ # Version
68
+ require_relative "project/version"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roda-project
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henrique F. Teixeira
@@ -51,6 +51,20 @@ dependencies:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: thor
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
54
68
  email:
55
69
  - hriqueft@gmail.com
56
70
  executables:
@@ -63,71 +77,74 @@ files:
63
77
  - bin/roda-project.rb
64
78
  - bin/setup
65
79
  - lib/roda/project.rb
80
+ - lib/roda/project/bin/generator.rb
81
+ - lib/roda/project/bin/generators.rb
82
+ - lib/roda/project/bin/generators/migration.rb
83
+ - lib/roda/project/bin/generators/routes.rb
66
84
  - lib/roda/project/cli.rb
67
- - lib/roda/project/context.rb
85
+ - lib/roda/project/generator.rb
68
86
  - lib/roda/project/helpers/ids.rb
69
- - lib/roda/project/helpers/input.rb
87
+ - lib/roda/project/helpers/interactive_input.rb
70
88
  - lib/roda/project/helpers/template.rb
89
+ - lib/roda/project/main_context.rb
90
+ - lib/roda/project/templates/base/app/app.rb.erb
91
+ - lib/roda/project/templates/base/minimal/AGENTS.md
92
+ - lib/roda/project/templates/base/minimal/Gemfile.erb
93
+ - lib/roda/project/templates/base/minimal/Gemfile.lock
94
+ - lib/roda/project/templates/base/minimal/Guardfile
95
+ - lib/roda/project/templates/base/minimal/README.md
96
+ - lib/roda/project/templates/base/minimal/app.rb
97
+ - lib/roda/project/templates/base/minimal/bin/roda.erb
98
+ - lib/roda/project/templates/base/minimal/boot.rb
99
+ - lib/roda/project/templates/base/minimal/config.ru
100
+ - lib/roda/project/templates/base/minimal/public/exception_page.css
101
+ - lib/roda/project/templates/base/scaffold/AGENTS.md
102
+ - lib/roda/project/templates/base/scaffold/Gemfile.erb
103
+ - lib/roda/project/templates/base/scaffold/Guardfile
104
+ - lib/roda/project/templates/base/scaffold/README.md
105
+ - lib/roda/project/templates/base/scaffold/app/config/config.rb.erb
106
+ - lib/roda/project/templates/base/scaffold/app/config/locales/en.yml
107
+ - lib/roda/project/templates/base/scaffold/app/config/locales/foo/en.yml
108
+ - lib/roda/project/templates/base/scaffold/app/config/locales/foo/pt-br.yml
109
+ - lib/roda/project/templates/base/scaffold/app/config/locales/pt-br.yml
110
+ - lib/roda/project/templates/base/scaffold/app/config/providers/logger.rb
111
+ - lib/roda/project/templates/base/scaffold/app/config/providers/mailer.rb
112
+ - lib/roda/project/templates/base/scaffold/app/routes/foo.rb.erb
113
+ - lib/roda/project/templates/base/scaffold/bin/roda.erb
114
+ - lib/roda/project/templates/base/scaffold/boot.rb.erb
115
+ - lib/roda/project/templates/base/scaffold/config.ru.erb
116
+ - lib/roda/project/templates/base/scaffold/public/exception_page.css
117
+ - lib/roda/project/templates/database/app/config/providers/db/conn.rb
118
+ - lib/roda/project/templates/database/db/seeds.rb
119
+ - lib/roda/project/templates/front-end/app/assets/css/app.css
120
+ - lib/roda/project/templates/front-end/app/assets/js/app.js
121
+ - lib/roda/project/templates/front-end/app/assets/js/some/foo.js
122
+ - lib/roda/project/templates/front-end/app/views/foo/bar.erb
123
+ - lib/roda/project/templates/front-end/app/views/index.erb
124
+ - lib/roda/project/templates/front-end/app/views/layout.erb
125
+ - lib/roda/project/templates/front-end/esbuild.js
126
+ - lib/roda/project/templates/front-end/package.json
127
+ - lib/roda/project/templates/front-end/public/assets/app.css
128
+ - lib/roda/project/templates/front-end/public/assets/app.js
129
+ - lib/roda/project/templates/front-end/public/images/roda-project.png
130
+ - lib/roda/project/templates/rodauth/app/models/account.rb
131
+ - lib/roda/project/templates/rodauth/app/views/create-account.erb
132
+ - lib/roda/project/templates/rodauth/db/migrations/001_add_rodauth.rb
133
+ - lib/roda/project/templates/tests/minimal/minitest/spec/app_spec.rb
134
+ - lib/roda/project/templates/tests/minimal/minitest/spec/spec_helper.rb.erb
135
+ - lib/roda/project/templates/tests/minimal/rspec/spec/app_spec.rb
136
+ - lib/roda/project/templates/tests/minimal/rspec/spec/spec_helper.rb
137
+ - lib/roda/project/templates/tests/minitest/spec/app/app_spec.rb.erb
138
+ - lib/roda/project/templates/tests/minitest/spec/app/routes/foo_spec.rb
139
+ - lib/roda/project/templates/tests/minitest/spec/app/routes/test_branch_spec.rb
140
+ - lib/roda/project/templates/tests/minitest/spec/app/views/html_spec.rb
141
+ - lib/roda/project/templates/tests/minitest/spec/spec_helper.rb.erb
142
+ - lib/roda/project/templates/tests/rspec/spec/app/app_spec.rb.erb
143
+ - lib/roda/project/templates/tests/rspec/spec/app/routes/foo_spec.rb
144
+ - lib/roda/project/templates/tests/rspec/spec/app/routes/test_branch_spec.rb
145
+ - lib/roda/project/templates/tests/rspec/spec/app/views/html_spec.rb
146
+ - lib/roda/project/templates/tests/rspec/spec/spec_helper.rb.erb
71
147
  - lib/roda/project/version.rb
72
- - lib/roda/templates/base/app/app.rb.erb
73
- - lib/roda/templates/base/minimal/AGENTS.md
74
- - lib/roda/templates/base/minimal/Gemfile.erb
75
- - lib/roda/templates/base/minimal/Gemfile.lock
76
- - lib/roda/templates/base/minimal/Guardfile
77
- - lib/roda/templates/base/minimal/README.md
78
- - lib/roda/templates/base/minimal/Rakefile.erb
79
- - lib/roda/templates/base/minimal/app.rb
80
- - lib/roda/templates/base/minimal/boot.rb
81
- - lib/roda/templates/base/minimal/config.ru
82
- - lib/roda/templates/base/minimal/public/exception_page.css
83
- - lib/roda/templates/base/scaffold/AGENTS.md
84
- - lib/roda/templates/base/scaffold/Gemfile.erb
85
- - lib/roda/templates/base/scaffold/Guardfile
86
- - lib/roda/templates/base/scaffold/README.md
87
- - lib/roda/templates/base/scaffold/Rakefile.erb
88
- - lib/roda/templates/base/scaffold/app/config/config.rb.erb
89
- - lib/roda/templates/base/scaffold/app/config/locales/en.yml
90
- - lib/roda/templates/base/scaffold/app/config/locales/foo/en.yml
91
- - lib/roda/templates/base/scaffold/app/config/locales/foo/pt-br.yml
92
- - lib/roda/templates/base/scaffold/app/config/locales/pt-br.yml
93
- - lib/roda/templates/base/scaffold/app/config/providers/logger.rb
94
- - lib/roda/templates/base/scaffold/app/config/providers/mailer.rb
95
- - lib/roda/templates/base/scaffold/app/routes/foo.rb.erb
96
- - lib/roda/templates/base/scaffold/boot.rb.erb
97
- - lib/roda/templates/base/scaffold/config.ru.erb
98
- - lib/roda/templates/base/scaffold/public/assets/app.css
99
- - lib/roda/templates/base/scaffold/public/assets/app.js
100
- - lib/roda/templates/base/scaffold/public/exception_page.css
101
- - lib/roda/templates/base/scaffold/public/images/roda-project.png
102
- - lib/roda/templates/database/app/config/providers/db/conn.rb
103
- - lib/roda/templates/database/db/seeds.rb
104
- - lib/roda/templates/front-end/app/assets/css/app.css
105
- - lib/roda/templates/front-end/app/assets/js/app.js
106
- - lib/roda/templates/front-end/app/assets/js/some/foo.js
107
- - lib/roda/templates/front-end/app/views/foo/bar.erb
108
- - lib/roda/templates/front-end/app/views/foo/html.rb
109
- - lib/roda/templates/front-end/app/views/html.rb
110
- - lib/roda/templates/front-end/app/views/index.erb
111
- - lib/roda/templates/front-end/app/views/layout.erb
112
- - lib/roda/templates/front-end/esbuild.js
113
- - lib/roda/templates/front-end/package.json
114
- - lib/roda/templates/rodauth/app/models/account.rb
115
- - lib/roda/templates/rodauth/app/views/create-account.erb
116
- - lib/roda/templates/rodauth/db/migrations/001_add_rodauth.rb
117
- - lib/roda/templates/tests/minimal/minitest/spec/app_spec.rb
118
- - lib/roda/templates/tests/minimal/minitest/spec/spec_helper.rb.erb
119
- - lib/roda/templates/tests/minimal/rspec/spec/app_spec.rb
120
- - lib/roda/templates/tests/minimal/rspec/spec/spec_helper.rb
121
- - lib/roda/templates/tests/minitest/spec/app/app_spec.rb.erb
122
- - lib/roda/templates/tests/minitest/spec/app/routes/foo_spec.rb
123
- - lib/roda/templates/tests/minitest/spec/app/routes/test_branch_spec.rb
124
- - lib/roda/templates/tests/minitest/spec/app/views/html_spec.rb
125
- - lib/roda/templates/tests/minitest/spec/spec_helper.rb.erb
126
- - lib/roda/templates/tests/rspec/spec/app/app_spec.rb.erb
127
- - lib/roda/templates/tests/rspec/spec/app/routes/foo_spec.rb
128
- - lib/roda/templates/tests/rspec/spec/app/routes/test_branch_spec.rb
129
- - lib/roda/templates/tests/rspec/spec/app/views/html_spec.rb
130
- - lib/roda/templates/tests/rspec/spec/spec_helper.rb.erb
131
148
  homepage: https://github.com/roda-project
132
149
  licenses:
133
150
  - MIT
@@ -149,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
166
  - !ruby/object:Gem::Version
150
167
  version: '0'
151
168
  requirements: []
152
- rubygems_version: 4.0.6
169
+ rubygems_version: 4.0.17
153
170
  specification_version: 4
154
171
  summary: A command-line interface (CLI) tool that helps you quickly scaffold new Roda
155
172
  web applications
@@ -1,60 +0,0 @@
1
- # Rakefile
2
-
3
- require "fileutils"
4
-
5
- # List rake tasks
6
- task :default do
7
- system("rake -T")
8
- end
9
-
10
- # Console Task
11
- desc "Open a console with application context (alias: rake c)"
12
- task :console do
13
- system("irb -r ./boot.rb")
14
- end
15
- task c: :console
16
-
17
- # Lint Task
18
- desc "Run lint"
19
- task :lint do
20
- system("bundle exec standardrb")
21
- end
22
-
23
- # Lint Fix Task
24
- desc "Auto fix lint warnings"
25
- task "lint:fix" do
26
- system("bundle exec standardrb --fix")
27
- end
28
-
29
- # Test Task
30
- desc "Run tests"
31
- task :test do<% if context.rspec? %>
32
- system("RACK_ENV=test bundle exec rspec")<% else %>
33
- system("RACK_ENV=test bundle exec minitest spec/")<% end %>
34
- end
35
-
36
- # Development Server Task
37
- desc "Exec development server"
38
- task :dev do
39
- system("RACK_ENV=development bundle exec puma --port 4000")
40
- end
41
-
42
- # Development Watch Task
43
- desc "Exec development server watching for changes"
44
- task "dev:watch" do
45
- system("RACK_ENV=development bundle exec guard")
46
- end
47
-
48
- # Production Server Task
49
- desc "Exec production server"
50
- task :prod do
51
- if ENV["DATABASE_URL"].nil?
52
- puts("DATABASE_URL is empty")
53
- exit 1
54
- end
55
- if ENV["SESSION_SECRET"].nil?
56
- puts("SESSION_SECRET is empty")
57
- exit 1
58
- end
59
- system("RUBYOPT=--yjit RUBY_YJIT_ENABLE=1 RACK_ENV=production bundle exec puma --port 4000")
60
- end