pups 1.0.0 → 1.1.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.
@@ -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