pups 1.0.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,27 +1,26 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
  require 'tempfile'
3
5
 
4
6
  module Pups
5
7
  class FileCommandTest < MiniTest::Test
6
-
7
8
  def test_simple_file_creation
8
- tmp = Tempfile.new("test")
9
- tmp.write("x")
9
+ tmp = Tempfile.new('test')
10
+ tmp.write('x')
10
11
  tmp.close
11
12
 
12
-
13
13
  cmd = FileCommand.new
14
14
  cmd.path = tmp.path
15
- cmd.contents = "hello $world"
16
- cmd.params = {"world" => "world"}
15
+ cmd.contents = 'hello $world'
16
+ cmd.params = { 'world' => 'world' }
17
17
  cmd.run
18
18
 
19
- assert_equal("hello world",
20
- File.read(tmp.path))
19
+ assert_equal('hello world',
20
+ File.read(tmp.path))
21
21
  ensure
22
22
  tmp.close
23
23
  tmp.unlink
24
24
  end
25
-
26
25
  end
27
26
  end
@@ -1,56 +1,56 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
  require 'tempfile'
3
5
 
4
6
  module Pups
5
7
  class MergeCommandTest < MiniTest::Test
6
8
  def test_deep_merge_arrays
7
- a = {a: {a: ["hi",1]}}
8
- b = {a: {a: ["hi",2]}}
9
- c = {a: {}}
9
+ a = { a: { a: ['hi', 1] } }
10
+ b = { a: { a: ['hi', 2] } }
11
+ c = { a: {} }
10
12
 
11
- d = Pups::MergeCommand.deep_merge(a,b,:merge_arrays)
12
- d = Pups::MergeCommand.deep_merge(d,c,:merge_arrays)
13
+ d = Pups::MergeCommand.deep_merge(a, b, :merge_arrays)
14
+ d = Pups::MergeCommand.deep_merge(d, c, :merge_arrays)
13
15
 
14
- assert_equal(["hi", 1,"hi", 2], d[:a][:a])
16
+ assert_equal(['hi', 1, 'hi', 2], d[:a][:a])
15
17
  end
16
18
 
17
19
  def test_merges
20
+ source = <<~YAML
21
+ user:
22
+ name: "bob"
23
+ password: "xyz"
24
+ YAML
18
25
 
19
- source = <<YAML
20
- user:
21
- name: "bob"
22
- password: "xyz"
23
- YAML
24
-
25
- f = Tempfile.new("test")
26
+ f = Tempfile.new('test')
26
27
  f.write source
27
28
  f.close
28
29
 
29
- merge = <<YAML
30
- user:
31
- name: "bob2"
32
- YAML
30
+ merge = <<~YAML
31
+ user:
32
+ name: "bob2"
33
+ YAML
33
34
 
34
- MergeCommand.from_str("#{f.path} $yaml", {"yaml" => YAML.load(merge) }).run
35
+ MergeCommand.from_str("#{f.path} $yaml", { 'yaml' => YAML.safe_load(merge) }).run
35
36
 
36
- changed = YAML.load_file(f.path)
37
+ changed = YAML.load_file(f.path)
37
38
 
38
- assert_equal({"user" => {
39
- "name" => "bob2",
40
- "password" => "xyz"
41
- }}, changed)
39
+ assert_equal({ 'user' => {
40
+ 'name' => 'bob2',
41
+ 'password' => 'xyz'
42
+ } }, changed)
42
43
 
43
- def test_deep_merge_nil
44
- a = {param: {venison: "yes please"}}
45
- b = {param: nil}
44
+ def test_deep_merge_nil
45
+ a = { param: { venison: 'yes please' } }
46
+ b = { param: nil }
46
47
 
47
- r1 = Pups::MergeCommand.deep_merge(a,b)
48
- r2 = Pups::MergeCommand.deep_merge(b,a)
49
-
50
- assert_equal({venison: "yes please"}, r1[:param])
51
- assert_equal({venison: "yes please"}, r2[:param])
52
- end
48
+ r1 = Pups::MergeCommand.deep_merge(a, b)
49
+ r2 = Pups::MergeCommand.deep_merge(b, a)
53
50
 
51
+ assert_equal({ venison: 'yes please' }, r1[:param])
52
+ assert_equal({ venison: 'yes please' }, r2[:param])
53
+ end
54
54
  ensure
55
55
  f.unlink
56
56
  end
@@ -1,34 +1,35 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
  require 'tempfile'
3
5
 
4
6
  module Pups
5
7
  class ReplaceCommandTest < MiniTest::Test
6
-
7
8
  def test_simple
8
9
  command = ReplaceCommand.new({})
9
- command.text = "hello world"
10
+ command.text = 'hello world'
10
11
  command.from = /he[^o]+o/
11
- command.to = "world"
12
+ command.to = 'world'
12
13
 
13
- assert_equal("world world", command.replaced_text)
14
+ assert_equal('world world', command.replaced_text)
14
15
  end
15
16
 
16
17
  def test_reverse
17
- source = <<SCR
18
- 1 one thousand 1
19
- 1 one thousand 1
20
- 1 one thousand 1
21
- SCR
18
+ source = <<~SCR
19
+ 1 one thousand 1
20
+ 1 one thousand 1
21
+ 1 one thousand 1
22
+ SCR
22
23
 
23
- f = Tempfile.new("test")
24
+ f = Tempfile.new('test')
24
25
  f.write source
25
26
  f.close
26
27
 
27
28
  hash = {
28
- "filename" => f.path,
29
- "from" => "/one t.*d/",
30
- "to" => "hello world",
31
- "direction" => "reverse"
29
+ 'filename' => f.path,
30
+ 'from' => '/one t.*d/',
31
+ 'to' => 'hello world',
32
+ 'direction' => 'reverse'
32
33
  }
33
34
 
34
35
  command = ReplaceCommand.from_hash(hash, {})
@@ -39,21 +40,21 @@ SCR
39
40
  end
40
41
 
41
42
  def test_global
42
- source = <<SCR
43
- one
44
- one
45
- one
46
- SCR
43
+ source = <<~SCR
44
+ one
45
+ one
46
+ one
47
+ SCR
47
48
 
48
- f = Tempfile.new("test")
49
+ f = Tempfile.new('test')
49
50
  f.write source
50
51
  f.close
51
52
 
52
53
  hash = {
53
- "filename" => f.path,
54
- "from" => "/one/",
55
- "to" => "two",
56
- "global" => "true"
54
+ 'filename' => f.path,
55
+ 'from' => '/one/',
56
+ 'to' => 'two',
57
+ 'global' => 'true'
57
58
  }
58
59
 
59
60
  command = ReplaceCommand.from_hash(hash, {})
@@ -61,50 +62,47 @@ SCR
61
62
  assert_equal("two\ntwo\ntwo\n", command.replaced_text)
62
63
  ensure
63
64
  f.unlink
64
-
65
65
  end
66
66
 
67
67
  def test_replace_with_env
68
- source = "123"
68
+ source = '123'
69
69
 
70
- f = Tempfile.new("test")
70
+ f = Tempfile.new('test')
71
71
  f.write source
72
72
  f.close
73
73
 
74
74
  hash = {
75
- "filename" => f.path,
76
- "from" => "123",
77
- "to" => "hello $hellos"
75
+ 'filename' => f.path,
76
+ 'from' => '123',
77
+ 'to' => 'hello $hellos'
78
78
  }
79
79
 
80
- command = ReplaceCommand.from_hash(hash, {"hello" => "world"})
81
- assert_equal("hello worlds", command.replaced_text)
82
-
80
+ command = ReplaceCommand.from_hash(hash, { 'hello' => 'world' })
81
+ assert_equal('hello worlds', command.replaced_text)
83
82
  ensure
84
83
  f.unlink
85
84
  end
86
85
 
87
86
  def test_parse
87
+ source = <<~SCR
88
+ this {
89
+ is a test
90
+ }
91
+ SCR
88
92
 
89
- source = <<SCR
90
- this {
91
- is a test
92
- }
93
- SCR
94
-
95
- f = Tempfile.new("test")
93
+ f = Tempfile.new('test')
96
94
  f.write source
97
95
  f.close
98
96
 
99
97
  hash = {
100
- "filename" => f.path,
101
- "from" => "/this[^\}]+\}/m",
102
- "to" => "hello world"
98
+ 'filename' => f.path,
99
+ 'from' => "/this[^\}]+\}/m",
100
+ 'to' => 'hello world'
103
101
  }
104
102
 
105
103
  command = ReplaceCommand.from_hash(hash, {})
106
104
 
107
- assert_equal("hello world", command.replaced_text.strip)
105
+ assert_equal('hello world', command.replaced_text.strip)
108
106
  ensure
109
107
  f.unlink
110
108
  end
data/test/test_helper.rb CHANGED
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'pups'
4
+ require 'pups/cli'
5
+ require 'minitest/autorun'
2
6
  require 'minitest/pride'
3
-
4
-
metadata CHANGED
@@ -1,31 +1,45 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pups
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Saffron
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-09 00:00:00.000000000 Z
11
+ date: 2021-06-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.3'
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
- version: '1.3'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: guard
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: guard-minitest
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - ">="
@@ -53,7 +67,7 @@ dependencies:
53
67
  - !ruby/object:Gem::Version
54
68
  version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
- name: guard
70
+ name: rake
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - ">="
@@ -67,7 +81,49 @@ dependencies:
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
- name: guard-minitest
84
+ name: rubocop
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop-discourse
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rubocop-minitest
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rubocop-rake
71
127
  requirement: !ruby/object:Gem::Requirement
72
128
  requirements:
73
129
  - - ">="
@@ -80,7 +136,7 @@ dependencies:
80
136
  - - ">="
81
137
  - !ruby/object:Gem::Version
82
138
  version: '0'
83
- description: Process orchestrator
139
+ description: Simple docker image creator
84
140
  email:
85
141
  - sam.saffron@gmail.com
86
142
  executables:
@@ -88,7 +144,11 @@ executables:
88
144
  extensions: []
89
145
  extra_rdoc_files: []
90
146
  files:
147
+ - ".github/workflows/ci.yml"
148
+ - ".github/workflows/lint.yml"
91
149
  - ".gitignore"
150
+ - ".rubocop.yml"
151
+ - CHANGELOG
92
152
  - Gemfile
93
153
  - Guardfile
94
154
  - LICENSE.txt
@@ -99,6 +159,7 @@ files:
99
159
  - lib/pups/cli.rb
100
160
  - lib/pups/command.rb
101
161
  - lib/pups/config.rb
162
+ - lib/pups/docker.rb
102
163
  - lib/pups/exec_command.rb
103
164
  - lib/pups/file_command.rb
104
165
  - lib/pups/merge_command.rb
@@ -106,7 +167,9 @@ files:
106
167
  - lib/pups/runit.rb
107
168
  - lib/pups/version.rb
108
169
  - pups.gemspec
170
+ - test/cli_test.rb
109
171
  - test/config_test.rb
172
+ - test/docker_test.rb
110
173
  - test/exec_command_test.rb
111
174
  - test/file_command_test.rb
112
175
  - test/merge_command_test.rb
@@ -116,7 +179,7 @@ homepage: ''
116
179
  licenses:
117
180
  - MIT
118
181
  metadata: {}
119
- post_install_message:
182
+ post_install_message:
120
183
  rdoc_options: []
121
184
  require_paths:
122
185
  - lib
@@ -131,13 +194,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
194
  - !ruby/object:Gem::Version
132
195
  version: '0'
133
196
  requirements: []
134
- rubyforge_project:
135
- rubygems_version: 2.2.2
136
- signing_key:
197
+ rubygems_version: 3.1.4
198
+ signing_key:
137
199
  specification_version: 4
138
- summary: Process orchestrator
200
+ summary: Toolkit for orchestrating a composed docker image
139
201
  test_files:
202
+ - test/cli_test.rb
140
203
  - test/config_test.rb
204
+ - test/docker_test.rb
141
205
  - test/exec_command_test.rb
142
206
  - test/file_command_test.rb
143
207
  - test/merge_command_test.rb