Class: ArticleJSON::Import::GoogleDoc::HTML::ImageParser

Inherits:
Object
  • Object
show all
Includes:
Shared::Caption, Shared::Float
Defined in:
lib/article_json/import/google_doc/html/image_parser.rb

Instance Method Summary collapse

Methods included from Shared::Caption

#caption

Constructor Details

#initialize(node:, caption_node:, css_analyzer:) ⇒ ImageParser

Returns a new instance of ImageParser.

Parameters:



12
13
14
15
16
17
18
19
# File 'lib/article_json/import/google_doc/html/image_parser.rb', line 12

def initialize(node:, caption_node:, css_analyzer:)
  @node = node
  @caption_node = caption_node
  @css_analyzer = css_analyzer

  # Main node indicates the floating behavior
  @float_node = @node
end

Instance Method Details

#elementArticleJSON::Elements::Image



40
41
42
43
44
45
46
# File 'lib/article_json/import/google_doc/html/image_parser.rb', line 40

def element
  ArticleJSON::Elements::Image.new(
    source_url: source_url,
    float: float,
    caption: caption
  )
end

#floatSymbol

Check if the image is floating (left, right or not at all)

Returns:

  • (Symbol)


35
36
37
# File 'lib/article_json/import/google_doc/html/image_parser.rb', line 35

def float
  super if floatable_size?
end

#image_nodeNokogiri::HTML::Node

The node of the actual image

Returns:

  • (Nokogiri::HTML::Node)


29
30
31
# File 'lib/article_json/import/google_doc/html/image_parser.rb', line 29

def image_node
  @node.xpath('.//img').first
end

#source_urlString

The value of the image’s ‘src` attribute

Returns:

  • (String)


23
24
25
# File 'lib/article_json/import/google_doc/html/image_parser.rb', line 23

def source_url
  image_node.attribute('src').value
end