ironmq 1.2.6 → 1.2.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -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