Move file_path to Domus::App
https://claude.ai/code/session_018Ym45siELMvsBQj4w9QAXf
diff --git a/lib/app.rb b/lib/app.rb
index 268a48c..136c78f 100644
--- a/lib/app.rb
+++ b/lib/app.rb
@@ -11,5 +11,9 @@ module Domus
@config = config
@db = Sequel.sqlite(config.database_url)
end
+
+ def file_path(record)
+ ::File.join(config.storage_path, "files", "#{record[:id]}#{record[:extension]}")
+ end
end
end
diff --git a/lib/models.rb b/lib/models.rb
index fe04c82..00acb70 100644
--- a/lib/models.rb
+++ b/lib/models.rb
@@ -2,6 +2,5 @@
module Domus
class FileRecord < Sequel::Model(:files)
- def storage_path(config) = ::File.join(config.storage_path, "files", "#{id}#{extension}")
end
end
diff --git a/lib/web.rb b/lib/web.rb
index 5e58dfa..fe3a91a 100644
--- a/lib/web.rb
+++ b/lib/web.rb
@@ -36,7 +36,6 @@ module Domus
def app = opts.fetch(:app)
def db = app.db
- def storage_path = app.config.storage_path
def save_file(params)
upload = params["file"]
@@ -51,9 +50,9 @@ module Domus
created_at: now
)
- dest_dir = ::File.join(storage_path, "files")
- FileUtils.mkdir_p(dest_dir)
- FileUtils.cp(upload[:tempfile].path, ::File.join(dest_dir, "#{id}#{ext}"))
+ dest = app.file_path(id: id, extension: ext)
+ FileUtils.mkdir_p(::File.dirname(dest))
+ FileUtils.cp(upload[:tempfile].path, dest)
end
end
end