class BranchableCDNAssets::Invalidator::Base

Attributes

config[R]

Public Class Methods

defaults() click to toggle source
# File lib/branchable_cdn_assets/invalidator/base.rb, line 22
def defaults
  @defaults ||= {}
end
new(config_opts={}) click to toggle source
# File lib/branchable_cdn_assets/invalidator/base.rb, line 29
def initialize config_opts={}
  config_opts = self.class.defaults.merge config_opts
  unless (self.class.required_keys - config_opts.keys).empty?
    raise ArgumentError, "Missing required config keys: [#{(self.class.required_keys - config_opts.keys).join(', ')}]"
  end

  @config = Struct.new("Config_#{object_id}", *config_opts.keys).new(*config_opts.values)
end
register_as(key) click to toggle source
# File lib/branchable_cdn_assets/invalidator/base.rb, line 6
def register_as key
  BranchableCDNAssets::Invalidator.register key, self
end
require_keys(keys) click to toggle source
# File lib/branchable_cdn_assets/invalidator/base.rb, line 10
def require_keys keys
  @required_keys = Array(keys)
end
required_keys() click to toggle source
# File lib/branchable_cdn_assets/invalidator/base.rb, line 14
def required_keys
  @required_keys ||= []
end
set_defaults(opts={}) click to toggle source
# File lib/branchable_cdn_assets/invalidator/base.rb, line 18
def set_defaults opts={}
  @defaults = opts
end

Public Instance Methods

invalidate_files(files) click to toggle source

@param files [Array]

# File lib/branchable_cdn_assets/invalidator/base.rb, line 39
def invalidate_files files
  raise NoMethodError, "invalidate_files hasn't been implemented for #{self.class}"
end