dockerb 0.2.5 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/dockerb/version.rb +1 -1
- data/lib/dockerb.rb +25 -9
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d80b455d4cf60c63db0ae6657945667d3a850e45
|
4
|
+
data.tar.gz: 5e117e36b1db3cf80f6f4175ccb8290442ba4f43
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 31e5f388d6fdd409e8556b21b6312ac496ec5b024cd4d905894a4ec53e21bef4d1b3a20b109af1e67a5021592135b7bdebb96dae02fa0c81a8d19f40d68b02e5
|
7
|
+
data.tar.gz: 0277724fc4e8228260edc7a0e41b61a215daf65856db1d9d7e269eb2797f32b4b7c1f0a3a50074fafb228f1936b7643e90ae1a662d1e44e41e31806e22e51c88
|
data/lib/dockerb/version.rb
CHANGED
data/lib/dockerb.rb
CHANGED
@@ -1,22 +1,38 @@
|
|
1
1
|
require 'erb'
|
2
|
+
require 'dockerb/version'
|
2
3
|
|
3
4
|
module Dockerb
|
5
|
+
GENERATED = "# Generated by dockerb VERSION, do not modify"
|
6
|
+
SEARCH = /#{Regexp.escape(GENERATED).sub('VERSION', '([\d\.]+)')}/
|
7
|
+
|
4
8
|
class << self
|
5
|
-
def compile
|
6
|
-
return (yield if
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
def compile(&block)
|
10
|
+
return (yield if block) unless File.exist?("Dockerfile.erb")
|
11
|
+
ensure_not_older_than_last
|
12
|
+
compile_dockerfile(&block)
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def ensure_not_older_than_last
|
18
|
+
return unless File.exist?("Dockerfile")
|
19
|
+
return unless old = File.read("Dockerfile")[SEARCH, 1]
|
20
|
+
return unless Gem::Version.new(old) > Gem::Version.new(VERSION)
|
21
|
+
raise "Previous file was generated by dockerb #{old}, use it or a newer version."
|
22
|
+
end
|
23
|
+
|
24
|
+
def compile_dockerfile(&block)
|
25
|
+
File.write("Dockerfile", Context.compile(File.read("Dockerfile.erb")))
|
26
|
+
yield if block
|
27
|
+
ensure
|
28
|
+
File.unlink("Dockerfile") if File.exist?("Dockerfile") && block
|
13
29
|
end
|
14
30
|
end
|
15
31
|
|
16
32
|
class Context
|
17
33
|
class << self
|
18
34
|
def compile(code)
|
19
|
-
warn = "#
|
35
|
+
warn = "#{GENERATED.sub('VERSION', Dockerb::VERSION)}\n"
|
20
36
|
warn + ERB.new(code).result(binding).strip + "\n" + warn
|
21
37
|
end
|
22
38
|
|