ironmq 1.2.6 → 1.2.7

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.
@@ -47,3 +47,10 @@ One of the following:
47
47
  1. `@client.queue_name = 'my_queue'`
48
48
  1. Pass `:queue_name=>'my_queue'` into any post(), get(), or delete()
49
49
 
50
+ Queue Information
51
+ =================
52
+
53
+ queue = @client.queues.get(:name=>@client.queue_name)
54
+ puts "size: #{queue.size}"
55
+
56
+
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :major: 1
3
3
  :minor: 2
4
- :patch: 6
4
+ :patch: 7
5
5
  :build:
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{ironmq}
8
- s.version = "1.2.6"
7
+ s.name = "ironmq"
8
+ s.version = "1.2.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = [%q{Travis Reeder}]
12
- s.date = %q{2011-11-10}
13
- s.description = %q{Ruby client for IronMQ}
14
- s.email = %q{travis@iron.io}
11
+ s.authors = ["Travis Reeder"]
12
+ s.date = "2011-12-08"
13
+ s.description = "Ruby client for IronMQ"
14
+ s.email = "travis@iron.io"
15
15
  s.extra_rdoc_files = [
16
16
  "README.markdown"
17
17
  ]
@@ -23,14 +23,17 @@ Gem::Specification.new do |s|
23
23
  "lib/ironmq.rb",
24
24
  "lib/ironmq/client.rb",
25
25
  "lib/ironmq/messages.rb",
26
- "test/ironmq_tests.rb",
27
- "test/long_run.rb"
26
+ "lib/ironmq/queues.rb",
27
+ "test/long_run.rb",
28
+ "test/quick_run.rb",
29
+ "test/test_base.rb",
30
+ "test/test_ironmq.rb"
28
31
  ]
29
- s.homepage = %q{http://www.iron.io}
30
- s.require_paths = [%q{lib}]
32
+ s.homepage = "http://www.iron.io"
33
+ s.require_paths = ["lib"]
31
34
  s.required_ruby_version = Gem::Requirement.new(">= 1.9")
32
- s.rubygems_version = %q{1.8.8}
33
- s.summary = %q{Ruby client for IronMQ}
35
+ s.rubygems_version = "1.8.11"
36
+ s.summary = "Ruby client for IronMQ"
34
37
 
35
38
  if s.respond_to? :specification_version then
36
39
  s.specification_version = 3
@@ -1,2 +1,3 @@
1
+ require_relative 'ironmq/queues'
1
2
  require_relative 'ironmq/messages'
2
3
  require_relative 'ironmq/client'
@@ -27,6 +27,10 @@ module IronMQ
27
27
  return Messages.new(self)
28
28
  end
29
29
 
30
+ def queues
31
+ return Queues.new(self)
32
+ end
33
+
30
34
  def base_url
31
35
  #"#{scheme}://#{host}:#{port}/1"
32
36
  @base_url
@@ -65,6 +69,7 @@ module IronMQ
65
69
  @logger.debug 'url=' + url
66
70
  req_hash = common_req_hash
67
71
  req_hash[:params] = params
72
+ @logger.debug 'req_hash=' + req_hash.inspect
68
73
  response = Typhoeus::Request.get(url, req_hash)
69
74
  res = check_response(response)
70
75
  return res, response.code
@@ -0,0 +1,72 @@
1
+ module IronMQ
2
+ class Queues
3
+
4
+ attr_accessor :client
5
+
6
+ def initialize(client)
7
+ @client = client
8
+ end
9
+
10
+ def path(options={})
11
+ path = "/projects/#{@client.project_id}/queues"
12
+ end
13
+
14
+ def list(options={})
15
+ ret = []
16
+ res, status = @client.get("#{path(options)}", options)
17
+ res.each do |q|
18
+ #p q
19
+ q = Queue.new(self, q)
20
+ ret << q
21
+ end
22
+ ret
23
+ end
24
+
25
+ # options:
26
+ # :name => can specify an alternative queue name
27
+ def get(options={})
28
+ res, status = @client.get("#{path(options)}/#{options[:name]}")
29
+ return Queue.new(self, res)
30
+ end
31
+
32
+
33
+ end
34
+
35
+ class Queue
36
+
37
+ def initialize(queues, res)
38
+ @queues = queues
39
+ @data = res
40
+ end
41
+
42
+ def raw
43
+ @data
44
+ end
45
+
46
+ def [](key)
47
+ raw[key]
48
+ end
49
+
50
+ def id
51
+ raw["id"]
52
+ end
53
+
54
+ def name
55
+ raw["name"]
56
+ end
57
+
58
+ def size
59
+ return raw["size"] if raw["size"]
60
+ return @size if @size
61
+ q = @queues.get(:name=>name)
62
+ @size = q.size
63
+ return @size
64
+ end
65
+
66
+ # def delete
67
+ # @messages.delete(self.id)
68
+ # end
69
+ end
70
+
71
+ end
72
+
@@ -1,7 +1,7 @@
1
1
  require 'yaml'
2
2
  require 'concur'
3
3
  begin
4
- require File.join(File.dirname(__FILE__), '../lib/ironmq')
4
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'ironmq')
5
5
  rescue Exception => ex
6
6
  puts "Could NOT load current ironmq: " + ex.message
7
7
  raise ex
@@ -0,0 +1,28 @@
1
+ # Put config.yml file in ~/Dropbox/configs/ironmq_gem/test/config.yml
2
+ require_relative 'test_base'
3
+
4
+ class QuickRun < TestBase
5
+
6
+ def setup
7
+ super
8
+ @client.queue_name = 'ironmq-gem-quick'
9
+ end
10
+
11
+ def test_basics
12
+ res = @client.messages.post("hello world!")
13
+ p res
14
+
15
+ res = @client.messages.get()
16
+ p res
17
+
18
+ res = @client.messages.delete(res["id"])
19
+ p res
20
+
21
+ res = @client.messages.get()
22
+ p res
23
+
24
+ end
25
+
26
+
27
+ end
28
+
@@ -0,0 +1,21 @@
1
+ gem 'test-unit'
2
+ require 'test/unit'
3
+ require 'yaml'
4
+ begin
5
+ require File.join(File.dirname(__FILE__), '../lib/ironmq')
6
+ rescue Exception => ex
7
+ puts "Could NOT load current ironmq: " + ex.message
8
+ raise ex
9
+ end
10
+
11
+
12
+ class TestBase < Test::Unit::TestCase
13
+ def setup
14
+ puts 'setup'
15
+ @config = YAML::load_file(File.expand_path(File.join("~", "Dropbox", "configs", "ironmq_gem", "test", "config.yml")))
16
+ @client = IronMQ::Client.new(@config['ironmq'])
17
+ @client.logger.level = Logger::DEBUG
18
+ @client.queue_name = 'ironmq-ruby-tests'
19
+
20
+ end
21
+ end
@@ -3,20 +3,11 @@
3
3
  gem 'test-unit'
4
4
  require 'test/unit'
5
5
  require 'yaml'
6
- begin
7
- require File.join(File.dirname(__FILE__), '../lib/ironmq')
8
- rescue Exception => ex
9
- puts "Could NOT load current ironmq: " + ex.message
10
- raise ex
11
- end
6
+ require_relative 'test_base'
12
7
 
13
- class IronMQTests < Test::Unit::TestCase
8
+ class IronMQTests < TestBase
14
9
  def setup
15
- puts 'setup'
16
- @config = YAML::load_file(File.expand_path(File.join("~", "Dropbox", "configs", "ironmq_gem", "test", "config.yml")))
17
- @client = IronMQ::Client.new(@config['ironmq'])
18
- #@client.logger.level = Logger::DEBUG
19
- @client.queue_name = 'ironmq-gem-tests'
10
+ super
20
11
 
21
12
  puts 'clearing queue'
22
13
  while res = @client.messages.get()
@@ -29,8 +20,11 @@ class IronMQTests < Test::Unit::TestCase
29
20
  end
30
21
 
31
22
  def test_basics
23
+
32
24
  res = @client.messages.post("hello world!")
33
25
  p res
26
+ queue = @client.queues.get(:name=>@client.queue_name)
27
+ assert queue.size == 1
34
28
 
35
29
  res = @client.messages.get()
36
30
  p res
@@ -42,6 +36,9 @@ class IronMQTests < Test::Unit::TestCase
42
36
  p res
43
37
  assert res.nil?
44
38
 
39
+ queue = @client.queues.get(:name=>@client.queue_name)
40
+ assert queue.size == 0
41
+
45
42
  res = @client.messages.post("hello world 2!")
46
43
  p res
47
44
 
@@ -57,6 +54,7 @@ class IronMQTests < Test::Unit::TestCase
57
54
  assert res.nil?
58
55
  end
59
56
 
57
+ # TODO: pass :timeout in post/get messages and test those
60
58
  def test_timeout
61
59
  res = @client.messages.post("hello world timeout!")
62
60
  p res
@@ -84,5 +82,30 @@ class IronMQTests < Test::Unit::TestCase
84
82
  msg2.delete
85
83
 
86
84
  end
85
+
86
+ def test_queues
87
+ res = @client.queues.list()
88
+ puts "res.size=" + res.size.to_s
89
+ res.each do |q|
90
+ puts "queue_name: " + q.name
91
+ puts "queue size: " + q.size.to_s
92
+ assert q.size >= 0
93
+ end
94
+ assert res.size > 0
95
+
96
+ res = @client.queues.list(:page=>2)
97
+ puts "res.size=" + res.size.to_s
98
+ res.each do |q|
99
+ p q.name
100
+ end
101
+ assert res.size == 0
102
+
103
+
104
+ end
105
+
106
+ def test_delay
107
+ # TODO
108
+ end
109
+
87
110
  end
88
111
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ironmq
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.6
4
+ version: 1.2.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-10 00:00:00.000000000 Z
12
+ date: 2011-12-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: typhoeus
16
- requirement: &17190840 !ruby/object:Gem::Requirement
16
+ requirement: &16958660 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *17190840
24
+ version_requirements: *16958660
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: typhoeus
27
- requirement: &17190320 !ruby/object:Gem::Requirement
27
+ requirement: &16958160 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *17190320
35
+ version_requirements: *16958160
36
36
  description: Ruby client for IronMQ
37
37
  email: travis@iron.io
38
38
  executables: []
@@ -47,8 +47,11 @@ files:
47
47
  - lib/ironmq.rb
48
48
  - lib/ironmq/client.rb
49
49
  - lib/ironmq/messages.rb
50
- - test/ironmq_tests.rb
50
+ - lib/ironmq/queues.rb
51
51
  - test/long_run.rb
52
+ - test/quick_run.rb
53
+ - test/test_base.rb
54
+ - test/test_ironmq.rb
52
55
  homepage: http://www.iron.io
53
56
  licenses: []
54
57
  post_install_message:
@@ -69,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
69
72
  version: '0'
70
73
  requirements: []
71
74
  rubyforge_project:
72
- rubygems_version: 1.8.8
75
+ rubygems_version: 1.8.11
73
76
  signing_key:
74
77
  specification_version: 3
75
78
  summary: Ruby client for IronMQ