class BranchableCDNAssets::Middleman::Extension

Public Instance Methods

after_configuration() click to toggle source
# File lib/branchable_cdn_assets/middleman/extension.rb, line 16
def after_configuration
  if defined?(::Sass::Script::Functions)
    ::Sass::Script::Functions.send :include, SassHelpers
  end
  if defined?(::SassC::Script::Functions)
    ::SassC::Script::Functions.send :include, SassHelpers
  end
end
config() click to toggle source
# File lib/branchable_cdn_assets/middleman/extension.rb, line 29
def config
  data = {
    production_branch: options.production_branch,
    default_env:       options.default_env,
    environments:      options.environments,
    dir:               options.cdn_dir,
    file_filter:       options.file_filter,
    allow_local:       options.allow_local
  }
  if options.cloudfront
    data.merge! invalidators: {
      cloudfront: options.cloudfront
    }
  end
  Config.new data
end
file_manager() click to toggle source
# File lib/branchable_cdn_assets/middleman/extension.rb, line 46
def file_manager
  BranchableCDNAssets::FileManager.new config
end
id() click to toggle source
# File lib/branchable_cdn_assets/middleman/extension.rb, line 50
def id
  options.id || self.object_id.to_s
end
manipulate_resource_list(resources) click to toggle source
# File lib/branchable_cdn_assets/middleman/extension.rb, line 25
def manipulate_resource_list resources
  resources + local_files_as_resources
end

Private Instance Methods

local_files_as_resources() click to toggle source
# File lib/branchable_cdn_assets/middleman/extension.rb, line 60
def local_files_as_resources
  return [] if app.build?

  file_manager.list( :local ).map do |file|
    ::Middleman::Sitemap::Resource.new(
      app.sitemap,
      File.join( "assets/cdn", id, file ),
      File.join( app.root, options.cdn_dir, file )
    )
  end
end