Class: Seo::ImageOptimizer
- Inherits:
-
BaseService
- Object
- BaseService
- Seo::ImageOptimizer
- Defined in:
- app/services/seo/image_optimizer.rb
Defined Under Namespace
Classes: Result
Instance Method Summary collapse
Methods inherited from BaseService
#initialize, #log_debug, #log_error, #log_info, #log_warning, #logger, #options, #tagged_logger
Constructor Details
This class inherits a constructor from BaseService
Instance Method Details
#process(html_fragment) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'app/services/seo/image_optimizer.rb', line 5 def process(html_fragment) logger.tagged('Seo::ImageOptimizer') do html_doc = Nokogiri::HTML(html_fragment) html_doc.xpath('//img').each do |img| css_classes = (img['class'] || '').split(' ') img['loading'] = 'lazy' img['class'] = css_classes.map(&:presence).compact.uniq.join(' ') end html_out = html_doc.at('body')&.inner_html.presence&.html_safe Result.new(html_out: html_out) end end |