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

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