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.
7 8 9 |
# File 'lib/simple_queue.rb', line 7 def uri @uri end |
Class Method Details
.create ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/simple_queue.rb', line 42 def self.create file = Tempfile.new('simple_queue') file.puts [].to_json uri = file.path file.close return new(uri) end |
.get(uri) ⇒ Object
50 51 52 53 |
# File 'lib/simple_queue.rb', line 50 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
9 10 11 |
# File 'lib/simple_queue.rb', line 9 def close File.delete(uri) end |
#pop ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/simple_queue.rb', line 22 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
13 14 15 16 17 18 19 20 |
# File 'lib/simple_queue.rb', line 13 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
34 35 36 37 38 39 40 |
# File 'lib/simple_queue.rb', line 34 def size contents = '' with_queue_file do |file| contents = file.read end return JSON.parse(contents).size end |