deployments 0.0.2 → 0.0.3

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/README.md CHANGED
@@ -18,6 +18,33 @@ Or install it yourself as:
18
18
 
19
19
  ## Usage
20
20
 
21
+ If you are using Rails 2 version you should add load method to your Rakefile:
22
+
23
+ ```ruby
24
+ load "#{Gem.searcher.find('deployments').full_gem_path}/lib/tasks/deployments.rake"
25
+ ```
26
+
27
+ At first you need to create in the config folder deployments.yml file with
28
+ line:
29
+
30
+ ```yaml
31
+ options:
32
+ server: "your deployments server that will save build version"
33
+ ```
34
+
35
+ Add to your capistrano recipes the next following line, changing your_app_env
36
+ to the deployment environment like 'staging' or 'development':
37
+
38
+ ```ruby
39
+ require 'deployments'
40
+
41
+ before 'deploy' do
42
+ sh <<-CMD
43
+ rake deployments:push app_env=your_app_env
44
+ CMD
45
+ end
46
+ ```
47
+
21
48
 
22
49
  ## Contributing
23
50
 
@@ -1,2 +1,3 @@
1
- server: "example.com"
1
+ options:
2
+ server: "example.com"
2
3
 
@@ -9,7 +9,7 @@ module Deployments
9
9
  end
10
10
 
11
11
  def run
12
- c = Curl::Easy.http_post(Deployments.server, fields)
12
+ c = Curl::Easy.http_post(Deployments.options.server, fields)
13
13
 
14
14
  c.response_code.to_i == 200
15
15
  end
@@ -18,7 +18,17 @@ module Deployments
18
18
 
19
19
  def fields
20
20
  build.to_params.map do |key, value|
21
- Curl::PostField.content(key, value.to_s)
21
+ if value.is_a?(Array)
22
+ field_as_array(key, value)
23
+ else
24
+ Curl::PostField.content(key, value.to_s)
25
+ end
26
+ end.flatten
27
+ end
28
+
29
+ def field_as_array(key, value)
30
+ value.map do |v|
31
+ Curl::PostField.content("#{key}[]", v.to_s)
22
32
  end
23
33
  end
24
34
  end
@@ -1,3 +1,3 @@
1
1
  module Deployments
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe Deployments do
4
4
  context "getting access to the configuration" do
5
5
  it "should get server url" do
6
- Deployments.server.should == "example.com"
6
+ Deployments.options.server.should == "example.com"
7
7
  end
8
8
  end
9
9
  end
@@ -6,12 +6,33 @@ describe Dispatcher do
6
6
  let(:build) { Build.new("staging") }
7
7
  let(:dispatcher) { Dispatcher.new(build) }
8
8
 
9
- context "post deployment data" do
10
- before do
11
- Curl::Easy.should_receive(:http_post).and_return(response)
9
+ before { build.should_receive(:to_params).and_return(fields) }
10
+
11
+ describe "request params" do
12
+ let(:response) { double('response', :response_code => 200) }
13
+ let(:fields) do
14
+ {
15
+ :username => "james.bond",
16
+ :params => ["fish", "cat"]
17
+ }
18
+ end
12
19
 
13
- build.should_receive(:to_params).and_return(fields)
20
+ it "should have right params in request" do
21
+ Curl::Easy.should_receive(:http_post) do |url, fields|
22
+ url.should == Deployments.options.server
23
+
24
+ fields.count.should == 3
25
+ fields[0].should == "username=james.bond"
26
+ fields[1].should == "params[]=fish"
27
+ fields[2].should == "params[]=cat"
28
+ end.and_return(response)
29
+
30
+ dispatcher.run
14
31
  end
32
+ end
33
+
34
+ context "post deployment data" do
35
+ before { Curl::Easy.should_receive(:http_post).and_return(response) }
15
36
 
16
37
  context "with valid data" do
17
38
  let(:response) { double('response', :response_code => 200) }
@@ -50,11 +71,5 @@ describe Dispatcher do
50
71
  end
51
72
  end
52
73
  end
53
-
54
- def curl_fields
55
- fields.map do |key, value|
56
- Curl::PostField.content(key, value)
57
- end
58
- end
59
74
  end
60
75
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deployments
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: