itamae 1.1.7 → 1.1.8

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: 46e8d6ca2f0b4e05123719182e0244d54455a866
4
- data.tar.gz: e35404ee8a2abcdfcd55849c69a9166fdde7ef64
3
+ metadata.gz: d44fdcac91acf929fbf94754542e1521a8528b67
4
+ data.tar.gz: 17770615b03da709e699397bddffe2556f01a9c3
5
5
  SHA512:
6
- metadata.gz: 25fce8fab5558c1fd3240610ff2c52aea30f6427343051e3b5d50950e0814bbe738ad7788159bae53a20385cceb3d6d5108216af6e6c11bbdd55c35ac8195aea
7
- data.tar.gz: 93cf42c6d44dfb803de6cb82967e57b9cadc4799233f24dabf3b1da863ec2897e8581dd3ed6774dbaf6857c627653edb7bb4cff45d57e518ce1a6dbb29666ecb
6
+ metadata.gz: 20e405c5105a2b00d04e20669c4304a73ad21ea6490876dcc4321eb8ef5f837f0f488cb2b2aaef8b36cf5d13b2551920d5b0da88750299cec071ded07a18e4a6
7
+ data.tar.gz: 0e0761e611fda6e8fef0ddbbfa23b1f3a13bb9a2a02d0cf13e91b0f372545dbc812ac6af7b8e0484723946ef54cae57678d871a34883aa7c58b4c167643e925a
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Itamae [![Gem Version](https://badge.fury.io/rb/itamae.svg)](http://badge.fury.io/rb/itamae) [![Code Climate](https://codeclimate.com/github/ryotarai/itamae/badges/gpa.svg)](https://codeclimate.com/github/ryotarai/itamae) [![wercker status](https://app.wercker.com/status/d44df82d2f4529ff664f32fa54ce12f5/s/master "wercker status")](https://app.wercker.com/project/bykey/d44df82d2f4529ff664f32fa54ce12f5) [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/ryotarai/itamae?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
1
+ # Itamae [![Gem Version](https://badge.fury.io/rb/itamae.svg)](http://badge.fury.io/rb/itamae) [![Code Climate](https://codeclimate.com/github/ryotarai/itamae/badges/gpa.svg)](https://codeclimate.com/github/ryotarai/itamae) [![wercker status](https://app.wercker.com/status/3e7be3b982d3671940a07e3ef45d9f5f/s "wercker status")](https://app.wercker.com/project/bykey/3e7be3b982d3671940a07e3ef45d9f5f) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/itamae-kitchen/itamae?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
2
2
 
3
3
  Simple and lightweight configuration management tool inspired by Chef.
4
4
 
data/Rakefile CHANGED
@@ -46,6 +46,7 @@ namespace :spec do
46
46
  cmd << " -j spec/integration/recipes/node.json"
47
47
  cmd << " spec/integration/recipes/default.rb"
48
48
  cmd << " spec/integration/recipes/default2.rb"
49
+ cmd << " spec/integration/recipes/redefine.rb"
49
50
 
50
51
  puts cmd
51
52
  system cmd
@@ -7,6 +7,7 @@ module Itamae
7
7
  class Formatter
8
8
  attr_accessor :colored
9
9
  attr_accessor :depth
10
+ attr_accessor :color
10
11
 
11
12
  INDENT_LENGTH = 3
12
13
 
@@ -19,7 +20,7 @@ module Itamae
19
20
  def call(severity, datetime, progname, msg)
20
21
  log = "%s : %s%s\n" % ["%5s" % severity, ' ' * INDENT_LENGTH * depth , msg2str(msg)]
21
22
  if colored
22
- color(log, severity)
23
+ colorize(log, severity)
23
24
  else
24
25
  log
25
26
  end
@@ -32,6 +33,14 @@ module Itamae
32
33
  @depth -= 1
33
34
  end
34
35
 
36
+ def color(code)
37
+ @prev_color = @color
38
+ @color = code
39
+ yield
40
+ ensure
41
+ @color = @prev_color
42
+ end
43
+
35
44
  private
36
45
  def msg2str(msg)
37
46
  case msg
@@ -45,17 +54,21 @@ module Itamae
45
54
  end
46
55
  end
47
56
 
48
- def color(str, severity)
49
- color_code = case severity
50
- when "INFO"
51
- :green
52
- when "WARN"
53
- :magenta
54
- when "ERROR"
55
- :red
56
- else
57
- :clear
58
- end
57
+ def colorize(str, severity)
58
+ if @color
59
+ color_code = @color
60
+ else
61
+ color_code = case severity
62
+ when "INFO"
63
+ :clear
64
+ when "WARN"
65
+ :magenta
66
+ when "ERROR"
67
+ :red
68
+ else
69
+ :clear
70
+ end
71
+ end
59
72
  ANSI.public_send(color_code) { str }
60
73
  end
61
74
  end
@@ -73,7 +86,7 @@ module Itamae
73
86
  @log_device = value
74
87
  @logger = create_logger
75
88
  end
76
-
89
+
77
90
  private
78
91
 
79
92
  def create_logger
@@ -80,6 +80,12 @@ module Itamae
80
80
  end
81
81
 
82
82
  def define(name, params = {}, &block)
83
+ class_name = Resource.get_resource_class_name(name)
84
+ if Resource.const_defined?(class_name)
85
+ Logger.warn "Redefine class. (#{class_name})"
86
+ return
87
+ end
88
+
83
89
  Resource.const_set(
84
90
  Resource.get_resource_class_name(name),
85
91
  Definition.create_class(name, params, &block)
@@ -205,11 +205,15 @@ module Itamae
205
205
  if current_value.nil? && value.nil?
206
206
  # ignore
207
207
  elsif current_value.nil? && !value.nil?
208
- Logger.info "#{key} will be '#{value}'"
208
+ Logger.formatter.color :green do
209
+ Logger.info "#{key} will be '#{value}'"
210
+ end
209
211
  elsif current_value == value || value.nil?
210
212
  Logger.debug "#{key} will not change (current value is '#{current_value}')"
211
213
  else
212
- Logger.info "#{key} will change from '#{current_value}' to '#{value}'"
214
+ Logger.formatter.color :green do
215
+ Logger.info "#{key} will change from '#{current_value}' to '#{value}'"
216
+ end
213
217
  end
214
218
  end
215
219
  end
@@ -310,9 +314,7 @@ module Itamae
310
314
  end
311
315
 
312
316
  def updated!
313
- unless @updated
314
- Logger.debug "This resource is updated."
315
- end
317
+ Logger.debug "This resource is updated."
316
318
  @updated = true
317
319
  end
318
320
 
@@ -1 +1 @@
1
- 1.1.7
1
+ 1.1.8
@@ -108,3 +108,7 @@ describe file('/tmp/never_exist4') do
108
108
  it { should_not be_file }
109
109
  end
110
110
 
111
+ describe file('/tmp/created_in_redefine') do
112
+ it { should be_file }
113
+ its(:content) { should match(/first/) }
114
+ end
@@ -0,0 +1,20 @@
1
+ # spec/integration/recipes/redefine.rb
2
+ define :echo_hello, version: nil do
3
+ file "put file in redefine.rb" do
4
+ action :create
5
+ path "/tmp/created_in_redefine"
6
+ content 'first'
7
+ end
8
+ end
9
+
10
+ # Duplicated definitions
11
+ define :echo_hello, version: nil do
12
+ file "put file in redefine.rb" do
13
+ action :create
14
+ path "/tmp/created_in_redefine"
15
+ content 'second'
16
+ end
17
+ end
18
+
19
+ # Execute
20
+ echo_hello "execute echo_hello!"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: itamae
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.7
4
+ version: 1.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryota Arai
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-12 00:00:00.000000000 Z
11
+ date: 2015-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -190,6 +190,7 @@ files:
190
190
  - spec/integration/recipes/hello.txt
191
191
  - spec/integration/recipes/included.rb
192
192
  - spec/integration/recipes/node.json
193
+ - spec/integration/recipes/redefine.rb
193
194
  - spec/integration/spec_helper.rb
194
195
  - spec/unit/lib/itamae/config_spec.rb
195
196
  - spec/unit/lib/itamae/logger_spec.rb
@@ -233,6 +234,7 @@ test_files:
233
234
  - spec/integration/recipes/hello.txt
234
235
  - spec/integration/recipes/included.rb
235
236
  - spec/integration/recipes/node.json
237
+ - spec/integration/recipes/redefine.rb
236
238
  - spec/integration/spec_helper.rb
237
239
  - spec/unit/lib/itamae/config_spec.rb
238
240
  - spec/unit/lib/itamae/logger_spec.rb