middleman-cloudfront 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 1.8.7
data/README.md CHANGED
@@ -1,11 +1,13 @@
1
- # Middleman CloudFront
1
+ # Middleman CloudFront [![Build Status](https://travis-ci.org/andrusha/middleman-cloudfront.png)](https://travis-ci.org/andrusha/middleman-cloudfront) [![Dependency Status](https://gemnasium.com/andrusha/middleman-cloudfront.png)](https://gemnasium.com/andrusha/middleman-cloudfront) [![Code Climate](https://codeclimate.com/github/andrusha/middleman-cloudfront.png)](https://codeclimate.com/github/andrusha/middleman-cloudfront)
2
2
  A deploying tool for middleman which allows you to interact with Amazon CloudFront.
3
3
  Some of its features are:
4
4
 
5
5
  * CloudFront cache invalidation;
6
6
  * Ability to call it from command line and after middleman build;
7
+ * Ability to filter files which are going to be invalidated by regex;
7
8
 
8
9
  # Usage
10
+ andrusha/middleman-cloudfront
9
11
 
10
12
  ## Installation
11
13
  Add this to `Gemfile`:
@@ -26,7 +28,8 @@ activate :cloudfront do |cf|
26
28
  cf.access_key_id = 'I'
27
29
  cf.secret_access_key = 'love'
28
30
  cf.distribution_id = 'cats'
29
- # cf.after_build = false
31
+ # cf.filter = /\.html$/i # default is /.*/
32
+ # cf.after_build = false # default is false
30
33
  end
31
34
  ```
32
35
 
@@ -28,7 +28,7 @@ module Middleman
28
28
  distribution = cdn.distributions.get options.distribution_id
29
29
 
30
30
  # CloudFront limits amount of files which can be invalidated by one request
31
- list_files.each_slice(1000) do |slice|
31
+ list_files(options.filter).each_slice(1000) do |slice|
32
32
  puts "Please wait while Cloudfront is reloading #{slice.length} paths, it might take up to 10 minutes"
33
33
  invalidation = distribution.invalidations.create :paths => slice
34
34
  invalidation.wait_for { ready? }
@@ -48,17 +48,22 @@ module Middleman
48
48
  cf.access_key_id = 'I'
49
49
  cf.secret_access_key = 'love'
50
50
  cf.distribution_id = 'cats'
51
+ cf.filter = /\.html/i # default /.*/
51
52
  cf.after_build = true # default is false
52
53
  end
53
54
  EOF
54
55
  end
55
56
 
56
- def list_files
57
+ def list_files(filter)
57
58
  Dir.chdir('build/') do
58
59
  files = Dir.glob('**/*', File::FNM_DOTMATCH).reject { |f| File.directory? f }
59
60
  # if :directory_indexes is active, we must invalidate both files and dirs
60
61
  files += files.map{|f| f.gsub(/\/index\.html$/, '/') }
61
- files.uniq!.map! { |f| f.start_with?('/') ? f : "/#{f}" }
62
+ files.uniq!
63
+ .map! { |f| f.start_with?('/') ? f : "/#{f}" }
64
+ .reject! { |f| not filter =~ f }
65
+
66
+ files
62
67
  end
63
68
  end
64
69
 
@@ -2,7 +2,7 @@ require 'middleman-core'
2
2
 
3
3
  module Middleman
4
4
  module CloudFront
5
- class Options < Struct.new(:access_key_id, :secret_access_key, :distribution_id, :after_build); end
5
+ class Options < Struct.new(:access_key_id, :secret_access_key, :distribution_id, :filter, :after_build); end
6
6
 
7
7
  class << self
8
8
  def options
@@ -14,6 +14,7 @@ module Middleman
14
14
  yield options if block_given?
15
15
 
16
16
  options.after_build ||= false
17
+ options.filter ||= /.*/
17
18
 
18
19
  app.after_build do
19
20
  ::Middleman::Cli::CloudFront.new.invalidate if options.after_build
@@ -1,6 +1,6 @@
1
1
  module Middleman
2
2
  module CloudFront
3
3
  PACKAGE = 'middleman-cloudfront'
4
- VERSION = '0.0.1'
4
+ VERSION = '0.0.2'
5
5
  end
6
6
  end
@@ -18,11 +18,12 @@ Gem::Specification.new do |s|
18
18
  s.test_files = `git ls-files -z -- {fixtures,features}/*`.split("\0")
19
19
  s.require_paths = ["lib"]
20
20
 
21
- s.add_dependency("middleman-core", ["~> 3.0.0"])
22
- s.add_dependency("fog", ["~> 1.9.0"])
21
+ s.add_dependency "middleman-core", ["~> 3.0.0"]
22
+ s.add_dependency "fog", ["~> 1.9.0"]
23
23
 
24
- s.add_development_dependency("cucumber")
25
- s.add_development_dependency("aruba")
26
- s.add_development_dependency("fivemat")
27
- s.add_development_dependency("simplecov")
24
+ s.add_development_dependency "rake"
25
+ s.add_development_dependency "cucumber"
26
+ s.add_development_dependency "aruba"
27
+ s.add_development_dependency "fivemat"
28
+ s.add_development_dependency "simplecov"
28
29
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman-cloudfront
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -43,6 +43,22 @@ dependencies:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
45
  version: 1.9.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: rake
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
46
62
  - !ruby/object:Gem::Dependency
47
63
  name: cucumber
48
64
  requirement: !ruby/object:Gem::Requirement
@@ -116,6 +132,7 @@ extensions: []
116
132
  extra_rdoc_files: []
117
133
  files:
118
134
  - .gitignore
135
+ - .travis.yml
119
136
  - Gemfile
120
137
  - LICENSE
121
138
  - README.md