kurchatov 0.0.6.pre.3 → 0.0.6.pre.4

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: d3567df8dc93294bfc5cb0980d6ba82ebcf22f52
4
- data.tar.gz: 9fcd2f6f8c17dbefea266452f832f9d368db34ad
3
+ metadata.gz: c2c33704a13c283abff889703ea874cdbf649063
4
+ data.tar.gz: d072ed418b07f26a742aba939ffc78f38f9630cf
5
5
  SHA512:
6
- metadata.gz: ea845863682c7b511035e7dbabfebae21f5d8d9e9c4a2e11b1081790a2afef3f09231d1787099b192e6e2258c6149bd79148974e95611e78aae7581d3620974f
7
- data.tar.gz: 6ad670d192fddfecb12d62fd5ed5a6b90547e438a3158d7f52c288fd2f233387af1fa3756350a2465e896af805df98cb1acd82fbef16f6bd094a22a0ef37197e
6
+ metadata.gz: 0a94cec105593e4e8422f02aaaef444c0d9cf1adc40fe65b599b3f6a6f52dcbe68242f50026bcbccedbde3915ee8ef1830e1244b56e364e1056c4a97f0f80f37
7
+ data.tar.gz: 63b221f779d9184ce083e80b457cb30e260ba2003014899b2c50a634c562d4dd8dbaf05df9e7a8bce1acf84c927bf01acb51525568deb113f3109a28111a6f08
data/.travis.yml CHANGED
@@ -1,3 +1,5 @@
1
+ os: [linux, osx]
2
+
1
3
  language:
2
4
  - 'ruby'
3
5
  rvm:
data/CHANGELOG CHANGED
@@ -1,3 +1,4 @@
1
1
  * Version 0.0.5: Windows support
2
2
  * Version 0.0.6.pre.1: Add ignore errors
3
3
  * Version 0.0.6.pre.2: :metric => boolean return integer
4
+ * Version 0.0.6.pre.4: Required block for plugin
@@ -50,6 +50,11 @@ module Kurchatov
50
50
  last.run_if = block
51
51
  end
52
52
 
53
+ def required(opts ={}, &block)
54
+ return unless last.respond_to_ohai?(opts)
55
+ last.required = block
56
+ end
57
+
53
58
  def last_plugin
54
59
  last.plugin
55
60
  end
@@ -63,7 +68,7 @@ module Kurchatov
63
68
  dsl = Kurchatov::Plugins::DSL.new
64
69
  paths.map do |path|
65
70
  Log.error("Directory #{path} not exists") and exit Kurchatov::Config[:ERROR_CONFIG] unless
66
- File.directory?(path)
71
+ File.directory?(path)
67
72
  Dir[File.join(path, "*#{PLUGIN_EXT}")].sort
68
73
  end.flatten.each do |path|
69
74
  begin
@@ -12,11 +12,12 @@ module Kurchatov
12
12
  include Kurchatov::Mixin::Command
13
13
  include Kurchatov::Mixin::Http
14
14
 
15
- attr_accessor :run_if, :collect, :always_start, :ignore_errors, :interval, :plugin
15
+ attr_accessor :run_if, :collect, :always_start, :required, :ignore_errors, :interval, :plugin
16
16
 
17
17
  def initialize(name = '')
18
18
  super(name)
19
19
  @run_if = Proc.new { true }
20
+ @required = Proc.new { true }
20
21
  @plugin = Mashie.new
21
22
  @always_start = false
22
23
  @ignore_errors = false
@@ -39,12 +40,22 @@ module Kurchatov
39
40
  true
40
41
  end
41
42
 
43
+ def runnable_by_required?
44
+ begin
45
+ self.instance_eval(&required)
46
+ rescue LoadError
47
+ return
48
+ end
49
+ true
50
+ end
51
+
42
52
  def runnable_by_config?
43
53
  Log.info("Plugin '#{self.name}' disabled by nil collect") and return if collect.nil?
44
54
  Log.info("Plugin '#{self.name}' disabled in config") and return if (plugin[:disable] == true)
45
55
  Log.info("Plugin '#{self.name}' not started by run_if condition ") and
46
56
  return unless self.instance_eval(&run_if)
47
- @plugin[:service] = name if @plugin[:service].nil?
57
+ Log.error("Plugin '#{self.name}' not started by required block") and return unless runnable_by_required?
58
+ @plugin[:service] ||= name
48
59
  true
49
60
  end
50
61
 
@@ -1,3 +1,3 @@
1
1
  module Kurchatov
2
- VERSION = "0.0.6.pre.3"
2
+ VERSION = "0.0.6.pre.4"
3
3
  end
@@ -0,0 +1,9 @@
1
+ always_start true
2
+
3
+ required do
4
+ require "error_me"
5
+ end
6
+
7
+ collect do
8
+ sleep 1
9
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kurchatov
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6.pre.3
4
+ version: 0.0.6.pre.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vasiliev Dmitry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-30 00:00:00.000000000 Z
11
+ date: 2014-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: beefcake
@@ -202,6 +202,7 @@ files:
202
202
  - lib/ohai/plugins/windows/platform.rb
203
203
  - tests/data/config.yml
204
204
  - tests/data/event.yml
205
+ - tests/data/required.rb
205
206
  - tests/data/sample.rb
206
207
  - tests/run.sh
207
208
  - tests/server.rb