microstatic 0.4.2 → 0.5.0

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.
@@ -4,7 +4,7 @@ require 'rake/tasklib'
4
4
  module Microstatic module Rake
5
5
 
6
6
  class S3DeployTask < ::Rake::TaskLib
7
- attr_accessor :name, :bucket_name, :source_dir, :aws_access_key_id, :aws_secret_access_key
7
+ attr_accessor :name, :bucket_name, :source_dir, :exclude, :aws_access_key_id, :aws_secret_access_key
8
8
 
9
9
  def initialize( opts = {} )
10
10
  if opts.is_a?(String) || opts.is_a?(Symbol)
@@ -16,6 +16,7 @@ class S3DeployTask < ::Rake::TaskLib
16
16
  @aws_secret_access_key = opts.fetch( :aws_secret_access_key ) { ENV.fetch('AWS_SECRET_ACCESS_KEY') }
17
17
  @bucket_name = opts.fetch( :bucket_name, false )
18
18
  @source_dir = opts.fetch( :source_dir, false )
19
+ @exclude = opts.fetch( :exclude, false )
19
20
  end
20
21
 
21
22
  def define
@@ -34,6 +35,7 @@ class S3DeployTask < ::Rake::TaskLib
34
35
  desc "deploy to the '#{bucket_name}' S3 bucket" unless ::Rake.application.last_comment
35
36
  task name do
36
37
  deployer = Microstatic::S3Deployer.new( source_dir, bucket_name, aws_creds )
38
+ deployer.file_list.exclude(@exclude) if @exclude
37
39
  deployer.upload
38
40
  end
39
41
  end
@@ -1,5 +1,6 @@
1
1
  require 'digest/md5'
2
2
  require 'pathname'
3
+ require 'rake/file_list'
3
4
 
4
5
  module Microstatic
5
6
 
@@ -7,16 +8,21 @@ module Microstatic
7
8
  # shared by Giles Alexander (@gga)
8
9
  class S3Deployer
9
10
  include UsesFog
11
+
12
+ attr_reader :file_list # TODO: don't expose this directly
13
+
10
14
  def initialize( local_dir, bucket, aws_creds )
11
15
  check_and_store_aws_creds(aws_creds)
12
16
 
13
17
  @local_dir = Pathname.new(local_dir)
18
+ @file_list = ::Rake::FileList.new( (@local_dir+"**/*").to_s )
14
19
  @bucket = bucket
15
20
  end
16
21
 
17
22
  def upload
18
- Pathname.glob(@local_dir+"**/*") do |child|
19
- upload_file(child) unless child.directory?
23
+ @file_list.each do |entry|
24
+ entry = Pathname.new(entry)
25
+ upload_file(entry) unless entry.directory?
20
26
  end
21
27
  end
22
28
 
@@ -1,3 +1,3 @@
1
1
  module Microstatic
2
- VERSION = "0.4.2"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -18,8 +18,8 @@ Gem::Specification.new do |gem|
18
18
  gem.add_runtime_dependency "fog", ">=1"
19
19
  gem.add_runtime_dependency "thor", ">=0.15" # 0.15 is an arbitrary guess at what might be API-compatible
20
20
  gem.add_runtime_dependency "rainbow", ">= 2.0"
21
+ gem.add_runtime_dependency "rake" # we use Rake::FileList to specify which files to upload
21
22
 
22
- gem.add_development_dependency "rake"
23
23
  gem.add_development_dependency "bundler"
24
24
  gem.add_development_dependency "rspec", "~>2.13.0"
25
25
  gem.add_development_dependency "pry-nav", "~> 0.2.3"
@@ -20,6 +20,7 @@ describe 'uploading to a test bucket' do
20
20
 
21
21
  it 'succeeds' do
22
22
  deployer = S3Deployer.new( test_dir, test_bucket, aws_creds )
23
+ deployer.file_list.exclude(%r|ignored/|)
23
24
  deployer.upload
24
25
  end
25
26
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: microstatic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-07-05 00:00:00.000000000 Z
12
+ date: 2014-08-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fog
@@ -67,7 +67,7 @@ dependencies:
67
67
  - - ! '>='
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
- type: :development
70
+ type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  none: false
@@ -153,6 +153,7 @@ files:
153
153
  - spec/integration/fixtures/example_file.txt
154
154
  - spec/integration/fixtures/subdir/another_file.txt
155
155
  - spec/integration/fixtures/subdir/foo.txt
156
+ - spec/integration/fixtures/subdir/ignored/ignored-file.txt
156
157
  - spec/integration/fixtures/subdir/subsubdir/deep.txt
157
158
  - spec/integration/spec_helper.rb
158
159
  - spec/integration/upload_to_test_bucket_spec.rb
@@ -171,7 +172,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
171
172
  version: '0'
172
173
  segments:
173
174
  - 0
174
- hash: -2300278806799071674
175
+ hash: -1270358842069851857
175
176
  required_rubygems_version: !ruby/object:Gem::Requirement
176
177
  none: false
177
178
  requirements:
@@ -180,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
180
181
  version: '0'
181
182
  segments:
182
183
  - 0
183
- hash: -2300278806799071674
184
+ hash: -1270358842069851857
184
185
  requirements: []
185
186
  rubyforge_project:
186
187
  rubygems_version: 1.8.25
@@ -191,6 +192,7 @@ test_files:
191
192
  - spec/integration/fixtures/example_file.txt
192
193
  - spec/integration/fixtures/subdir/another_file.txt
193
194
  - spec/integration/fixtures/subdir/foo.txt
195
+ - spec/integration/fixtures/subdir/ignored/ignored-file.txt
194
196
  - spec/integration/fixtures/subdir/subsubdir/deep.txt
195
197
  - spec/integration/spec_helper.rb
196
198
  - spec/integration/upload_to_test_bucket_spec.rb