summaryrefslogtreecommitdiff
path: root/new/lib/crys/processors
diff options
context:
space:
mode:
authormms <git@sapka.me>2025-01-05 22:34:55 +0100
committermms <git@sapka.me>2025-01-05 22:34:55 +0100
commitbfd8209ad0d80b5027bea8a1a095dadc8bffdc61 (patch)
tree1d4ec6d63dd3b4a1f788ec340a0fba3cd48b3dea /new/lib/crys/processors
parent628fcf941c322dd0ed24a643c58394392484740e (diff)
feat(new): splash page in progress
Diffstat (limited to 'new/lib/crys/processors')
-rw-r--r--new/lib/crys/processors/common_functions.rb31
-rw-r--r--new/lib/crys/processors/common_parts.rb20
-rw-r--r--new/lib/crys/processors/html_processor.rb38
3 files changed, 89 insertions, 0 deletions
diff --git a/new/lib/crys/processors/common_functions.rb b/new/lib/crys/processors/common_functions.rb
new file mode 100644
index 0000000..f33c768
--- /dev/null
+++ b/new/lib/crys/processors/common_functions.rb
@@ -0,0 +1,31 @@
+require 'rss'
+
+module Crys
+ module CommonFunctions
+ def project_root
+ "#{File.dirname(File.dirname(File.dirname(File.dirname(File.dirname(File.expand_path(__FILE__))))))}"
+ end
+
+ def process_image(file:, width: :auto)
+ full_path = image_dir + "/" + file
+
+ image = ::Crys::ImageProcessor.new(path: full_path, filename: file, width: width)
+ assets << image
+
+ image
+ end
+
+ def fetch_rss(url: nil, name: nil)
+ if name
+ path = case name
+ when :main
+ "/public/index.xml"
+ end
+
+ rss = File.read(project_root + path)
+ end
+
+ RSS::Parser.parse(rss)
+ end
+ end
+end
diff --git a/new/lib/crys/processors/common_parts.rb b/new/lib/crys/processors/common_parts.rb
new file mode 100644
index 0000000..1dbf6d8
--- /dev/null
+++ b/new/lib/crys/processors/common_parts.rb
@@ -0,0 +1,20 @@
+module Crys
+ module CommonParts
+ def webbutton(file:, url:, alt:)
+ full_path = image_dir + "/buttons/" + file
+
+ image = ::Crys::ImageProcessor.new(path: full_path, filename: file, width: 88)
+ assets << image
+
+ code = ERB.new <<-EOF
+<a href="<%=url%>">
+<img src="<%=image.relative_path%>" width="88" height="31" class="webbutton" alt="<%=alt%>">
+</a>
+EOF
+
+ code.result(binding)
+
+ end
+
+ end
+end
diff --git a/new/lib/crys/processors/html_processor.rb b/new/lib/crys/processors/html_processor.rb
new file mode 100644
index 0000000..d5ea73d
--- /dev/null
+++ b/new/lib/crys/processors/html_processor.rb
@@ -0,0 +1,38 @@
+require 'erb'
+require_relative "common_functions"
+require_relative "common_parts"
+
+module Crys
+ class HtmlProcessor
+
+ include CommonFunctions
+ include CommonParts
+
+ def initialize(file_path:, image_dir:)
+ @file_path = file_path
+ @image_dir = image_dir
+ @assets = []
+ end
+
+ def to_html
+ html_file = ERB.new(File.read(file_path))
+ html_file.result(local_binding)
+ end
+
+
+ def filename
+ file_path.scan(/.*\/(.*)\.erb/).flatten.first
+ end
+
+ attr_reader :assets
+
+ private
+
+ attr_reader :file_path, :image_dir
+ attr_writer :assets
+
+ def local_binding
+ local_binding ||= binding.clone
+ end
+ end
+end