vx-builder 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4931a543965ca9828a090a0d2fee1cec1e7bedca
4
- data.tar.gz: 916c04fd44e0df9dbb26ed7de24fe356fc58660a
3
+ metadata.gz: 45791c5eb7d09805bf54688cf7bad24381933750
4
+ data.tar.gz: 5d42c9ee4247cb9f94d2f8b884c8b9653d964082
5
5
  SHA512:
6
- metadata.gz: fa0e9cc22069c4d13042252a10d08dbeb356ab81800d1dccae33e77504dfe57f062a9ba3b4c1565a8f09e71ce189f8112f0588b77d8542660eb1e6b83db4e44e
7
- data.tar.gz: 1e7a835fbfbf8d4b254bfaab6de087b4ecec84ee16cf7407c1ff38c055254c17ca5648b54f264c97f2c1bd8ce161a2afcb1f03395dfbe8b3a6b5680d23379456
6
+ metadata.gz: 0e43c8093cfe287c48236efe385063aa39b8740bfe1a4d0d8322c1255144af1335a87442e864eed7e4fdb23aa5fec4659cad6fb2dd3fc33b972ba1463cd9a6a8
7
+ data.tar.gz: ddcdb655878e2c165998d85ca057588e12b74e7048c7051e87513470a35f8a1726d0e657884f284ca424e63a1e2a31d48051915ecfced74619b72ecfa879d822
@@ -25,6 +25,10 @@ module Vx
25
25
  def detect(params)
26
26
  params.key?(key.to_s) if key
27
27
  end
28
+
29
+ def module_by_key(val)
30
+ loaded.find{|i| i.key.to_s == val.to_s }
31
+ end
28
32
  end
29
33
 
30
34
  attr_reader :params, :branch
@@ -48,7 +52,15 @@ module Vx
48
52
 
49
53
  def key
50
54
  if self.class.key
51
- Array(params[self.class.key.to_s])
55
+ @key ||= Array(params[self.class.key.to_s])
56
+ end
57
+ end
58
+
59
+ def to_hash
60
+ if key
61
+ { self.class.key.to_s => key }
62
+ else
63
+ {}
52
64
  end
53
65
  end
54
66
 
@@ -3,6 +3,18 @@ module Vx
3
3
  class BuildConfiguration
4
4
  class Deploy
5
5
 
6
+ class << self
7
+ def restore_modules(values)
8
+ (values || []).inject([]) do |ac, pair|
9
+ k = pair.keys.first
10
+ if it = Base.module_by_key(k)
11
+ ac << it.new(pair)
12
+ end
13
+ ac
14
+ end
15
+ end
16
+ end
17
+
6
18
  attr_reader :attributes
7
19
 
8
20
  def initialize(new_env)
@@ -13,8 +25,13 @@ module Vx
13
25
  @attributes
14
26
  end
15
27
 
28
+ def empty?
29
+ attributes.empty?
30
+ end
31
+
16
32
  def find_modules(branch)
17
33
  modules = []
34
+
18
35
  Base.loaded.each do |l|
19
36
  attributes.each do |attr|
20
37
  if l.detect(attr)
@@ -50,6 +50,7 @@ module Vx
50
50
  @cache = Cache.new new_attributes.delete("cache")
51
51
  @deploy = Deploy.new new_attributes.delete("deploy")
52
52
  @deploy_modules = new_attributes.delete("deploy_modules") || []
53
+ @deploy_modules = Deploy.restore_modules(@deploy_modules)
53
54
 
54
55
  @matrix_attributes = matrix_attributes
55
56
 
@@ -7,6 +7,7 @@ module Vx
7
7
  before_script
8
8
  after_success
9
9
  script
10
+ deploy_modules
10
11
  }
11
12
 
12
13
  attr_reader :base_build_configuration, :matrix_build_configuration, :branch
@@ -31,7 +32,7 @@ module Vx
31
32
 
32
33
  BuildConfiguration.new(
33
34
  hash.merge(
34
- "deploy_modules" => deploy_modules,
35
+ "deploy_modules" => deploy_modules.map(&:to_hash),
35
36
  "deploy" => nil
36
37
  )
37
38
  )
@@ -1,5 +1,5 @@
1
1
  module Vx
2
2
  module Builder
3
- VERSION = "0.3.0"
3
+ VERSION = "0.3.1"
4
4
  end
5
5
  end
@@ -30,4 +30,11 @@ describe Vx::Builder::BuildConfiguration::Deploy::Base do
30
30
  it { should have(1).items }
31
31
  end
32
32
 
33
+ context ".module_by_key" do
34
+ it "should find modules" do
35
+ expect(described_class.module_by_key :shell).to eq Vx::Builder::BuildConfiguration::Deploy::Shell
36
+ expect(described_class.module_by_key :not_shell).to be_nil
37
+ end
38
+ end
39
+
33
40
  end
@@ -47,4 +47,15 @@ describe Vx::Builder::BuildConfiguration::Deploy do
47
47
  end
48
48
  end
49
49
 
50
+ context "restore_modules" do
51
+ let(:attrs) { [
52
+ { "shell" => "/bin/true" }
53
+ ] }
54
+ it "should build deploy module instances" do
55
+ list = described_class.restore_modules(attrs)
56
+ expect(list).to have(1).item
57
+ expect(list.first).to be_an_instance_of(Vx::Builder::BuildConfiguration::Deploy::Shell)
58
+ end
59
+ end
60
+
50
61
  end
@@ -65,4 +65,16 @@ describe Vx::Builder::BuildConfiguration do
65
65
  subject { config.deploy }
66
66
  it { should be }
67
67
  end
68
+
69
+ context "deploy_modules" do
70
+ let(:content) { {
71
+ "deploy_modules" => [
72
+ { "shell" => "/bin/true" }
73
+ ]
74
+ } }
75
+ it "should restore" do
76
+ expect(config).to have(1).deploy_modules
77
+ expect(config).to be_deploy_modules
78
+ end
79
+ end
68
80
  end
@@ -70,6 +70,7 @@ describe Vx::Builder::DeployBuilder do
70
70
  expect(config.image).to be_empty
71
71
  expect(config.before_script).to be_empty
72
72
  expect(config.script).to be_empty
73
+ expect(config.deploy).to be_empty
73
74
  expect(config.after_success).to be_empty
74
75
  end
75
76
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vx-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Galinsky
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-12 00:00:00.000000000 Z
11
+ date: 2014-06-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: vx-common