class Middleman::SocialImage::Extension

Public Class Methods

new(app, options_hash={}, &block) click to toggle source
Calls superclass method
# File lib/middleman-social_image/extension.rb, line 10
def initialize(app, options_hash={}, &block)
  super
  require "middleman-social_image/converter"
  require "middleman-social_image/resource"
  @converter = Middleman::SocialImage::Converter.new(app, options.window_size, options.selector, options.always_generate, options.base_url)
end

Public Instance Methods

manipulate_resource_list(resources) click to toggle source
# File lib/middleman-social_image/extension.rb, line 17
def manipulate_resource_list(resources)
  if app.build?
    manipulate_resource_list_for_build(resources)
  else
    manipulate_resource_list_for_preview(resources)
  end
end

Private Instance Methods

manipulate_resource_list_for_build(resources) click to toggle source
# File lib/middleman-social_image/extension.rb, line 35
def manipulate_resource_list_for_build(resources)
  convert_resource = proc do |resource|
    @converter.convert(resource)
  end
  if options.parallel
    ::Parallel.each(social_image_source_resources, &convert_resource)
  else
    social_image_source_resources.each(&convert_resource)
  end
  social_image_resources = social_image_source_resources.map do |resource|
    Middleman::Sitemap::Resource.new(
      @app.sitemap,
      path_for_source_resource(resource),
      @converter.image_path(resource)
    )
  end
  resources + social_image_resources - social_image_source_resources
end
manipulate_resource_list_for_preview(resources) click to toggle source
# File lib/middleman-social_image/extension.rb, line 54
def manipulate_resource_list_for_preview(resources)
  resources + social_image_source_resources.map do |resource|
    Middleman::SocialImage::Resource.new(
      @app.sitemap,
      path_for_source_resource(resource),
      @converter,
      resource
    )
  end
end
path_for_source_resource(resource) click to toggle source
# File lib/middleman-social_image/extension.rb, line 31
def path_for_source_resource(resource)
  resource.path.sub(".html", ".png")
end
social_image_source_resources() click to toggle source
# File lib/middleman-social_image/extension.rb, line 27
def social_image_source_resources
  app.sitemap.resources.select {|resource| resource.options[:social_image] || resource.data[:social_image] }
end