dpl 1.5.7 → 1.5.8.travis.303.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ac24731a8f60f3ed3d36dfa3388e0275958dd5ae
4
- data.tar.gz: c76e49e9f146ebc60247340769bc22688ee0acfc
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MWE3NzVjZWU5MDNiOWQxYTc4MGI4ZDliYzUwZDU2NzI2ZjZmZjA1ZQ==
5
+ data.tar.gz: !binary |-
6
+ MDdiNTA4NTU4ODE5MjRlZGZlMGNjZWI1YWRhOGQyOGNmZmE3ZTc2NQ==
5
7
  SHA512:
6
- metadata.gz: 230aed4cb5a962e5ab7a40a1d7a3b574c1e9b45268c86af9a4484384b7784bea80dd895efa145a44c809c146dbd426f6ceda9a6518992aff94f279ae40dc1203
7
- data.tar.gz: 53a33c9629bf256122287a6a3dad92bf229311cb741708afbe92340b4467b794ece39a000e0618a45933d0f6b98120260ee2a07530b658438198fcfc80708c6b
8
+ metadata.gz: !binary |-
9
+ MTkzODdlMWI2ZTZjZmQzOThiZGQ4NzlmZTFlYzA1OTMxODU5Njc4M2UzNDAy
10
+ ZjM0YWYyMjFkNTg5MWE1MWVjZmI0MzJkY2M2YTdmNWQ3YjFiZjk4MGE3ZGYw
11
+ YWEwOWYxOTRmNTNiNWMxYzRjMTFlNThlY2VkMjI0NjI2ZTdkNGU=
12
+ data.tar.gz: !binary |-
13
+ YTg1ZWNhYTk4OTYwY2VkMjQ0Yzc4YmU5MzMzMDNiY2I0OGJmZmZiZWJiODIy
14
+ M2MyODU1MWYzYWVjZDIxZmVhMTAwMWM1MzUwOTc3NDNlY2JlNmU2MDhlYWQx
15
+ ZTY1OGU4NTVhOTU2M2U3NmFiNmJjZmVmY2U4MTZjNmY3YzFhYzc=
data/Gemfile CHANGED
@@ -2,29 +2,30 @@ source 'https://rubygems.org'
2
2
  gemspec
3
3
 
4
4
  group :cloudfoundry do
5
- gem 'cf'
5
+ gem 'cf', '~> 5.4.5'
6
6
  end
7
7
 
8
8
  group :heroku do
9
- gem 'rendezvous'
10
- gem 'heroku-api'
11
- gem 'anvil-cli'
9
+ gem 'rendezvous', '~> 0.0.2'
10
+ gem 'heroku-api', '~> 0.3.16'
11
+ gem 'anvil-cli', '~> 0.16.1'
12
12
  end
13
13
 
14
14
  group :openshift do
15
15
  gem 'rhc'
16
16
  end
17
17
 
18
- #group :appfog do
19
- # gem 'af'
20
- #end
18
+ group :appfog do
19
+ gem 'af'
20
+ end
21
21
 
22
22
  group :rubygems do
23
- gem 'gems', '>= 0.8.3'
23
+ gem 'gems'
24
24
  end
25
25
 
26
26
  group :sss do
27
27
  gem 'aws-sdk'
28
+ gem 'mime-types'
28
29
  end
29
30
 
30
31
  group :cloud_files do
data/README.md CHANGED
@@ -19,6 +19,7 @@ Dpl supports the following providers:
19
19
  * [Divshot.io](#divshotio)
20
20
  * [Rackspace Cloud Files](#rackspace-cloud-files)
21
21
  * [AWS OpsWorks](#opsworks)
22
+ * [Modulus](#modulus)
22
23
 
23
24
  ## Installation:
24
25
 
@@ -72,6 +73,18 @@ As a rule of thumb, you should switch to the Git strategy if you run into issues
72
73
  #### Examples:
73
74
  dpl --provider=nodejitsu --username=<username> --api-key=<api-key>
74
75
 
76
+
77
+ ### Modulus
78
+
79
+ #### Options:
80
+
81
+ * **api-key** Modulus Authentication Token
82
+ * **project-name** Modulus Project to Deploy
83
+
84
+ #### Example:
85
+ dpl --provider=modulus --api-key=<api-key> --project-name=<project-name>
86
+
87
+
75
88
  ### Engine Yard:
76
89
 
77
90
  #### Options:
data/lib/dpl/provider.rb CHANGED
@@ -20,6 +20,7 @@ module DPL
20
20
  autoload :Divshot, 'dpl/provider/divshot'
21
21
  autoload :CloudFiles, 'dpl/provider/cloud_files'
22
22
  autoload :OpsWorks, 'dpl/provider/ops_works'
23
+ autoload :Modulus, 'dpl/provider/modulus'
23
24
 
24
25
  def self.new(context, options)
25
26
  return super if self < Provider
@@ -0,0 +1,23 @@
1
+ module DPL
2
+ class Provider
3
+ class Modulus < Provider
4
+ npm_g 'modulus'
5
+
6
+ def check_auth
7
+ raise Error, "must supply an api key" unless option(:api_key)
8
+ end
9
+
10
+ def check_app
11
+ raise Error, "must supply a project name" unless option(:project_name)
12
+ end
13
+
14
+ def needs_key?
15
+ false
16
+ end
17
+
18
+ def push_app
19
+ context.shell "MODULUS_TOKEN=#{option(:api_key)} modulus deploy -p #{option(:project_name)}"
20
+ end
21
+ end
22
+ end
23
+ end
@@ -4,6 +4,7 @@ module DPL
4
4
  class Provider
5
5
  class S3 < Provider
6
6
  requires 'aws-sdk'
7
+ requires 'mime-types'
7
8
 
8
9
  def api
9
10
  @api ||= AWS::S3.new
@@ -33,7 +34,8 @@ module DPL
33
34
  def push_app
34
35
  Dir.chdir(options.fetch(:local_dir, Dir.pwd)) do
35
36
  Dir.glob("**/*") do |filename|
36
- api.buckets[option(:bucket)].objects.create(upload_path(filename), File.read(filename)) unless File.directory?(filename)
37
+ content_type = MIME::Types.type_for(filename).first.to_s
38
+ api.buckets[option(:bucket)].objects.create(upload_path(filename), File.read(filename), :content_type => content_type) unless File.directory?(filename)
37
39
  end
38
40
  end
39
41
  end
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+ require 'dpl/provider/modulus'
3
+
4
+ describe DPL::Provider::Modulus do
5
+ subject :provider do
6
+ described_class.new(DummyContext.new, :api_key => 'test-token', :project_name => 'test-project')
7
+ end
8
+
9
+ describe :check_auth do
10
+ it 'should require an api key' do
11
+ provider.options.update(:api_key => nil)
12
+ expect{ provider.check_auth }.to raise_error("must supply an api key")
13
+ end
14
+ end
15
+
16
+ describe :check_app do
17
+ it 'should require a project name' do
18
+ provider.options.update(:project_name => nil)
19
+ expect{ provider.check_app }.to raise_error("must supply a project name")
20
+ end
21
+ end
22
+
23
+ describe :push_app do
24
+ it 'should include the api key and project name specified' do
25
+ provider.context.should_receive(:shell).with("MODULUS_TOKEN=test-token modulus deploy -p test-project")
26
+ provider.push_app
27
+ end
28
+ end
29
+ end
@@ -60,6 +60,12 @@ describe :needs_key? do
60
60
  Dir.should_receive(:chdir).with('BUILD')
61
61
  provider.push_app
62
62
  end
63
+
64
+ example "Sends MIME type" do
65
+ Dir.should_receive(:glob).and_yield(__FILE__)
66
+ AWS::S3::ObjectCollection.any_instance.should_receive(:create).with(anything(), anything(), hash_including(:content_type => 'application/x-ruby'))
67
+ provider.push_app
68
+ end
63
69
  end
64
70
 
65
71
  describe :api do
metadata CHANGED
@@ -1,69 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dpl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.7
4
+ version: 1.5.8.travis.303.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Haase
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-21 00:00:00.000000000 Z
11
+ date: 2014-01-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ! '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ! '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ! '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ! '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: simplecov
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ! '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ! '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: json
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ! '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  description: deploy tool abstraction for clients
@@ -95,6 +95,7 @@ files:
95
95
  - lib/dpl/provider/heroku.rb
96
96
  - lib/dpl/provider/heroku/anvil.rb
97
97
  - lib/dpl/provider/heroku/git.rb
98
+ - lib/dpl/provider/modulus.rb
98
99
  - lib/dpl/provider/nodejitsu.rb
99
100
  - lib/dpl/provider/npm.rb
100
101
  - lib/dpl/provider/openshift.rb
@@ -114,6 +115,7 @@ files:
114
115
  - spec/provider/dotcloud_spec.rb
115
116
  - spec/provider/heroku_anvil_spec.rb
116
117
  - spec/provider/heroku_git_spec.rb
118
+ - spec/provider/modulus_spec.rb
117
119
  - spec/provider/npm.rb
118
120
  - spec/provider/openshift_spec.rb
119
121
  - spec/provider/ops_works_spec.rb
@@ -132,35 +134,18 @@ require_paths:
132
134
  - lib
133
135
  required_ruby_version: !ruby/object:Gem::Requirement
134
136
  requirements:
135
- - - '>='
137
+ - - ! '>='
136
138
  - !ruby/object:Gem::Version
137
139
  version: 1.8.7
138
140
  required_rubygems_version: !ruby/object:Gem::Requirement
139
141
  requirements:
140
- - - '>='
142
+ - - ! '>'
141
143
  - !ruby/object:Gem::Version
142
- version: '0'
144
+ version: 1.3.1
143
145
  requirements: []
144
146
  rubyforge_project:
145
- rubygems_version: 2.0.7
147
+ rubygems_version: 2.2.1
146
148
  signing_key:
147
149
  specification_version: 4
148
150
  summary: deploy tool
149
- test_files:
150
- - spec/cli_spec.rb
151
- - spec/provider/appfog_spec.rb
152
- - spec/provider/cloud_files_spec.rb
153
- - spec/provider/cloudcontrol_spec.rb
154
- - spec/provider/divshot_spec.rb
155
- - spec/provider/dotcloud_spec.rb
156
- - spec/provider/heroku_anvil_spec.rb
157
- - spec/provider/heroku_git_spec.rb
158
- - spec/provider/npm.rb
159
- - spec/provider/openshift_spec.rb
160
- - spec/provider/ops_works_spec.rb
161
- - spec/provider/pypi_spec.rb
162
- - spec/provider/rubygems_spec.rb
163
- - spec/provider/s3_spec.rb
164
- - spec/provider_spec.rb
165
- - spec/spec_helper.rb
166
- has_rdoc:
151
+ test_files: []