class Middleman::Imageoptim::ResourceList

Attributes

app[R]
options[R]

Public Class Methods

manipulate(app, resources, options) click to toggle source
# File lib/middleman-imageoptim/resource_list.rb, line 6
def self.manipulate(app, resources, options)
  new(app, resources, options).manipulate_resources
end
new(app, resources, options) click to toggle source
# File lib/middleman-imageoptim/resource_list.rb, line 10
def initialize(app, resources, options)
  @app = app
  @resources = resources
  @options = options
end

Public Instance Methods

manipulate_resources() click to toggle source
# File lib/middleman-imageoptim/resource_list.rb, line 16
def manipulate_resources
  modified_resources << manifest_resource
end

Private Instance Methods

filename(filename) click to toggle source
# File lib/middleman-imageoptim/resource_list.rb, line 71
def filename(filename)
  if Gem::Version.new(Middleman::VERSION) >= Gem::Version.new('4.0.0')
    File.join(app.root, app.config[:build_dir], filename)
  else
    File.join(app.config[:build_dir], filename)
  end
end
image_resource?(resource) click to toggle source
# File lib/middleman-imageoptim/resource_list.rb, line 51
def image_resource?(resource)
  options.image_extensions.include?(File.extname(resource.destination_path))
end
manifest_resource() click to toggle source
# File lib/middleman-imageoptim/resource_list.rb, line 36
def manifest_resource
  resource_args = [app.sitemap, Manifest::MANIFEST_FILENAME]
  if File.exist?(filename(Manifest::MANIFEST_FILENAME))
    resource_args << filename(Manifest::MANIFEST_FILENAME)
  end
  Middleman::Imageoptim::ManifestResource.new(*resource_args)
end
modified_resources() click to toggle source
# File lib/middleman-imageoptim/resource_list.rb, line 22
def modified_resources
  @resources.map do |resource|
    if resource_up_to_date?(resource)
      Middleman::Sitemap::Resource.new(
        app.sitemap,
        resource.destination_path,
        filename(resource.destination_path)
      )
    else
      resource
    end
  end
end
resource_build_path(resource) click to toggle source
# File lib/middleman-imageoptim/resource_list.rb, line 67
def resource_build_path(resource)
  filename(resource.destination_path)
end
resource_current?(resource) click to toggle source
# File lib/middleman-imageoptim/resource_list.rb, line 63
def resource_current?(resource)
  File.mtime(resource_build_path(resource)) > File.mtime(resource.source_file)
end
resource_exists?(resource) click to toggle source
# File lib/middleman-imageoptim/resource_list.rb, line 59
def resource_exists?(resource)
  File.exist?(resource_build_path(resource))
end
resource_up_to_date?(resource) click to toggle source
# File lib/middleman-imageoptim/resource_list.rb, line 44
def resource_up_to_date?(resource)
  image_resource?(resource) &&
    sitemap_resource?(resource) &&
    resource_exists?(resource) &&
    resource_current?(resource)
end
sitemap_resource?(resource) click to toggle source
# File lib/middleman-imageoptim/resource_list.rb, line 55
def sitemap_resource?(resource)
  resource.class.name == 'Middleman::Sitemap::Resource'
end