minad-imaginator 0.1.3 → 0.1.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.
Files changed (2) hide show
  1. data/lib/imaginator.rb +14 -21
  2. metadata +1 -1
data/lib/imaginator.rb CHANGED
@@ -5,7 +5,7 @@ require 'monitor'
5
5
  require 'drb'
6
6
 
7
7
  class Imaginator
8
- VERSION = '0.1.3'
8
+ VERSION = '0.1.4'
9
9
 
10
10
  class LaTeX
11
11
  def initialize(opts = {})
@@ -134,29 +134,21 @@ END
134
134
 
135
135
  def get
136
136
  raise(ArgumentError, "No URI given") if !@uri
137
- @server || (@client ||= DRb::DRbObject.new(nil, @uri))
137
+ @client ||= DRb::DRbObject.new(nil, @uri)
138
138
  end
139
139
 
140
140
  def run
141
- if !running?
142
- raise(ArgumentError, "No target directory given") if !@dir
143
- if @uri =~ %r{^drbunix://(.+)$}
144
- File.unlink($1) rescue nil
145
- end
146
- @server = Imaginator.new(@dir)
147
- yield(@server) if block_given?
148
- DRb.start_service(@uri, @server)
149
- Thread.new do
150
- loop { @server.process }
141
+ raise(ArgumentError, "No target directory given") if !@dir
142
+ pid = Process.fork do
143
+ begin
144
+ server = Imaginator.new(@dir)
145
+ DRb.start_service(@uri, server)
146
+ yield(server) if block_given?
147
+ loop { server.process }
148
+ rescue Errno::EADDRINUSE
151
149
  end
152
150
  end
153
- end
154
-
155
- def running?
156
- raise(ArgumentError, "No URI given") if !@uri
157
- @server || DRb::DRbObject.new(nil, @uri).respond_to?(:enqueue)
158
- rescue
159
- false
151
+ Process.detach(pid)
160
152
  end
161
153
  end
162
154
 
@@ -193,8 +185,9 @@ END
193
185
  def result(name)
194
186
  file = File.join(@dir, name)
195
187
  if !File.exists?(file)
196
- while enqueued?(name) do
197
- sleep 0.1
188
+ 20.times do
189
+ break if !enqueued?(name)
190
+ sleep 0.5
198
191
  end
199
192
  end
200
193
  raise(RuntimeError, 'Image could not be generated') if !File.exists?(file)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minad-imaginator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Mendler