Class: Middleman::Cli::MaxCDN

Inherits:
BaseCDN
  • Object
show all
Defined in:
lib/middleman-cdn/cdns/maxcdn.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseCDN

example_configuration, #say_status

Class Method Details

.example_configuration_elementsObject



12
13
14
15
16
17
18
19
# File 'lib/middleman-cdn/cdns/maxcdn.rb', line 12

def self.example_configuration_elements
  {
    alias: ['"..."', "# default ENV['MAXCDN_ALIAS']"],
    consumer_key: ['"..."', "# default ENV['MAXCDN_CONSUMER_KEY']"],
    consumer_secret: ['"..."', "# default ENV['MAXCDN_CONSUMER_SECRET']"],
    zone_id: ['"..."', ""]
  }
end

.keyObject



8
9
10
# File 'lib/middleman-cdn/cdns/maxcdn.rb', line 8

def self.key
  "maxcdn"
end

Instance Method Details

#invalidate(options, files, all: false) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/middleman-cdn/cdns/maxcdn.rb', line 21

def invalidate(options, files, all: false)
  options[:alias] ||= ENV['MAXCDN_ALIAS']
  options[:consumer_key] ||= ENV['MAXCDN_CONSUMER_KEY']
  options[:consumer_secret] ||= ENV['MAXCDN_CONSUMER_SECRET']

  [:alias, :consumer_key, :consumer_secret, :zone_id].each do |key|
    if options[key].blank?
      say_status(ANSI.red{ "Error: Configuration key maxcdn[:#{key}] is missing." })
      raise
    end
  end

  maxcdn = ::MaxCDN::Client.new(options[:alias], options[:consumer_key], options[:consumer_secret])

  begin
    say_status("Invalidating #{files.count} files...", newline: false)
    maxcdn.purge(options[:zone_id], files)
  rescue => e
    say_status(ANSI.red{ ", " + "error: #{e.message}" }, header: false)
  else
    say_status(ANSI.green{ "" }, header: false)
  end
end