diff options
Diffstat (limited to 'new/lib/crys/processors')
-rw-r--r-- | new/lib/crys/processors/common_functions.rb | 31 | ||||
-rw-r--r-- | new/lib/crys/processors/common_parts.rb | 20 | ||||
-rw-r--r-- | new/lib/crys/processors/html_processor.rb | 38 |
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 |