capistrano-s3 0.2.3 → 0.2.4

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.
data/.gitignore CHANGED
@@ -1,18 +1 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
18
- .DS_STORE
1
+ *.gem
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,23 @@
1
+ # Contributing
2
+
3
+ > If I have seen further, it is by standing on the shoulders of giants. - Isaac Newton
4
+
5
+ We love to work with people around the globe and make earth a better place for mankind!
6
+
7
+ Please follow theses simples steps to contribute to this project :
8
+
9
+ 1. Fork the repo.
10
+
11
+ 2. Rebase your code onto upstream master (this repository) if not up to date.
12
+
13
+ 3. Squash or fixup your commits to achieve a clean commit log.
14
+
15
+ 4. Submit a pull request explaining clearly changes.
16
+
17
+ ## Running the tests
18
+
19
+ I am sorry [wilson](http://www.youtube.com/watch?v=wO_MYX_Oto0), there is no tests.
20
+
21
+ ## Syntax
22
+
23
+ Follow [Ruby Styleguide](https://github.com/styleguide/ruby) by Github and existing code.
data/Gemfile.lock ADDED
@@ -0,0 +1,41 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ capistrano-s3 (0.2.4)
5
+ aws-sdk
6
+ capistrano
7
+ mime-types
8
+
9
+ GEM
10
+ remote: http://rubygems.org/
11
+ specs:
12
+ aws-sdk (1.8.3.1)
13
+ json (~> 1.4)
14
+ nokogiri (>= 1.4.4)
15
+ uuidtools (~> 2.1)
16
+ capistrano (2.14.2)
17
+ highline
18
+ net-scp (>= 1.0.0)
19
+ net-sftp (>= 2.0.0)
20
+ net-ssh (>= 2.0.14)
21
+ net-ssh-gateway (>= 1.1.0)
22
+ highline (1.6.15)
23
+ json (1.7.7)
24
+ mime-types (1.21)
25
+ net-scp (1.1.0)
26
+ net-ssh (>= 2.6.5)
27
+ net-sftp (2.1.1)
28
+ net-ssh (>= 2.6.5)
29
+ net-ssh (2.6.5)
30
+ net-ssh-gateway (1.2.0)
31
+ net-ssh (>= 2.6.5)
32
+ nokogiri (1.5.6)
33
+ rake (10.0.3)
34
+ uuidtools (2.1.3)
35
+
36
+ PLATFORMS
37
+ ruby
38
+
39
+ DEPENDENCIES
40
+ capistrano-s3!
41
+ rake
data/NEWS CHANGED
@@ -1,3 +1,7 @@
1
+ New in 0.2.4
2
+
3
+ * Bugfix : fixed error when .last_publish doesn't exist yet.
4
+
1
5
  New in 0.2.3
2
6
 
3
7
  * Bugfix : fixed error when no specific bucket_write_options is set.
data/README.md CHANGED
@@ -3,7 +3,8 @@
3
3
  > Enables static websites deployment to Amazon S3 website buckets using Capistrano.
4
4
 
5
5
  [![Dependency Status](https://gemnasium.com/hooktstudios/capistrano-s3.png)](https://gemnasium.com/hooktstudios/capistrano-s3)
6
- [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/hooktstudios/capistrano-s3)
6
+ [![Code Climate](https://codeclimate.com/github/hooktstudios/capistrano-s3.png)](https://codeclimate.com/github/hooktstudios/capistrano-s3)
7
+ [![Gem Version](https://badge.fury.io/rb/capistrano-s3.png)](https://rubygems.org/gems/capistrano-s3)
7
8
 
8
9
  ## Hosting your website with Amazon S3
9
10
 
@@ -27,7 +28,7 @@ capistrano-s3 overrides the default Capistrano recipes for Rails projects with i
27
28
 
28
29
  ```ruby
29
30
  # config/deploy.rb
30
- require 'capistrano-s3'
31
+ require 'capistrano/s3'
31
32
 
32
33
  set :bucket, "www.cool-website-bucket.com"
33
34
  set :access_key_id, "CHANGETHIS"
@@ -50,16 +51,15 @@ set :bucket_write_options, {
50
51
 
51
52
  See aws-sdk [S3Object.write doc](http://rubydoc.info/github/amazonwebservices/aws-sdk-for-ruby/master/AWS/S3/S3Object#write-instance_method) for all available options.
52
53
 
53
- ### Website generation & assets management
54
+ ## Exemple of usage
54
55
 
55
- If you wish to manage your assets with a packaging system, a simple way do to it
56
- is using a combination of :
56
+ Our Ruby stack for static websites :
57
57
 
58
- - [sinatra](https://github.com/sinatra/sinatra) : simple web framework that we extend for our needs
59
- - [sinatra-assetpack](https://github.com/hooktstudios/sinatra-assetpack) : deals with version management for all kind of assets
60
- - [sinatra-export](https://github.com/hooktstudios/sinatra-export) : generate your complete website in `public/`, allowing an `s3-static-site` deployment
58
+ - [sinatra](https://github.com/sinatra/sinatra) : awesome simple ruby web framework
59
+ - [sinatra-assetpack](https://github.com/rstacruz/sinatra-assetpack) : deals with assets management, build static files into `public/`
60
+ - [sinatra-export](https://github.com/hooktstudios/sinatra-export) : exports all sinatra routes into `public/` as html or other common formats (json, csv, etc)
61
61
 
62
- Once you get this together, add a capistrano task to trigger website generation before deploy :
62
+ Mixing it in a capistrano task :
63
63
 
64
64
  ```ruby
65
65
  # config/deploy.rb
@@ -67,4 +67,16 @@ before 'deploy' do
67
67
  run_locally "bundle exec ruby sinatra:export"
68
68
  run_locally "bundle exec rake assetpack:build"
69
69
  end
70
- ```
70
+ ```
71
+
72
+ See our boilerplate [sinatra-static-bp](https://github.com/hooktstudios/sinatra-static-bp) for an exemple of the complete setup.
73
+
74
+ ## Contributing
75
+
76
+ See [CONTRIBUTING.md](https://github.com/hooktstudios/capistrano-s3/blob/master/CONTRIBUTING.md) for more details on contributing and running test.
77
+
78
+ ## Credits
79
+
80
+ ![hooktstudios](http://hooktstudios.com/logo.png)
81
+
82
+ [capistrano-s3](https://rubygems.org/gems/capistrano-s3) is maintained and funded by [hooktstudios](http://github.com/hooktstudios)
data/Rakefile CHANGED
@@ -1,11 +1 @@
1
- require 'bundler'
2
- Bundler::GemHelper.install_tasks
3
-
4
- require 'rspec/core'
5
- require 'rspec/core/rake_task'
6
-
7
- RSpec::Core::RakeTask.new(:spec) do |spec|
8
- spec.pattern = FileList['spec/**/*_spec.rb']
9
- end
10
-
11
- task :default => "spec"
1
+ require 'rake'
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
12
12
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
13
13
  s.name = 'capistrano-s3'
14
14
  s.require_paths = ['lib']
15
- s.version = '0.2.3'
15
+ s.version = '0.2.4'
16
16
 
17
17
  # Gem dependencies
18
18
  s.add_dependency 'aws-sdk'
@@ -20,6 +20,4 @@ Gem::Specification.new do |s|
20
20
  s.add_dependency 'mime-types'
21
21
 
22
22
  s.add_development_dependency 'rake'
23
- s.add_development_dependency 'rspec'
24
- s.add_development_dependency 'mocha'
25
23
  end
@@ -3,11 +3,15 @@ require 'mime/types'
3
3
 
4
4
  module Publisher
5
5
 
6
+ LAST_PUBLISHED_FILE = '.last_published'
7
+
6
8
  def self.publish!(key, secret, bucket, source, extra_options)
7
9
  s3 = self.establish_connection!(key, secret)
8
10
 
9
11
  self.files(source).each do |file|
10
12
  if !File.directory?(file)
13
+ next if self.published?(file)
14
+
11
15
  path = self.base_file_path(source, file)
12
16
  path.gsub!(/^\//, "") # Remove preceding slash for S3
13
17
 
@@ -28,6 +32,8 @@ module Publisher
28
32
  s3.buckets[bucket].objects[path].write(contents, options)
29
33
  end
30
34
  end
35
+
36
+ FileUtils.touch(LAST_PUBLISHED_FILE)
31
37
  end
32
38
 
33
39
  def self.clear!(key, secret, bucket)
@@ -54,4 +60,9 @@ module Publisher
54
60
  def self.files(deployment_path)
55
61
  Dir.glob("#{deployment_path}/**/*")
56
62
  end
63
+
64
+ def self.published?(file)
65
+ return false unless File.exists? LAST_PUBLISHED_FILE
66
+ File.mtime(file) < File.mtime(LAST_PUBLISHED_FILE)
67
+ end
57
68
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-s3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-02-11 00:00:00.000000000 Z
13
+ date: 2013-03-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: aws-sdk
@@ -76,38 +76,6 @@ dependencies:
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
78
  none: false
79
- - !ruby/object:Gem::Dependency
80
- name: rspec
81
- prerelease: false
82
- requirement: !ruby/object:Gem::Requirement
83
- requirements:
84
- - - ! '>='
85
- - !ruby/object:Gem::Version
86
- version: '0'
87
- none: false
88
- type: :development
89
- version_requirements: !ruby/object:Gem::Requirement
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
94
- none: false
95
- - !ruby/object:Gem::Dependency
96
- name: mocha
97
- prerelease: false
98
- requirement: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - ! '>='
101
- - !ruby/object:Gem::Version
102
- version: '0'
103
- none: false
104
- type: :development
105
- version_requirements: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
109
- version: '0'
110
- none: false
111
79
  description: Enables static websites deployment to Amazon S3 website buckets using
112
80
  Capistrano.
113
81
  email:
@@ -117,7 +85,9 @@ extensions: []
117
85
  extra_rdoc_files: []
118
86
  files:
119
87
  - .gitignore
88
+ - CONTRIBUTING.md
120
89
  - Gemfile
90
+ - Gemfile.lock
121
91
  - LICENSE
122
92
  - NEWS
123
93
  - README.md