thread_watcher 0.7.1 → 0.8.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: c9b0bc53f876da8367422fb55bd662be466325aa
4
- data.tar.gz: d807ec01f1c8f992a17fa92e4ba531ac86d18ba9
3
+ metadata.gz: 8a152351cdaecbd2d8db6e0035114db2ff37c5da
4
+ data.tar.gz: 762752fbcd844ca408434bfcbf00c3cf9469d9bd
5
5
  SHA512:
6
- metadata.gz: 8a5f146bf2f34289e4974d8b79181a3055ded44f0af771985c0a517b3a78a0bb8013cf457a0caa0984117d0e4284b28ab2ede31ec3ab53d6bfd993c0ea502aea
7
- data.tar.gz: a4b721d97eb8eb5bb24890374e5a57c2432e6a8995b550ea5d41547c72a29d474a2bc3c57cc52b59035289de75002de4116a407a4d88a31cf5e9c06d14e8707e
6
+ metadata.gz: 4a42ce1a54d92f7c346a53877e4d01b8f8234bf4c5b078a2a220d199930b3ac79b571090cfe76d2b388c3abc83f9d2edb443fb857a09daee83af51f7f5ac596d
7
+ data.tar.gz: 40241f40ddcb63b7da1a66c57a6418f64ecdbabf17092ecdcec196401acece2aa2fb4bf39423c939e90c9187d7285ac75e55db7adf491de27edac4df2a6f7fc2
data/README.md CHANGED
@@ -10,7 +10,7 @@ Build for ruby 1.8.7 and newer.
10
10
  hm, yeah. just add this to your Gemfile:
11
11
 
12
12
  ```ruby
13
- gem 'thread_watcher', '~> 0.7.0'
13
+ gem 'thread_watcher', '~> 0.8.0'
14
14
  ```
15
15
 
16
16
  And then execute:
@@ -1,54 +1,16 @@
1
- require "thread_watcher/thread_formatter"
2
-
3
1
  module ThreadWatcher
4
2
  class ProcessWatch
5
3
  attr_accessor :threads
6
- class ThreadHolder
7
- attr_accessor :thread, :id, :options, :block
8
- def initialize thread, options
9
- @thread = thread
10
- @id = time_to_i
11
- @options = available_options.merge options
12
- end
13
-
14
- def stop!
15
- @thread.kill
16
- end
17
-
18
- def restart!
19
- @thread = Thread.new { block.call }
20
- end
21
-
22
- def alive?
23
- @thread.alive?
24
- end
25
-
26
- def runtime
27
- time_to_i - @id
28
- end
29
-
30
- def time_to_i
31
- Time.now.to_i
32
- end
33
-
34
- private
35
-
36
- def available_options
37
- { :name => nil, :keep_alive => false }
38
- end
39
- end
40
4
 
41
5
  def initialize
42
6
  @threads = {}
43
- @blocks = {}
44
- run(:name => 'Cleaning Jobs', :keep_alive => true) { while true; self.clear!; sleep(60); end; }
7
+ start_cleaning_job
45
8
  end
46
9
 
47
10
  def run options = {}, &block
48
- thread_holder = ThreadHolder.new(Thread.new { block.call }, options)
49
- thread_holder
11
+ thread_holder = ThreadHolder.new(block, options)
12
+ thread_holder.start!
50
13
  @threads[thread_holder.id] = thread_holder
51
- thread_holder.block = block
52
14
  thread_holder.id
53
15
  end
54
16
 
@@ -86,6 +48,12 @@ module ThreadWatcher
86
48
  end
87
49
  ''
88
50
  end
51
+
52
+ private
53
+
54
+ def start_cleaning_job
55
+ run(:name => 'Cleaning Jobs', :keep_alive => true) { while true; self.clear!; sleep(60); end; }
56
+ end
89
57
 
90
58
  end
91
59
  end
@@ -0,0 +1,50 @@
1
+ module ThreadWatcher
2
+ class ThreadHolder
3
+ attr_accessor :thread, :id, :options, :block, :start_time
4
+ def initialize block, options
5
+ @block = block
6
+ set_id
7
+ @options = available_options.merge options
8
+ end
9
+
10
+ def start!
11
+ initialize_starttime
12
+ @thread = Thread.new{ block.call }
13
+ end
14
+
15
+ def stop!
16
+ @thread.kill
17
+ end
18
+
19
+ def restart!
20
+ stop!
21
+ start!
22
+ end
23
+
24
+ def alive?
25
+ @thread.alive?
26
+ end
27
+
28
+ def runtime
29
+ time_to_i - start_time
30
+ end
31
+
32
+ def time_to_i
33
+ Time.now.to_i
34
+ end
35
+
36
+ private
37
+
38
+ def available_options
39
+ { :name => nil, :keep_alive => false }
40
+ end
41
+
42
+ def initialize_starttime
43
+ @start_time = time_to_i
44
+ end
45
+
46
+ def set_id
47
+ @id = start_time || time_to_i
48
+ end
49
+ end
50
+ end
@@ -1,3 +1,3 @@
1
1
  module ThreadWatcher
2
- VERSION = "0.7.1"
2
+ VERSION = "0.8.0"
3
3
  end
@@ -1,4 +1,6 @@
1
1
  require "thread_watcher/version"
2
+ require "thread_watcher/thread_formatter"
3
+ require "thread_watcher/thread_holder"
2
4
  require "thread_watcher/process_watch"
3
5
 
4
6
  module ThreadWatcher
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thread_watcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Starke
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-01-29 00:00:00.000000000 Z
11
+ date: 2016-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -60,6 +60,7 @@ files:
60
60
  - lib/thread_watcher.rb
61
61
  - lib/thread_watcher/process_watch.rb
62
62
  - lib/thread_watcher/thread_formatter.rb
63
+ - lib/thread_watcher/thread_holder.rb
63
64
  - lib/thread_watcher/version.rb
64
65
  - thread_watcher.gemspec
65
66
  homepage: https://github.com/robst/thread_watcher