dockerb 0.2.5 → 0.3.0

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.
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