class DocTemplate::Tags::ImageStudentWorksheetTag
Constants
- HEIGHT_MOD
- TAG_NAME
- TEMPLATE
Public Instance Methods
parse(node, _options = {})
click to toggle source
# File lib/doc_template/tags/image_student_worksheet_tag.rb, line 12 def parse(node, _options = {}) if (image = find_image node) image.ancestors('p').first.try(:remove) params = prepare_content image @content = parse_template params, TEMPLATE replace_tag node else node.remove end self end
Private Instance Methods
find_image(node)
click to toggle source
# File lib/doc_template/tags/image_student_worksheet_tag.rb, line 27 def find_image(node) while (node = node.next_sibling) if (image = node.at_xpath('.//img')).present? return image end end end
prepare_content(image)
click to toggle source
# File lib/doc_template/tags/image_student_worksheet_tag.rb, line 35 def prepare_content(image) {}.tap do |result| result[:src] = image['src'] image['style'].split(';').each do |style| Hash[*style.strip.split(':')].each do |(k, v)| case k when 'height' then result[:height] = "#{(v.to_i * HEIGHT_MOD).floor}px" when 'width' then result[:width] = v.strip end end end end end