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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 98e740f722b398769f026a7b1d8d72628906bb7d
4
- data.tar.gz: 184dbafd9fa38d41d0d60fa88878cc32c6c9e4ee
3
+ metadata.gz: d80b455d4cf60c63db0ae6657945667d3a850e45
4
+ data.tar.gz: 5e117e36b1db3cf80f6f4175ccb8290442ba4f43
5
5
  SHA512:
6
- metadata.gz: 2cdc3152ff655e0d907f646aa74d9cdf88f79af77b3725cab48483d0b1205235c60b95a511a54d767dab40a83d73049880cf8634ecc48540a90d0551410a2af7
7
- data.tar.gz: 2902d3907b435f2a940bae3ea68ef295103417cae4950903f8acbd82f2f267289c32b7ec938151352d19401f727cdb923ee94264be69dd102b225ab4f8c4abc4
6
+ metadata.gz: 31e5f388d6fdd409e8556b21b6312ac496ec5b024cd4d905894a4ec53e21bef4d1b3a20b109af1e67a5021592135b7bdebb96dae02fa0c81a8d19f40d68b02e5
7
+ data.tar.gz: 0277724fc4e8228260edc7a0e41b61a215daf65856db1d9d7e269eb2797f32b4b7c1f0a3a50074fafb228f1936b7643e90ae1a662d1e44e41e31806e22e51c88
@@ -1,3 +1,3 @@
1
1
  module Dockerb
2
- VERSION = "0.2.5"
2
+ VERSION = "0.3.0"
3
3
  end
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 block_given?) unless File.exist?("Dockerfile.erb")
7
- begin
8
- File.write("Dockerfile", Context.compile(File.read("Dockerfile.erb")))
9
- yield if block_given?
10
- ensure
11
- File.unlink("Dockerfile") if File.exist?("Dockerfile") && block_given?
12
- end
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 = "# Generated by dockerb, do not modify\n"
35
+ warn = "#{GENERATED.sub('VERSION', Dockerb::VERSION)}\n"
20
36
  warn + ERB.new(code).result(binding).strip + "\n" + warn
21
37
  end
22
38
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dockerb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser