middleman-sync 3.0.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.
data/.gitignore ADDED
@@ -0,0 +1,20 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ coverage
6
+ InstalledFiles
7
+ lib/bundler/man
8
+ pkg
9
+ rdoc
10
+ spec/reports
11
+ test/tmp
12
+ test/version_tmp
13
+ tmp
14
+ .rbenv-version
15
+ vendor
16
+
17
+ # YARD artifacts
18
+ .yardoc
19
+ _yardoc
20
+ doc/
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source "http://rubygems.org"
2
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,69 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ middleman-sync (3.0.0)
5
+ asset_sync (~> 0.5.0)
6
+ middleman-core (>= 3.0.0)
7
+
8
+ GEM
9
+ remote: http://rubygems.org/
10
+ specs:
11
+ activemodel (3.2.8)
12
+ activesupport (= 3.2.8)
13
+ builder (~> 3.0.0)
14
+ activesupport (3.2.8)
15
+ i18n (~> 0.6)
16
+ multi_json (~> 1.0)
17
+ asset_sync (0.5.0)
18
+ activemodel
19
+ fog
20
+ builder (3.0.0)
21
+ excon (0.16.2)
22
+ ffi (1.1.5)
23
+ fog (1.5.0)
24
+ builder
25
+ excon (~> 0.14)
26
+ formatador (~> 0.2.0)
27
+ mime-types
28
+ multi_json (~> 1.0)
29
+ net-scp (~> 1.0.4)
30
+ net-ssh (>= 2.1.3)
31
+ nokogiri (~> 1.5.0)
32
+ ruby-hmac
33
+ formatador (0.2.3)
34
+ i18n (0.6.0)
35
+ listen (0.4.7)
36
+ rb-fchange (~> 0.0.5)
37
+ rb-fsevent (~> 0.9.1)
38
+ rb-inotify (~> 0.8.8)
39
+ middleman-core (3.0.0)
40
+ activesupport (~> 3.2.6)
41
+ bundler (~> 1.1)
42
+ listen (~> 0.4.7)
43
+ rack (~> 1.4.1)
44
+ rack-test (~> 0.6.1)
45
+ thor (~> 0.15.4)
46
+ tilt (~> 1.3.1)
47
+ mime-types (1.19)
48
+ multi_json (1.3.6)
49
+ net-scp (1.0.4)
50
+ net-ssh (>= 1.99.1)
51
+ net-ssh (2.5.2)
52
+ nokogiri (1.5.5)
53
+ rack (1.4.1)
54
+ rack-test (0.6.1)
55
+ rack (>= 1.0)
56
+ rb-fchange (0.0.5)
57
+ ffi
58
+ rb-fsevent (0.9.1)
59
+ rb-inotify (0.8.8)
60
+ ffi (>= 0.5.0)
61
+ ruby-hmac (0.4.0)
62
+ thor (0.15.4)
63
+ tilt (1.3.3)
64
+
65
+ PLATFORMS
66
+ ruby
67
+
68
+ DEPENDENCIES
69
+ middleman-sync!
data/README.md ADDED
@@ -0,0 +1,86 @@
1
+ # Middleman Sync
2
+
3
+ Synchronise your Middleman build to S3 and more
4
+
5
+ Middleman Sync is post build hook and cli for Middleman to allow you to use [Asset Sync](https://raw.github.com/rumblelabs/asset_sync) for your static build deployments.
6
+
7
+ ## Installation
8
+
9
+ If you already have a Middleman project:
10
+
11
+ Add `middleman-sync` to your `Gemfile` then open up your `config.rb` and add:
12
+
13
+ ### AWS
14
+
15
+ ``` ruby
16
+ # Activate sync extension
17
+ activate :sync do |sync|
18
+ sync.fog_provider = 'AWS' # Your storage provider
19
+ sync.fog_directory = 'bucket-name' # Your bucket name
20
+ sync.fog_region = 'bucket-region-name' # The region your storage bucket is in
21
+ sync.aws_access_key_id = 'super' # Your Amazon S3 access key
22
+ sync.aws_secret_access_key = 'secret' # Your Amazon S3 access secret
23
+ # sync.after_build = true # Run sync after build
24
+ # sync.existing_remote_files = 'keep' # What to do with your existing remote files? (keep or delete)
25
+ end
26
+ ```
27
+
28
+ ### Rackspace
29
+
30
+ ``` ruby
31
+ # Activate sync extension
32
+ activate :sync do |sync|
33
+ sync.fog_provider = 'Rackspace' # Your storage provider
34
+ sync.fog_directory = 'bucket-name' # Your bucket name
35
+ sync.fog_region = 'bucket-region-name' # The region your storage bucket is in
36
+ sync.rackspace_username = 'karlfreeman' # Your Rackspace username
37
+ sync.rackspace_api_key = 'secret' # Your Rackspace API Key
38
+ # sync.rackspace_auth_url = 'domain' # Your Rackspace auth URL
39
+ # sync.after_build = true # Run sync after build
40
+ # sync.existing_remote_files = 'keep' # What to do with your existing remote files? (keep or delete)
41
+ end
42
+ ```
43
+
44
+ ### Google Storage
45
+
46
+ ``` ruby
47
+ # Activate sync extension
48
+ activate :sync do |sync|
49
+ sync.fog_provider = 'Google' # Your storage provider
50
+ sync.fog_directory = 'bucket-name' # Your bucket name
51
+ sync.fog_region = 'bucket-region-name' # The region your storage bucket is in
52
+ sync.google_storage_access_key_id = 'super' # Your Google Storage access key
53
+ sync.google_storage_secret_access_key = 'secret' # Your Google Storage access secret
54
+ # sync.after_build = true # Run sync after build
55
+ # sync.existing_remote_files = 'keep' # What to do with your existing remote files? (keep or delete)
56
+ end
57
+ ```
58
+
59
+ ## Usage
60
+
61
+ Once you've bundled you should be able to run:
62
+
63
+ ``` ruby
64
+ # Sync your current build directory
65
+ middleman sync
66
+ ```
67
+
68
+ ``` ruby
69
+ # Turn on after_build in your sync config to run middleman sync after each build
70
+ middleman build
71
+ ```
72
+
73
+ ## Todo
74
+
75
+ 1. Replace AssetSync's logger to use Middleman's Thor builder.say_status
76
+
77
+ ## Credits
78
+
79
+ Is essentially :
80
+
81
+ - [https://github.com/rumblelabs/asset_sync](https://github.com/rumblelabs/asset_sync)
82
+
83
+ Cribbed :
84
+
85
+ - [https://github.com/tvaughan/middleman-deploy](https://github.com/tvaughan/middleman-deploy)
86
+ - [https://github.com/middleman/middleman-smusher](https://github.com/middleman/middleman-smusher)
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1,7 @@
1
+ require "middleman-core"
2
+ require "middleman-sync/commands"
3
+
4
+ ::Middleman::Extensions.register(:sync, ">= 3.0.0") do
5
+ require "middleman-sync/extension"
6
+ ::Middleman::Sync
7
+ end
@@ -0,0 +1,37 @@
1
+ require "middleman-core/cli"
2
+ require "middleman-sync/extension"
3
+
4
+ module Middleman
5
+
6
+ module Cli
7
+
8
+ class Sync < Thor
9
+ include Thor::Actions
10
+
11
+ check_unknown_options!
12
+
13
+ namespace :sync
14
+
15
+ def self.exit_on_failure?
16
+ true
17
+ end
18
+
19
+ desc "sync", "Synchronise your Middleman build to S3 and more"
20
+ def sync
21
+
22
+ shared_inst = ::Middleman::Application.server.inst
23
+
24
+ enabled = shared_inst.options.enabled
25
+ if (!enabled)
26
+ raise Thor::Error.new "You need to activate the sync extension in config.rb"
27
+ end
28
+
29
+ ::AssetSync.sync
30
+
31
+ end
32
+
33
+ end
34
+
35
+ end
36
+
37
+ end
@@ -0,0 +1,70 @@
1
+ require "middleman-core"
2
+
3
+ module Middleman
4
+
5
+ module Sync
6
+
7
+ class Options < Struct.new(:after_build, :existing_remote_files, :prefix, :public_path, :fog_provider, :fog_directory, :fog_region, :aws_access_key_id, :aws_secret_access_key, :rackspace_username, :rackspace_api_key, :rackspace_auth_url, :google_storage_secret_access_key, :google_storage_access_key_id); end
8
+
9
+ class << self
10
+
11
+ def options
12
+ @@options
13
+ end
14
+
15
+ def registered(app, options_hash={}, &block)
16
+ require 'asset_sync'
17
+ ENV["RAILS_GROUPS"] = "assets"
18
+
19
+ options = Options.new(options_hash)
20
+ yield options if block_given?
21
+
22
+ @@options = options
23
+
24
+ app.send :include, Helpers
25
+
26
+ app.after_configuration do
27
+
28
+ options.after_build ||= false
29
+ options.prefix ||= build_dir
30
+ options.public_path = Pathname(".")
31
+
32
+ AssetSync.configure do |config|
33
+ config.enabled = true
34
+ config.prefix = options.prefix
35
+ config.public_path = options.public_path
36
+ config.fog_region = options.fog_region
37
+ config.fog_provider = options.fog_provider
38
+ config.fog_directory = options.fog_directory
39
+ config.aws_access_key_id = options.aws_access_key_id
40
+ config.aws_secret_access_key = options.aws_secret_access_key
41
+ config.rackspace_username = options.rackspace_username
42
+ config.rackspace_api_key = options.rackspace_api_key
43
+ config.rackspace_auth_url = options.rackspace_auth_url
44
+ config.google_storage_secret_access_key = options.google_storage_secret_access_key
45
+ config.google_storage_access_key_id = options.google_storage_access_key_id
46
+ end
47
+
48
+ after_build do |builder|
49
+ ::AssetSync.sync if options.after_build
50
+ end
51
+
52
+ end
53
+
54
+ end
55
+
56
+ alias :included :registered
57
+
58
+ end
59
+
60
+ module Helpers
61
+
62
+ def options
63
+ ::Middleman::Sync.options
64
+ end
65
+
66
+ end
67
+
68
+ end
69
+
70
+ end
@@ -0,0 +1,7 @@
1
+ module Middleman
2
+
3
+ module Sync
4
+ VERSION = "3.0.0"
5
+ end
6
+
7
+ end
@@ -0,0 +1 @@
1
+ require "middleman-sync"
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "middleman-sync/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "middleman-sync"
7
+ s.version = Middleman::Sync::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Karl Freeman"]
10
+ s.email = ["karlfreeman@gmail.com"]
11
+ s.homepage = "https://github.com/karlfreeman/middleman-sync"
12
+ s.summary = %q{Synchronise your Middleman build to S3 and more}
13
+ s.description = %q{Middleman-Sync is a Middleman extension that wraps the excellant AssetSync to allow for both a CLI and after_build hook to your Middleman build's}
14
+
15
+ s.rubyforge_project = "middleman-sync"
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
+ s.require_paths = ["lib"]
21
+
22
+ s.add_runtime_dependency("middleman-core", [">= 3.0.0"])
23
+ s.add_runtime_dependency("asset_sync", ["~> 0.5.0"])
24
+ end
metadata ADDED
@@ -0,0 +1,89 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: middleman-sync
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Karl Freeman
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-08-29 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: middleman-core
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 3.0.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 3.0.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: asset_sync
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 0.5.0
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 0.5.0
46
+ description: Middleman-Sync is a Middleman extension that wraps the excellant AssetSync
47
+ to allow for both a CLI and after_build hook to your Middleman build's
48
+ email:
49
+ - karlfreeman@gmail.com
50
+ executables: []
51
+ extensions: []
52
+ extra_rdoc_files: []
53
+ files:
54
+ - .gitignore
55
+ - Gemfile
56
+ - Gemfile.lock
57
+ - README.md
58
+ - Rakefile
59
+ - lib/middleman-sync.rb
60
+ - lib/middleman-sync/commands.rb
61
+ - lib/middleman-sync/extension.rb
62
+ - lib/middleman-sync/version.rb
63
+ - lib/middleman_extension.rb
64
+ - middleman-sync.gemspec
65
+ homepage: https://github.com/karlfreeman/middleman-sync
66
+ licenses: []
67
+ post_install_message:
68
+ rdoc_options: []
69
+ require_paths:
70
+ - lib
71
+ required_ruby_version: !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ required_rubygems_version: !ruby/object:Gem::Requirement
78
+ none: false
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ requirements: []
84
+ rubyforge_project: middleman-sync
85
+ rubygems_version: 1.8.23
86
+ signing_key:
87
+ specification_version: 3
88
+ summary: Synchronise your Middleman build to S3 and more
89
+ test_files: []