Class: Middleman::SocialImage::Converter

Inherits:
Object
  • Object
show all
Defined in:
lib/middleman-social_image/converter.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, window_size, selector, always_generate, base_url) ⇒ Converter

Returns a new instance of Converter.



3
4
5
6
7
8
9
# File 'lib/middleman-social_image/converter.rb', line 3

def initialize(app, window_size, selector, always_generate, base_url)
  @app = app
  @window_size = window_size
  @selector = selector
  @always_generate = always_generate
  @base_url = base_url
end

Instance Method Details

#convert(resource) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/middleman-social_image/converter.rb', line 15

def convert(resource)
  image_path = image_path(resource)
  if File.exist?(image_path) && !@always_generate
    @app.logger.debug "== social_image: skipping #{resource.path} as already in cache"
  else
    @app.logger.debug "== social_image: converting #{resource.path}"
    session.visit(File.join(@base_url, resource.url))
    raise "#{resource.url} did not contain '#{@selector}'." unless session.has_selector?(@selector)
    FileUtils.mkdir_p(File.dirname(image_path))
    session.save_screenshot(image_path)
  end
end

#image_path(resource) ⇒ Object



11
12
13
# File 'lib/middleman-social_image/converter.rb', line 11

def image_path(resource)
  File.join(@app.root, "tmp/middleman-social_image", resource.path.sub(".html", ".png"))
end