Class: SimpleQueue
- Inherits:
-
Object
- Object
- SimpleQueue
- Defined in:
- lib/simple_queue.rb
Instance Attribute Summary collapse
-
#uri ⇒ Object
readonly
Returns the value of attribute uri.
Class Method Summary collapse
Instance Method Summary collapse
Instance Attribute Details
#uri ⇒ Object
Returns the value of attribute uri.
9 10 11 |
# File 'lib/simple_queue.rb', line 9 def uri @uri end |
Class Method Details
.create ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/simple_queue.rb', line 44 def self.create file = Tempfile.new('simple_queue') path = File.(file.path) file.close! File.open(path, 'w+') do |f| f.puts [].to_json end return new(path) end |
.get(uri) ⇒ Object
56 57 58 59 |
# File 'lib/simple_queue.rb', line 56 def self.get(uri) raise ArgumentError.new("Queue file must exist: #{uri}") unless File.exists?(uri) return new(uri) end |
Instance Method Details
#close ⇒ Object
11 12 13 |
# File 'lib/simple_queue.rb', line 11 def close File.delete(uri) end |
#pop ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/simple_queue.rb', line 24 def pop result = nil queue_empty = true while queue_empty queue_empty, result = pop_nowait() sleep(0.1) if queue_empty end return result end |
#push(value) ⇒ Object
15 16 17 18 19 20 21 22 |
# File 'lib/simple_queue.rb', line 15 def push(value) with_queue_file do |file| contents = file.read queue = JSON.parse(contents) queue.push(value) store_queue(file, queue) end end |
#size ⇒ Object
36 37 38 39 40 41 42 |
# File 'lib/simple_queue.rb', line 36 def size contents = '' with_queue_file do |file| contents = file.read end return JSON.parse(contents).size end |