Class: OpenehrRails::TemplateUploader
- Inherits:
-
Object
- Object
- OpenehrRails::TemplateUploader
- Defined in:
- lib/openehr_rails/template_uploader.rb
Overview
Validates an uploaded OPT file, stores it under app/templates/operational and registers it in the template registry. Used by the admin engine's drag & drop upload.
Defined Under Namespace
Classes: InvalidTemplate
Constant Summary collapse
- STORAGE_DIR =
'app/templates/operational'
Class Method Summary collapse
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(file:, root:, registry:) ⇒ TemplateUploader
constructor
A new instance of TemplateUploader.
Constructor Details
#initialize(file:, root:, registry:) ⇒ TemplateUploader
Returns a new instance of TemplateUploader.
18 19 20 21 22 |
# File 'lib/openehr_rails/template_uploader.rb', line 18 def initialize(file:, root:, registry:) @file = file @root = Pathname.new(root) @registry = registry end |
Class Method Details
.call(file:, root: ::Rails.root, registry: ::OpenehrTemplate) ⇒ Object
14 15 16 |
# File 'lib/openehr_rails/template_uploader.rb', line 14 def self.call(file:, root: ::Rails.root, registry: ::OpenehrTemplate) new(file: file, root: root, registry: registry).call end |
Instance Method Details
#call ⇒ Object
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/openehr_rails/template_uploader.rb', line 24 def call validate_filename! content = read_content validate_template!(content) path = storage_path FileUtils.mkdir_p(path.dirname) File.binwrite(path, content) @registry.from_opt_file(path.to_s) end |