salvia_rb 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 111770f5d7b2a6e7d086e0a12d568f24eef9011aed420f4257498f3ad442838a
4
- data.tar.gz: 641a090af7f584e5d8d35d0c6dcf93c3529860869c3130049a3acd2fc12c99ee
3
+ metadata.gz: 3e9e861cd6a087f949d39721b23ea1158ca350803751138ac9b6ede95c689e39
4
+ data.tar.gz: 930ce26d7c7fdeefe8e493b28d40de6f487389daa7f2e39ed2cc9618a09d45b6
5
5
  SHA512:
6
- metadata.gz: acb426d04b64edbeda0788b13b462f0d5d12144f4717a8e5375ae9ada8deebefdc7725b8472a724900d45b521d04ba83111446d718286f580de86ab3819d5d40
7
- data.tar.gz: dad6635b64693e7bdcd86dc4f7fbea89438ec6a6267e8a907b99b16602d6b1108060c18173ef454d85809f67618528ca6e8d8ca83ecd02b05c9af617ab936394
6
+ metadata.gz: e84b9319869b9479d4c8acc7e74251618663f0471fbb2cb089e3148395a494a18569f8ae29726b20d67d0084b081f340e17a1aabdab3323bd09e9236315a4c4b
7
+ data.tar.gz: 58f9aa23057aa432f051b13803727fad009370f92f04301235dc7f022b987f3223fd8ea0e0d6c8efc1dd5ffa6256cf9d8d195a0ff6c8d3219dedbb65853c418b
@@ -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
- console.error("❌ CSS build error:", error);
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
- console.error("❌ SSR build error:", error.message);
208
+ const e = error as Error;
209
+ console.error("❌ SSR build error:", e.message || error);
207
210
  }
208
211
  }
209
212
 
@@ -0,0 +1,10 @@
1
+ {
2
+ "lint": {
3
+ "rules": {
4
+ "exclude": ["no-explicit-any", "no-unused-vars", "require-await"]
5
+ }
6
+ },
7
+ "fmt": {
8
+ "exclude": ["*.ts"]
9
+ }
10
+ }
data/exe/salvia CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
+ require "salvia_rb"
4
5
  require "salvia_rb/cli"
5
6
 
6
7
  Salvia::CLI.start(ARGV)
@@ -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
- require app_config if File.exist?(app_config)
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
- if database_config_exists?
114
- Salvia::Database.setup!
115
- else
116
- setup_default_database!
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) && Dir.exist?(File.join(Salvia.root, "db"))
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
- # config.secret_key = ENV["SECRET_KEY"]
700
+ # シークレットキー(本番では SECRET_KEY 環境変数必須)
701
+ config.secret_key = ENV["SECRET_KEY"]
705
702
 
706
703
  # SSR バンドルパス(Islands Architecture 使用時)
707
- # config.ssr_bundle_path = "vendor/server/ssr_bundle.js"
704
+ config.ssr_bundle_path = "vendor/server/ssr_bundle.js"
708
705
 
709
- # テンプレートキャッシュ(本番ではデフォルトで有効)
710
- # config.cache_templates = Salvia.env == "production"
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
- # または PostgreSQL:
745
+
746
+ # PostgreSQL を使う場合:
759
747
  # adapter: postgresql
760
748
  # url: <%= ENV["DATABASE_URL"] %>
761
749
  YAML
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Salvia
4
- VERSION = "0.1.5"
4
+ VERSION = "0.1.7"
5
5
  end
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.5
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