producer-core 0.4.0 → 0.4.1

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.
@@ -6,8 +6,8 @@ Feature: `file_write' task action
6
6
  """
7
7
  task :file_write_action do
8
8
  file_write 'some_file', 'some_content'
9
- file_write 'some_file_0600', 'some_content', 0600
10
- file_write 'some_file_0700', 'some_content', 0700
9
+ file_write 'some_file_0600', 'some_content', mode: 0600
10
+ file_write 'some_file_0700', 'some_content', mode: 0700
11
11
  end
12
12
  """
13
13
 
@@ -6,8 +6,8 @@ Feature: `mkdir' task action
6
6
  """
7
7
  task :mkdir_action do
8
8
  mkdir 'some_directory'
9
- mkdir 'some_directory_0700', 0700
10
- mkdir 'some_directory_0500', 0500
9
+ mkdir 'some_directory_0700', mode: 0700
10
+ mkdir 'some_directory_0711', mode: 0711
11
11
  end
12
12
  """
13
13
 
@@ -15,10 +15,10 @@ Feature: `mkdir' task action
15
15
  When I successfully execute the recipe on remote target
16
16
  Then the remote directory "some_directory" must exists
17
17
 
18
- Scenario: creates directory with given permissions
18
+ Scenario: creates directory with given attributes
19
19
  When I successfully execute the recipe on remote target
20
20
  Then the remote directory "some_directory_0700" must have 0700 mode
21
- And the remote directory "some_directory_0500" must have 0500 mode
21
+ And the remote directory "some_directory_0711" must have 0711 mode
22
22
 
23
23
  Scenario: creates directories recursively
24
24
  Given a recipe with:
@@ -7,11 +7,13 @@ module Producer
7
7
  def_delegators :@env, :input, :output, :error_output, :remote
8
8
  def_delegators :remote, :fs
9
9
 
10
- attr_reader :env, :arguments
10
+ attr_reader :env, :arguments, :options
11
11
 
12
- def initialize(env, *args)
12
+ def initialize(env, *args, **options)
13
13
  @env = env
14
14
  @arguments = args
15
+ @options = options
16
+ setup if respond_to? :setup
15
17
  end
16
18
 
17
19
  def name
@@ -28,6 +30,12 @@ module Producer
28
30
  def inspect_arguments
29
31
  @arguments.inspect[0, INSPECT_ARGUMENTS_SUM_LEN - name.length]
30
32
  end
33
+
34
+ def check_arguments_size!(size)
35
+ if arguments.compact.size != size
36
+ fail ArgumentError, '`%s\' action requires %d arguments' % [name, size]
37
+ end
38
+ end
31
39
  end
32
40
  end
33
41
  end
@@ -7,7 +7,7 @@ module Producer
7
7
  end
8
8
 
9
9
  def apply
10
- output.puts arguments.first
10
+ output.puts arguments
11
11
  end
12
12
  end
13
13
  end
@@ -2,27 +2,24 @@ module Producer
2
2
  module Core
3
3
  module Actions
4
4
  class FileAppend < Action
5
+ def setup
6
+ check_arguments_size! 2
7
+ @path, @content = arguments
8
+ end
9
+
5
10
  def name
6
11
  'file_append'
7
12
  end
8
13
 
9
14
  def apply
10
- fs.file_write path, combined_content
11
- end
12
-
13
- def path
14
- arguments[0]
15
- end
16
-
17
- def content
18
- arguments[1]
15
+ fs.file_write @path, combined_content
19
16
  end
20
17
 
21
18
  def combined_content
22
- original_content = fs.file_read(path)
19
+ original_content = fs.file_read(@path)
23
20
 
24
- return content unless original_content
25
- original_content + content
21
+ return @content unless original_content
22
+ original_content + @content
26
23
  end
27
24
  end
28
25
  end
@@ -2,28 +2,21 @@ module Producer
2
2
  module Core
3
3
  module Actions
4
4
  class FileReplaceContent < Action
5
+ def setup
6
+ check_arguments_size! 3
7
+ @path, @pattern, @replacement = arguments
8
+ end
9
+
5
10
  def name
6
11
  'file_replace_content'
7
12
  end
8
13
 
9
14
  def apply
10
- fs.file_write path, replaced_content
11
- end
12
-
13
- def path
14
- arguments[0]
15
- end
16
-
17
- def pattern
18
- arguments[1]
19
- end
20
-
21
- def replacement
22
- arguments[2]
15
+ fs.file_write @path, replaced_content
23
16
  end
24
17
 
25
18
  def replaced_content
26
- fs.file_read(path).gsub pattern, replacement
19
+ fs.file_read(@path).gsub @pattern, @replacement
27
20
  end
28
21
  end
29
22
  end
@@ -2,29 +2,20 @@ module Producer
2
2
  module Core
3
3
  module Actions
4
4
  class FileWriter < Action
5
+ def setup
6
+ check_arguments_size! 2
7
+ @path, @content = arguments
8
+ @options[:permissions] = @options.delete :mode if options.key? :mode
9
+ @options[:owner] = @options.delete :user if options.key? :user
10
+ end
11
+
5
12
  def name
6
13
  'file_write'
7
14
  end
8
15
 
9
16
  def apply
10
- case arguments.size
11
- when 2
12
- fs.file_write path, content
13
- when 3
14
- fs.file_write path, content, mode
15
- end
16
- end
17
-
18
- def path
19
- arguments[0]
20
- end
21
-
22
- def content
23
- arguments[1]
24
- end
25
-
26
- def mode
27
- arguments[2]
17
+ fs.file_write @path, @content
18
+ fs.setstat @path, @options unless @options.empty?
28
19
  end
29
20
  end
30
21
  end
@@ -2,28 +2,24 @@ module Producer
2
2
  module Core
3
3
  module Actions
4
4
  class Mkdir < Action
5
+ def setup
6
+ check_arguments_size! 1
7
+ @path = Pathname.new(arguments.first)
8
+ @options[:permissions] = @options.delete :mode if @options.key? :mode
9
+ @options[:owner] = @options.delete :user if @options.key? :user
10
+ end
11
+
5
12
  def name
6
13
  'mkdir'
7
14
  end
8
15
 
9
16
  def apply
10
- path.descend do |p|
17
+ @path.descend do |p|
11
18
  next if fs.dir? p
12
19
  fs.mkdir p.to_s
13
- fs.chmod p.to_s, mode if mode
20
+ fs.setstat p.to_s, @options unless @options.empty?
14
21
  end
15
22
  end
16
-
17
-
18
- private
19
-
20
- def path
21
- Pathname.new(arguments.first)
22
- end
23
-
24
- def mode
25
- arguments[1]
26
- end
27
23
  end
28
24
  end
29
25
  end
@@ -2,12 +2,17 @@ module Producer
2
2
  module Core
3
3
  module Actions
4
4
  class ShellCommand < Action
5
+ def setup
6
+ check_arguments_size! 1
7
+ @command = arguments.first
8
+ end
9
+
5
10
  def name
6
11
  'sh'
7
12
  end
8
13
 
9
14
  def apply
10
- remote.execute(arguments.first, output, error_output)
15
+ remote.execute(@command, output, error_output)
11
16
  end
12
17
  end
13
18
  end
@@ -2,6 +2,7 @@ module Producer
2
2
  module Core
3
3
  Error = Class.new(StandardError)
4
4
  RuntimeError = Class.new(RuntimeError)
5
+ ArgumentError = Class.new(Error)
5
6
  ConditionNotMetError = Class.new(Error)
6
7
  RemoteCommandExecutionError = Class.new(RuntimeError)
7
8
  RegistryKeyError = Class.new(RuntimeError)
@@ -20,13 +20,16 @@ module Producer
20
20
  false
21
21
  end
22
22
 
23
+ def setstat(path, attributes)
24
+ sftp.setstat! path, attributes
25
+ end
26
+
23
27
  def chmod(path, mode)
24
- sftp.setstat! path, permissions: mode
28
+ setstat path, permissions: mode
25
29
  end
26
30
 
27
- def mkdir(path, mode = nil)
28
- options = mode ? { permissions: mode } : {}
29
- sftp.mkdir! path, options
31
+ def mkdir(path, attributes = {})
32
+ ret = sftp.mkdir! path, attributes
30
33
  end
31
34
 
32
35
  def file_read(path)
@@ -35,8 +38,8 @@ module Producer
35
38
  nil
36
39
  end
37
40
 
38
- def file_write(path, content, mode = nil)
39
- sftp.file.open path, 'w', mode do |f|
41
+ def file_write(path, content)
42
+ sftp.file.open path, 'w' do |f|
40
43
  f.write content
41
44
  end
42
45
  end
@@ -1,5 +1,5 @@
1
1
  module Producer
2
2
  module Core
3
- VERSION = '0.4.0'.freeze
3
+ VERSION = '0.4.1'.freeze
4
4
  end
5
5
  end
@@ -2,14 +2,45 @@ require 'spec_helper'
2
2
 
3
3
  module Producer::Core
4
4
  describe Action do
5
+ let(:env) { double 'env'}
6
+ let(:arguments) { [:some, :arguments] }
7
+ let(:options) { { foo: :bar } }
8
+ subject(:action) { described_class.new(env, *arguments, options) }
9
+
5
10
  it_behaves_like 'action'
6
11
 
7
- describe '#name' do
8
- subject(:action) { described_class.new(double 'env') }
12
+ describe '#initialize' do
13
+ it 'calls #setup when defined' do
14
+ action_class = Class.new(described_class)
15
+ action_class.class_eval do
16
+ define_method(:setup) { @arguments = :other_arguments }
17
+ end
18
+ expect(action_class.new(env).arguments).to eq :other_arguments
19
+ end
20
+ end
9
21
 
22
+ describe '#name' do
10
23
  it 'infers action name from class name' do
11
24
  expect(action.name).to eq 'action'
12
25
  end
13
26
  end
27
+
28
+ describe '#to_s' do
29
+ it 'includes action name' do
30
+ expect(action.to_s).to match /\A#{action.name}/
31
+ end
32
+
33
+ it 'includes arguments inspection' do
34
+ expect(action.to_s).to match /#{Regexp.quote(arguments.inspect)}\z/
35
+ end
36
+
37
+ context 'when arguments inspection is very long' do
38
+ let(:arguments) { [:some, :arguments] * 32 }
39
+
40
+ it 'summarizes arguments inspection' do
41
+ expect(action.to_s.length).to be < 70
42
+ end
43
+ end
44
+ end
14
45
  end
15
46
  end
@@ -4,7 +4,8 @@ module Producer::Core
4
4
  module Actions
5
5
  describe Echo, :env do
6
6
  let(:text) { 'hello' }
7
- subject(:echo) { described_class.new(env, text) }
7
+ let(:arguments) { [text] }
8
+ subject(:echo) { described_class.new(env, *arguments) }
8
9
 
9
10
  it_behaves_like 'action'
10
11
 
@@ -6,12 +6,23 @@ module Producer::Core
6
6
  let(:path) { 'some_path' }
7
7
  let(:content) { 'some content' }
8
8
  let(:added_content) { ' added' }
9
- subject(:action) { described_class.new(env, path, added_content) }
9
+ let(:arguments) { [path, added_content] }
10
+ subject(:action) { described_class.new(env, *arguments) }
10
11
 
11
12
  it_behaves_like 'action'
12
13
 
13
14
  before { allow(remote_fs).to receive(:file_read).with(path) { content } }
14
15
 
16
+ describe '#setup' do
17
+ context 'when content is missing' do
18
+ let(:added_content) { nil }
19
+
20
+ it 'raises ArgumentError' do
21
+ expect { action }.to raise_error ArgumentError
22
+ end
23
+ end
24
+ end
25
+
15
26
  describe '#apply' do
16
27
  it 'appends given content to requested file on remote filesystem' do
17
28
  expect(remote_fs)
@@ -20,18 +31,6 @@ module Producer::Core
20
31
  end
21
32
  end
22
33
 
23
- describe '#path' do
24
- it 'returns the file path' do
25
- expect(action.path).to eq path
26
- end
27
- end
28
-
29
- describe '#content' do
30
- it 'returns the content to append' do
31
- expect(action.content).to eq added_content
32
- end
33
- end
34
-
35
34
  describe '#combined_content' do
36
35
  it 'returns original content and added content combined' do
37
36
  expect(action.combined_content).to eq 'some content added'
@@ -7,12 +7,23 @@ module Producer::Core
7
7
  let(:pattern) { 'content' }
8
8
  let(:replacement) { 'other content' }
9
9
  let(:content) { 'some content' }
10
- subject(:action) { described_class.new(env, path, pattern, replacement) }
10
+ let(:arguments) { [path, pattern, replacement] }
11
+ subject(:action) { described_class.new(env, *arguments) }
11
12
 
12
13
  it_behaves_like 'action'
13
14
 
14
15
  before { allow(remote_fs).to receive(:file_read).with(path) { content } }
15
16
 
17
+ describe '#setup' do
18
+ context 'when replacement is missing' do
19
+ let(:replacement) { nil }
20
+
21
+ it 'raises ArgumentError' do
22
+ expect { action }.to raise_error ArgumentError
23
+ end
24
+ end
25
+ end
26
+
16
27
  describe '#apply' do
17
28
  it 'writes replaced content to file on remote filesystem' do
18
29
  expect(remote_fs)
@@ -21,24 +32,6 @@ module Producer::Core
21
32
  end
22
33
  end
23
34
 
24
- describe '#path' do
25
- it 'returns the file path' do
26
- expect(action.path).to eq path
27
- end
28
- end
29
-
30
- describe '#pattern' do
31
- it 'returns the pattern' do
32
- expect(action.pattern).to eq pattern
33
- end
34
- end
35
-
36
- describe '#replacement' do
37
- it 'returns the replacement' do
38
- expect(action.replacement).to eq replacement
39
- end
40
- end
41
-
42
35
  describe '#replaced_content' do
43
36
  it 'returns content with pattern occurrences pattern replaced' do
44
37
  expect(action.replaced_content).to eq 'some other content'
@@ -5,49 +5,45 @@ module Producer::Core
5
5
  describe FileWriter, :env do
6
6
  let(:path) { 'some_path' }
7
7
  let(:content) { 'some_content' }
8
- subject(:writer) { described_class.new(env, path, content) }
8
+ let(:arguments) { [path, content] }
9
+ let(:options) { { } }
10
+ subject(:writer) { described_class.new(env, *arguments, options) }
9
11
 
10
12
  it_behaves_like 'action'
11
13
 
12
- describe '#apply' do
13
- it 'writes content to file on remote filesystem' do
14
- expect(remote_fs).to receive(:file_write).with(path, content)
15
- writer.apply
16
- end
14
+ describe '#setup' do
15
+ let(:options) { { mode: 0700, user: 'root' } }
17
16
 
18
- context 'when a mode was given' do
19
- subject(:writer) { described_class.new(env, path, content, 0600) }
20
-
21
- it 'specifies the given mode' do
22
- expect(remote_fs)
23
- .to receive(:file_write).with(anything, anything, 0600)
24
- writer.apply
25
- end
17
+ it 'translates mode option as permissions' do
18
+ expect(writer.options[:permissions]).to eq 0700
26
19
  end
27
- end
28
20
 
29
- describe '#path' do
30
- it 'returns the path' do
31
- expect(writer.path).to eq path
21
+ it 'translates user option as owner' do
22
+ expect(writer.options[:owner]).to eq 'root'
32
23
  end
33
- end
34
24
 
35
- describe '#content' do
36
- it 'returns the content' do
37
- expect(writer.content).to eq content
25
+ context 'when content is missing' do
26
+ let(:content) { nil }
27
+
28
+ it 'raises ArgumentError' do
29
+ expect { writer }.to raise_error ArgumentError
30
+ end
38
31
  end
39
32
  end
40
33
 
41
- describe '#mode' do
42
- it 'returns nil' do
43
- expect(writer.mode).to be nil
34
+ describe '#apply' do
35
+ it 'writes content to file on remote filesystem' do
36
+ expect(remote_fs)
37
+ .to receive(:file_write).with(path, content)
38
+ writer.apply
44
39
  end
45
40
 
46
- context 'when a mode was given' do
47
- subject(:writer) { described_class.new(env, path, content, 0600) }
41
+ context 'when status options are given' do
42
+ let(:options) { { group: 'wheel' } }
48
43
 
49
- it 'returns the mode' do
50
- expect(writer.mode).to eq 0600
44
+ it 'changes the directory status with given options' do
45
+ expect(remote_fs).to receive(:setstat).with(path, options)
46
+ writer.apply
51
47
  end
52
48
  end
53
49
  end
@@ -4,10 +4,32 @@ module Producer::Core
4
4
  module Actions
5
5
  describe Mkdir, :env do
6
6
  let(:path) { 'some_path' }
7
- subject(:mkdir) { described_class.new(env, path) }
7
+ let(:options) { { } }
8
+ let(:arguments) { [path] }
9
+ subject(:mkdir) { described_class.new(env, *arguments, options) }
8
10
 
9
11
  it_behaves_like 'action'
10
12
 
13
+ describe '#setup' do
14
+ let(:options) { { mode: 0700, user: 'root' } }
15
+
16
+ it 'translates mode option as permissions' do
17
+ expect(mkdir.options[:permissions]).to eq 0700
18
+ end
19
+
20
+ it 'translates user option as owner' do
21
+ expect(mkdir.options[:owner]).to eq 'root'
22
+ end
23
+
24
+ context 'when path is missing' do
25
+ let(:path) { nil }
26
+
27
+ it 'raises ArgumentError' do
28
+ expect { mkdir }.to raise_error ArgumentError
29
+ end
30
+ end
31
+ end
32
+
11
33
  describe '#apply' do
12
34
  before { allow(remote_fs).to receive(:dir?) { false } }
13
35
 
@@ -16,11 +38,11 @@ module Producer::Core
16
38
  mkdir.apply
17
39
  end
18
40
 
19
- context 'when a mode was given' do
20
- subject(:mkdir) { described_class.new(env, path, 0700) }
41
+ context 'when status options are given' do
42
+ let(:options) { { group: 'wheel' } }
21
43
 
22
- it 'changes the directory with given mode' do
23
- expect(remote_fs).to receive(:chmod).with(path, 0700)
44
+ it 'changes the directory status with given options' do
45
+ expect(remote_fs).to receive(:setstat).with(path, options)
24
46
  mkdir.apply
25
47
  end
26
48
  end
@@ -38,7 +60,7 @@ module Producer::Core
38
60
  context 'when directory already exists' do
39
61
  before { allow(remote_fs).to receive(:dir?) { true } }
40
62
 
41
- it 'creates directory on remote filesystem' do
63
+ it 'does not create any directory' do
42
64
  expect(remote_fs).not_to receive(:mkdir)
43
65
  mkdir.apply
44
66
  end
@@ -5,10 +5,21 @@ module Producer::Core
5
5
  describe ShellCommand, :env do
6
6
  let(:command_args) { 'hello from remote host' }
7
7
  let(:command) { "echo #{command_args}" }
8
- subject(:sh) { described_class.new(env, command) }
8
+ let(:arguments) { [command] }
9
+ subject(:sh) { described_class.new(env, *arguments) }
9
10
 
10
11
  it_behaves_like 'action'
11
12
 
13
+ describe '#setup' do
14
+ context 'when command is missing' do
15
+ let(:command) { nil }
16
+
17
+ it 'raises ArgumentError' do
18
+ expect { sh }.to raise_error ArgumentError
19
+ end
20
+ end
21
+ end
22
+
12
23
  describe '#apply' do
13
24
  it 'executes the remote command' do
14
25
  expect_execution(command)
@@ -86,18 +86,12 @@ module Producer::Core
86
86
  end
87
87
 
88
88
  describe '#mkdir' do
89
- let(:path) { 'some_directory_path' }
89
+ let(:path) { 'some_directory_path' }
90
+ let(:attributes) { { foo: :bar } }
90
91
 
91
92
  it 'creates the directory' do
92
- expect(sftp).to receive(:mkdir!).with(path, anything)
93
- fs.mkdir path
94
- end
95
-
96
- it 'specifies permissions from optional mode argument' do
97
- expect(sftp).to receive(:mkdir!) do |_, options|
98
- expect(options[:permissions]).to eq 0700
99
- end
100
- fs.mkdir path, 0700
93
+ expect(sftp).to receive(:mkdir!).with(path, attributes)
94
+ fs.mkdir path, attributes
101
95
  end
102
96
  end
103
97
 
@@ -133,7 +127,7 @@ module Producer::Core
133
127
  let(:content) { 'some_content' }
134
128
 
135
129
  it 'opens the file' do
136
- expect(sftp_file).to receive(:open).with(path, 'w', anything)
130
+ expect(sftp_file).to receive(:open).with(path, 'w')
137
131
  fs.file_write path, content
138
132
  end
139
133
 
@@ -144,11 +138,6 @@ module Producer::Core
144
138
  end
145
139
  fs.file_write path, content
146
140
  end
147
-
148
- it 'accepts an optional mode argument' do
149
- expect(sftp_file).to receive(:open).with(anything, anything, 0600)
150
- fs.file_write path, content, 0600
151
- end
152
141
  end
153
142
  end
154
143
  end
@@ -2,20 +2,8 @@ module Producer::Core
2
2
  shared_examples 'action' do
3
3
  include TestEnvHelpers
4
4
 
5
- let(:arguments) { [:some, :arguments] }
6
- subject(:action) { described_class.new(env, *arguments) }
7
-
8
- describe '#env' do
9
- it 'returns the assigned env' do
10
- expect(action.env).to be env
11
- end
12
- end
13
-
14
- describe '#arguments' do
15
- it 'returns the assigned arguments' do
16
- expect(action.arguments).to eq arguments
17
- end
18
- end
5
+ let(:options) { { foo: :bar } }
6
+ subject(:action) { described_class.new(env, *arguments, options) }
19
7
 
20
8
  describe '#input' do
21
9
  it 'returns env input' do
@@ -52,23 +40,5 @@ module Producer::Core
52
40
  expect(action.name).to match /\A\w+\z/
53
41
  end
54
42
  end
55
-
56
- describe '#to_s' do
57
- it 'includes action name' do
58
- expect(action.to_s).to match /\A#{action.name}/
59
- end
60
-
61
- it 'includes arguments inspection' do
62
- expect(action.to_s).to match /#{Regexp.quote(arguments.inspect)}\z/
63
- end
64
-
65
- context 'when arguments inspection is very long' do
66
- let(:arguments) { [:some, :arguments] * 32 }
67
-
68
- it 'summarizes arguments inspection' do
69
- expect(action.to_s.length).to be < 70
70
- end
71
- end
72
- end
73
43
  end
74
44
  end
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: producer-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Thibault Jouan
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2015-04-03 00:00:00.000000000 Z
12
+ date: 2014-10-09 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: net-ssh
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - "~>"
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - "~>"
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: net-sftp
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - "~>"
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - "~>"
39
44
  - !ruby/object:Gem::Version
@@ -41,6 +46,7 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: rspec
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
@@ -48,6 +54,7 @@ dependencies:
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
59
  - - "~>"
53
60
  - !ruby/object:Gem::Version
@@ -55,6 +62,7 @@ dependencies:
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: cucumber
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
67
  - - "~>"
60
68
  - !ruby/object:Gem::Version
@@ -62,6 +70,7 @@ dependencies:
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
75
  - - "~>"
67
76
  - !ruby/object:Gem::Version
@@ -69,6 +78,7 @@ dependencies:
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: aruba
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
83
  - - "~>"
74
84
  - !ruby/object:Gem::Version
@@ -76,6 +86,7 @@ dependencies:
76
86
  type: :development
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
91
  - - "~>"
81
92
  - !ruby/object:Gem::Version
@@ -83,6 +94,7 @@ dependencies:
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: cucumber-sshd
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
99
  - - "~>"
88
100
  - !ruby/object:Gem::Version
@@ -90,6 +102,7 @@ dependencies:
90
102
  type: :development
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
93
106
  requirements:
94
107
  - - "~>"
95
108
  - !ruby/object:Gem::Version
@@ -97,6 +110,7 @@ dependencies:
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: rake
99
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
100
114
  requirements:
101
115
  - - "~>"
102
116
  - !ruby/object:Gem::Version
@@ -104,6 +118,7 @@ dependencies:
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
107
122
  requirements:
108
123
  - - "~>"
109
124
  - !ruby/object:Gem::Version
@@ -242,26 +257,27 @@ files:
242
257
  - spec/support/test_env_helpers.rb
243
258
  homepage: https://rubygems.org/gems/producer-core
244
259
  licenses: []
245
- metadata: {}
246
260
  post_install_message:
247
261
  rdoc_options: []
248
262
  require_paths:
249
263
  - lib
250
264
  required_ruby_version: !ruby/object:Gem::Requirement
265
+ none: false
251
266
  requirements:
252
267
  - - ">="
253
268
  - !ruby/object:Gem::Version
254
269
  version: '0'
255
270
  required_rubygems_version: !ruby/object:Gem::Requirement
271
+ none: false
256
272
  requirements:
257
273
  - - ">="
258
274
  - !ruby/object:Gem::Version
259
275
  version: '0'
260
276
  requirements: []
261
277
  rubyforge_project:
262
- rubygems_version: 2.4.5
278
+ rubygems_version: 1.8.29
263
279
  signing_key:
264
- specification_version: 4
280
+ specification_version: 3
265
281
  summary: Provisioning tool
266
282
  test_files:
267
283
  - features/action_echo.feature
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 8ace21fcdc6845673cc6f94b6210ba2cec34afbb
4
- data.tar.gz: 2766db0d025a2ced6386cd803ddd3f938fd29459
5
- SHA512:
6
- metadata.gz: 5e8d2371facb4acceecc19e3306ad543c0e84bdb1a7b4fc4f503322a5060c10e7d962f68eb9fb3921623a90aee34f19235c7ad030e6bbc9eacd5d88041ded545
7
- data.tar.gz: fa8acb5e15fe715877c63bf24852fac5a45ff5705a295d94c4a5b381f5c62fe33816c4ecbc41037aa5beaa136dd4f430c9f8fc8b4e0b2133d64e689e2475ffb6