Class: Bulbasaur::ReplaceByTagImage

Inherits:
Object
  • Object
show all
Defined in:
lib/bulbasaur/replaces/replace_by_tag_image.rb

Instance Method Summary collapse

Constructor Details

#initialize(html, image_replaces = []) ⇒ ReplaceByTagImage

Returns a new instance of ReplaceByTagImage.



5
6
7
8
# File 'lib/bulbasaur/replaces/replace_by_tag_image.rb', line 5

def initialize(html, image_replaces = [])
  @html = html
  @image_replaces = image_replaces
end

Instance Method Details

#callObject



10
11
12
13
14
15
16
17
18
# File 'lib/bulbasaur/replaces/replace_by_tag_image.rb', line 10

def call
  nokogiri = Nokogiri::HTML::DocumentFragment.parse(@html)
  nokogiri.css('img').each do |item|
    url = item.xpath("@src").text
    replace = @image_replaces.select{ |r| r[:original_image_url] == url }.first
    item.set_attribute("src", replace[:url]) unless replace.nil?
  end
  nokogiri.to_s
end