salvia_rb 0.1.6 → 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.
- checksums.yaml +4 -4
- data/assets/scripts/build_ssr.ts +5 -2
- data/assets/scripts/deno.json +10 -0
- data/lib/salvia_rb/application.rb +51 -21
- data/lib/salvia_rb/cli.rb +11 -23
- data/lib/salvia_rb/version.rb +1 -1
- data/lib/salvia_rb.rb +15 -0
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3e9e861cd6a087f949d39721b23ea1158ca350803751138ac9b6ede95c689e39
|
|
4
|
+
data.tar.gz: 930ce26d7c7fdeefe8e493b28d40de6f487389daa7f2e39ed2cc9618a09d45b6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e84b9319869b9479d4c8acc7e74251618663f0471fbb2cb089e3148395a494a18569f8ae29726b20d67d0084b081f340e17a1aabdab3323bd09e9236315a4c4b
|
|
7
|
+
data.tar.gz: 58f9aa23057aa432f051b13803727fad009370f92f04301235dc7f022b987f3223fd8ea0e0d6c8efc1dd5ffa6256cf9d8d195a0ff6c8d3219dedbb65853c418b
|
data/assets/scripts/build_ssr.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env -S deno run --allow-all
|
|
2
|
+
// deno-lint-ignore-file
|
|
2
3
|
/**
|
|
3
4
|
* Salvia Build Script
|
|
4
5
|
*
|
|
@@ -69,7 +70,8 @@ async function buildCSS() {
|
|
|
69
70
|
await Deno.writeTextFile(CSS_OUTPUT, result.css);
|
|
70
71
|
console.log(`✅ Tailwind CSS built: ${CSS_OUTPUT}`);
|
|
71
72
|
} catch (error) {
|
|
72
|
-
|
|
73
|
+
const e = error as Error;
|
|
74
|
+
console.error("❌ CSS build error:", e.message || error);
|
|
73
75
|
}
|
|
74
76
|
}
|
|
75
77
|
|
|
@@ -203,7 +205,8 @@ globalThis.SalviaSSR = {
|
|
|
203
205
|
console.log(`✅ Manifest generated: ${SSR_OUTPUT_DIR}/manifest.json`);
|
|
204
206
|
|
|
205
207
|
} catch (error) {
|
|
206
|
-
|
|
208
|
+
const e = error as Error;
|
|
209
|
+
console.error("❌ SSR build error:", e.message || error);
|
|
207
210
|
}
|
|
208
211
|
}
|
|
209
212
|
|
|
@@ -80,10 +80,23 @@ module Salvia
|
|
|
80
80
|
end
|
|
81
81
|
end
|
|
82
82
|
|
|
83
|
-
# config/app.rb
|
|
83
|
+
# config/app.rb を読み込み(必須)
|
|
84
84
|
def load_app_config!
|
|
85
85
|
app_config = File.join(Salvia.root, "config", "app.rb")
|
|
86
|
-
|
|
86
|
+
|
|
87
|
+
unless File.exist?(app_config)
|
|
88
|
+
raise Salvia::Error, <<~ERROR
|
|
89
|
+
config/app.rb not found!
|
|
90
|
+
|
|
91
|
+
Create config/app.rb:
|
|
92
|
+
|
|
93
|
+
Salvia.configure do |config|
|
|
94
|
+
# config.secret_key = ENV["SECRET_KEY"]
|
|
95
|
+
end
|
|
96
|
+
ERROR
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
require app_config
|
|
87
100
|
end
|
|
88
101
|
|
|
89
102
|
# 環境設定を読み込み
|
|
@@ -106,40 +119,57 @@ module Salvia
|
|
|
106
119
|
end
|
|
107
120
|
end
|
|
108
121
|
|
|
109
|
-
#
|
|
122
|
+
# データベースを自動セットアップ(database.yml 必須)
|
|
110
123
|
def setup_database!
|
|
111
124
|
return unless database_available?
|
|
112
125
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
126
|
+
db_dir = File.join(Salvia.root, "db")
|
|
127
|
+
unless Dir.exist?(db_dir)
|
|
128
|
+
raise Salvia::Error, <<~ERROR
|
|
129
|
+
db directory not found!
|
|
130
|
+
|
|
131
|
+
Create db/ (and optionally db/schema.rb or migrations) before booting.
|
|
132
|
+
ERROR
|
|
117
133
|
end
|
|
134
|
+
|
|
135
|
+
unless database_config_exists?
|
|
136
|
+
raise Salvia::Error, <<~ERROR
|
|
137
|
+
config/database.yml not found!
|
|
138
|
+
|
|
139
|
+
Create config/database.yml:
|
|
140
|
+
|
|
141
|
+
default: &default
|
|
142
|
+
adapter: sqlite3
|
|
143
|
+
pool: 5
|
|
144
|
+
timeout: 5000
|
|
145
|
+
|
|
146
|
+
development:
|
|
147
|
+
<<: *default
|
|
148
|
+
database: db/development.sqlite3
|
|
149
|
+
|
|
150
|
+
test:
|
|
151
|
+
<<: *default
|
|
152
|
+
database: db/test.sqlite3
|
|
153
|
+
|
|
154
|
+
production:
|
|
155
|
+
<<: *default
|
|
156
|
+
database: db/production.sqlite3
|
|
157
|
+
ERROR
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
Salvia::Database.setup!
|
|
118
161
|
rescue StandardError => e
|
|
119
162
|
Salvia.logger.warn "データベース接続をスキップ: #{e.message}"
|
|
120
163
|
end
|
|
121
164
|
|
|
122
165
|
def database_available?
|
|
123
|
-
defined?(ActiveRecord)
|
|
166
|
+
defined?(ActiveRecord)
|
|
124
167
|
end
|
|
125
168
|
|
|
126
169
|
def database_config_exists?
|
|
127
170
|
File.exist?(File.join(Salvia.root, "config", "database.yml"))
|
|
128
171
|
end
|
|
129
172
|
|
|
130
|
-
# 規約ベースのデフォルトデータベース設定
|
|
131
|
-
def setup_default_database!
|
|
132
|
-
db_path = File.join(Salvia.root, "db", "#{Salvia.env}.sqlite3")
|
|
133
|
-
FileUtils.mkdir_p(File.dirname(db_path))
|
|
134
|
-
|
|
135
|
-
ActiveRecord::Base.establish_connection(
|
|
136
|
-
adapter: "sqlite3",
|
|
137
|
-
database: db_path
|
|
138
|
-
)
|
|
139
|
-
|
|
140
|
-
ActiveRecord::Base.logger = Logger.new($stdout) if Salvia.development?
|
|
141
|
-
end
|
|
142
|
-
|
|
143
173
|
# Zeitwerk autoloader を自動セットアップ
|
|
144
174
|
def setup_autoloader!
|
|
145
175
|
return if Salvia.app_loader
|
data/lib/salvia_rb/cli.rb
CHANGED
|
@@ -684,7 +684,7 @@ module Salvia
|
|
|
684
684
|
|
|
685
685
|
def config_ru_content
|
|
686
686
|
<<~RUBY
|
|
687
|
-
# Salvia
|
|
687
|
+
# Salvia Application
|
|
688
688
|
require "bundler/setup"
|
|
689
689
|
require "salvia_rb"
|
|
690
690
|
|
|
@@ -694,20 +694,17 @@ module Salvia
|
|
|
694
694
|
|
|
695
695
|
def app_rb_content
|
|
696
696
|
<<~RUBY
|
|
697
|
-
#
|
|
698
|
-
#
|
|
699
|
-
# このファイルは任意です。Salvia はゼロコンフィグで動作します。
|
|
700
|
-
# カスタマイズが必要な場合のみ編集してください。
|
|
697
|
+
# アプリケーション設定
|
|
701
698
|
|
|
702
699
|
Salvia.configure do |config|
|
|
703
|
-
# シークレットキー(本番では SECRET_KEY
|
|
704
|
-
|
|
700
|
+
# シークレットキー(本番では SECRET_KEY 環境変数必須)
|
|
701
|
+
config.secret_key = ENV["SECRET_KEY"]
|
|
705
702
|
|
|
706
703
|
# SSR バンドルパス(Islands Architecture 使用時)
|
|
707
|
-
|
|
704
|
+
config.ssr_bundle_path = "vendor/server/ssr_bundle.js"
|
|
708
705
|
|
|
709
|
-
#
|
|
710
|
-
|
|
706
|
+
# テンプレートキャッシュ
|
|
707
|
+
config.cache_templates = Salvia.production?
|
|
711
708
|
end
|
|
712
709
|
RUBY
|
|
713
710
|
end
|
|
@@ -726,18 +723,7 @@ module Salvia
|
|
|
726
723
|
|
|
727
724
|
def database_yml_content
|
|
728
725
|
<<~YAML
|
|
729
|
-
#
|
|
730
|
-
#
|
|
731
|
-
# このファイルは任意です。なくても Salvia は以下の規約で動作します:
|
|
732
|
-
# development: db/development.sqlite3
|
|
733
|
-
# test: db/test.sqlite3
|
|
734
|
-
# production: DATABASE_URL 環境変数、または db/production.sqlite3
|
|
735
|
-
#
|
|
736
|
-
# PostgreSQL を使う場合のみ本番環境を設定してください:
|
|
737
|
-
#
|
|
738
|
-
# production:
|
|
739
|
-
# adapter: postgresql
|
|
740
|
-
# url: <%= ENV["DATABASE_URL"] %>
|
|
726
|
+
# データベース設定
|
|
741
727
|
|
|
742
728
|
default: &default
|
|
743
729
|
adapter: sqlite3
|
|
@@ -753,9 +739,11 @@ module Salvia
|
|
|
753
739
|
database: db/test.sqlite3
|
|
754
740
|
|
|
755
741
|
production:
|
|
742
|
+
# SQLite (デフォルト)
|
|
756
743
|
<<: *default
|
|
757
744
|
database: db/production.sqlite3
|
|
758
|
-
|
|
745
|
+
|
|
746
|
+
# PostgreSQL を使う場合:
|
|
759
747
|
# adapter: postgresql
|
|
760
748
|
# url: <%= ENV["DATABASE_URL"] %>
|
|
761
749
|
YAML
|
data/lib/salvia_rb/version.rb
CHANGED
data/lib/salvia_rb.rb
CHANGED
|
@@ -118,6 +118,21 @@ module Salvia
|
|
|
118
118
|
def configure
|
|
119
119
|
yield config if block_given?
|
|
120
120
|
|
|
121
|
+
# 本番環境では SECRET_KEY 必須
|
|
122
|
+
if production? && (config.secret_key.nil? || config.secret_key.empty?)
|
|
123
|
+
raise Salvia::Error, <<~ERROR
|
|
124
|
+
SECRET_KEY is required in production!
|
|
125
|
+
|
|
126
|
+
Set SECRET_KEY environment variable or configure it:
|
|
127
|
+
|
|
128
|
+
Salvia.configure do |config|
|
|
129
|
+
config.secret_key = ENV["SECRET_KEY"]
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
Generate a key with: ruby -e "require 'securerandom'; puts SecureRandom.hex(32)"
|
|
133
|
+
ERROR
|
|
134
|
+
end
|
|
135
|
+
|
|
121
136
|
# プラグインを有効化
|
|
122
137
|
config.plugins.each do |plugin_name|
|
|
123
138
|
Plugins::Base.enable(plugin_name)
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: salvia_rb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Hiroto Furugen
|
|
@@ -289,6 +289,7 @@ files:
|
|
|
289
289
|
- README.md
|
|
290
290
|
- assets/javascripts/islands.js
|
|
291
291
|
- assets/scripts/build_ssr.ts
|
|
292
|
+
- assets/scripts/deno.json
|
|
292
293
|
- exe/salvia
|
|
293
294
|
- lib/salvia_rb.rb
|
|
294
295
|
- lib/salvia_rb/application.rb
|