rabbit_jobs 0.10.3 → 0.11.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8c6b09c156ec4c0164346ee69859607ab805b85b
4
- data.tar.gz: ef40a547ba61943a21d522cd1061ddbd943ce522
3
+ metadata.gz: 4e103e5d76bc1c6aa3b69edade6717f009ba607e
4
+ data.tar.gz: dfc322f356dbc23681affc070d0d1784c8901478
5
5
  SHA512:
6
- metadata.gz: 9cc091e03732e6ee86b891813dfbce6ce91a1443f2db0a49dc6540cb86819a18032db9d46289fe3d3f0189959111c66a03a862f523d4dc097d22d283cb283e29
7
- data.tar.gz: ab6ea59c26df3c2ad64a74b69e3ac10e76067de31a54628d019d2f60cf54ddaa238cc2d9e194f72fb5c644946982b248b35a6a1de95fe54d11c61e1e13c79942
6
+ metadata.gz: f7c82cd1e03bad53b57eb07b56d3a21e1eae2ac937aa4ae907ffadded8fa4ad6e430a377cae9831daccd138f5626de4e5e1833393fb041a41803b6a70101f3f7
7
+ data.tar.gz: cfe726f5df67c78192b6b4fb4e04a9fdbc235a80b89fe4bc7c3a585e982ba5df0893748475ca2dc15f14bf4ccbf45028a73b24a268e121a81ba646aaa3886ab4
data/build CHANGED
@@ -2,6 +2,7 @@
2
2
  # -*- coding: utf-8 -*-
3
3
  require 'fileutils'
4
4
 
5
+ abort("rspec tests failed.") unless system("bundle install")
5
6
  abort("rspec tests failed.") unless system("COVERAGE=true && bundle exec rspec")
6
7
 
7
8
  coverage_dir = File.expand_path('../coverage', __FILE__)
@@ -1,21 +1,15 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  require 'logger'
3
- require 'rake'
4
3
  require 'json'
5
- require 'digest/md5'
6
4
  require 'bunny'
7
- require 'uri'
8
- require 'rufus/scheduler'
9
- require 'thwait'
5
+ require 'rufus-scheduler'
10
6
  require 'yaml'
11
- require 'active_support'
12
- require 'active_support/core_ext'
7
+ require 'active_support/core_ext/object/blank'
8
+ require 'active_support/core_ext/hash'
9
+ require 'active_support/core_ext/string/inflections'
13
10
 
14
11
  require 'rabbit_jobs/version'
15
-
16
- require 'rabbit_jobs/helpers'
17
12
  require 'rabbit_jobs/configuration'
18
-
19
13
  require 'rabbit_jobs/consumer/job_consumer'
20
14
  require 'rabbit_jobs/job'
21
15
  require 'rabbit_jobs/publisher'
@@ -33,8 +33,6 @@ module RabbitJobs
33
33
  end
34
34
 
35
35
  class Configuration
36
- include Helpers
37
-
38
36
  DEFAULT_EXCHANGE_PARAMS = {
39
37
  auto_delete: false,
40
38
  durable: true
@@ -123,7 +121,7 @@ module RabbitJobs
123
121
  self.send(m, yaml[m])
124
122
  end
125
123
  yaml['queues'].each do |name, params|
126
- queue name, symbolize_keys!(params) || {}
124
+ queue name, params.symbolize_keys || {}
127
125
  end
128
126
  end
129
127
 
@@ -2,8 +2,6 @@
2
2
  module RabbitJobs
3
3
  module Consumer
4
4
  class JobConsumer
5
- include RabbitJobs::Helpers
6
-
7
5
  def process_message(delivery_info, properties, payload)
8
6
  job, *error_args = RJ::Job.parse(payload)
9
7
 
@@ -3,7 +3,6 @@ require 'benchmark'
3
3
 
4
4
  module RabbitJobs
5
5
  module Job
6
- include RabbitJobs::Helpers
7
6
  extend self
8
7
 
9
8
  def self.included(base)
@@ -139,7 +138,7 @@ module RabbitJobs
139
138
  def self.parse(payload)
140
139
  begin
141
140
  encoded = JSON.parse(payload)
142
- job_klass = constantize(encoded['class'])
141
+ job_klass = encoded['class'].to_s.constantize
143
142
  job = job_klass.new(*encoded['params'])
144
143
  job.opts = encoded['opts']
145
144
  job
@@ -1,4 +1,5 @@
1
1
  require 'rabbit_jobs'
2
+ require 'rake'
2
3
 
3
4
  def rails_env
4
5
  $my_rails_env ||= defined?(Rails) ? Rails.env : (ENV['RAILS_ENV'] || 'development')
@@ -17,7 +18,7 @@ end
17
18
 
18
19
  namespace :rj do
19
20
  task :environment do
20
- Rails.application.require_environment!
21
+ Rails.application.require_environment! if defined?(Rails)
21
22
  end
22
23
 
23
24
  desc "Start a Rabbit Jobs worker"
@@ -1,5 +1,5 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
3
  module RabbitJobs
4
- VERSION = "0.10.3"
4
+ VERSION = "0.11.0"
5
5
  end
@@ -1,3 +1,2 @@
1
1
  $LOAD_PATH.unshift File.dirname(__FILE__) + '/../../lib'
2
-
3
2
  require 'rabbit_jobs/tasks'
@@ -22,9 +22,9 @@ Gem::Specification.new do |spec|
22
22
  spec.add_dependency "bunny", "~> 1.0"
23
23
  spec.add_dependency "rake"
24
24
  spec.add_dependency "rufus-scheduler", "~> 3.0"
25
- spec.add_dependency "rails", ">= 3.2", "< 5.0"
25
+ spec.add_dependency "activesupport", "~> 4.0"
26
26
 
27
- spec.add_development_dependency "bundler", "~> 1.5"
27
+ spec.add_development_dependency "bundler"
28
28
  # spec.add_development_dependency "rake"
29
29
  spec.add_development_dependency "timecop"
30
30
  spec.add_development_dependency "rspec"
@@ -1,4 +1,3 @@
1
- # -*- encoding : utf-8 -*-
2
1
  require 'spec_helper'
3
2
  require 'json'
4
3
  require 'benchmark'
@@ -18,13 +17,11 @@ describe RabbitJobs::Publisher do
18
17
 
19
18
  it 'should publish message to queue' do
20
19
  RJ.publish_to(:rspec_queue, TestJob, 'some', 'other', 'params')
21
- # sleep 0.1
22
20
  RJ.purge_queue('rspec_queue').should == 1
23
21
  end
24
22
 
25
23
  it 'should accept symbol as queue name' do
26
24
  RJ.publish_to(:rspec_queue, TestJob)
27
- # sleep 0.1
28
25
  RJ.purge_queue('rspec_queue').should == 1
29
26
  end
30
27
 
@@ -32,26 +29,20 @@ describe RabbitJobs::Publisher do
32
29
  RJ.publish_to(:rspec_queue, TestJob)
33
30
  RJ.publish_to(:rspec_queue2, TestJob)
34
31
  RJ.publish_to(:rspec_queue3, TestJob)
35
- # sleep 0.1
36
32
  RJ.purge_queue(:rspec_queue, :rspec_queue2, :rspec_queue3).should == 3
37
33
  end
38
34
 
39
35
  it 'should publish job with *params' do
40
36
  RJ.publish_to(:rspec_queue, JobWithArgsArray, 'first value', :some_symbol, 123, 'and string')
41
- # sleep 0.1
42
37
  RJ.purge_queue(:rspec_queue).should == 1
43
38
  end
44
39
 
45
40
  it 'should publish 1000 messages in one second' do
46
41
  count = 1000
47
- published = 0
48
42
  time = Benchmark.measure {
49
- count.times {
50
- RJ.publish_to(:rspec_queue, TestJob)
51
- }
52
- # sleep 0.1
43
+ count.times { RJ.publish_to(:rspec_queue, TestJob) }
53
44
  removed = RJ.purge_queue(:rspec_queue, :rspec_queue2, :rspec_queue3)
54
- removed.should == 1000
45
+ removed.should == count
55
46
  }
56
47
  puts time
57
48
  end
metadata CHANGED
@@ -1,145 +1,139 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rabbit_jobs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.3
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Lazureykis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-25 00:00:00.000000000 Z
11
+ date: 2014-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bunny
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rufus-scheduler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '3.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rails
56
+ name: activesupport
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '3.2'
62
- - - <
63
- - !ruby/object:Gem::Version
64
- version: '5.0'
61
+ version: '4.0'
65
62
  type: :runtime
66
63
  prerelease: false
67
64
  version_requirements: !ruby/object:Gem::Requirement
68
65
  requirements:
69
- - - '>='
70
- - !ruby/object:Gem::Version
71
- version: '3.2'
72
- - - <
66
+ - - "~>"
73
67
  - !ruby/object:Gem::Version
74
- version: '5.0'
68
+ version: '4.0'
75
69
  - !ruby/object:Gem::Dependency
76
70
  name: bundler
77
71
  requirement: !ruby/object:Gem::Requirement
78
72
  requirements:
79
- - - ~>
73
+ - - ">="
80
74
  - !ruby/object:Gem::Version
81
- version: '1.5'
75
+ version: '0'
82
76
  type: :development
83
77
  prerelease: false
84
78
  version_requirements: !ruby/object:Gem::Requirement
85
79
  requirements:
86
- - - ~>
80
+ - - ">="
87
81
  - !ruby/object:Gem::Version
88
- version: '1.5'
82
+ version: '0'
89
83
  - !ruby/object:Gem::Dependency
90
84
  name: timecop
91
85
  requirement: !ruby/object:Gem::Requirement
92
86
  requirements:
93
- - - '>='
87
+ - - ">="
94
88
  - !ruby/object:Gem::Version
95
89
  version: '0'
96
90
  type: :development
97
91
  prerelease: false
98
92
  version_requirements: !ruby/object:Gem::Requirement
99
93
  requirements:
100
- - - '>='
94
+ - - ">="
101
95
  - !ruby/object:Gem::Version
102
96
  version: '0'
103
97
  - !ruby/object:Gem::Dependency
104
98
  name: rspec
105
99
  requirement: !ruby/object:Gem::Requirement
106
100
  requirements:
107
- - - '>='
101
+ - - ">="
108
102
  - !ruby/object:Gem::Version
109
103
  version: '0'
110
104
  type: :development
111
105
  prerelease: false
112
106
  version_requirements: !ruby/object:Gem::Requirement
113
107
  requirements:
114
- - - '>='
108
+ - - ">="
115
109
  - !ruby/object:Gem::Version
116
110
  version: '0'
117
111
  - !ruby/object:Gem::Dependency
118
112
  name: rr
119
113
  requirement: !ruby/object:Gem::Requirement
120
114
  requirements:
121
- - - '>='
115
+ - - ">="
122
116
  - !ruby/object:Gem::Version
123
117
  version: '0'
124
118
  type: :development
125
119
  prerelease: false
126
120
  version_requirements: !ruby/object:Gem::Requirement
127
121
  requirements:
128
- - - '>='
122
+ - - ">="
129
123
  - !ruby/object:Gem::Version
130
124
  version: '0'
131
125
  - !ruby/object:Gem::Dependency
132
126
  name: simplecov
133
127
  requirement: !ruby/object:Gem::Requirement
134
128
  requirements:
135
- - - '>='
129
+ - - ">="
136
130
  - !ruby/object:Gem::Version
137
131
  version: '0'
138
132
  type: :development
139
133
  prerelease: false
140
134
  version_requirements: !ruby/object:Gem::Requirement
141
135
  requirements:
142
- - - '>='
136
+ - - ">="
143
137
  - !ruby/object:Gem::Version
144
138
  version: '0'
145
139
  description: Background jobs on RabbitMQ
@@ -149,8 +143,8 @@ executables: []
149
143
  extensions: []
150
144
  extra_rdoc_files: []
151
145
  files:
152
- - .gitignore
153
- - .rspec
146
+ - ".gitignore"
147
+ - ".rspec"
154
148
  - Gemfile
155
149
  - LICENSE
156
150
  - LICENSE.txt
@@ -165,7 +159,6 @@ files:
165
159
  - lib/rabbit_jobs.rb
166
160
  - lib/rabbit_jobs/configuration.rb
167
161
  - lib/rabbit_jobs/consumer/job_consumer.rb
168
- - lib/rabbit_jobs/helpers.rb
169
162
  - lib/rabbit_jobs/job.rb
170
163
  - lib/rabbit_jobs/main_loop.rb
171
164
  - lib/rabbit_jobs/publisher.rb
@@ -197,17 +190,17 @@ require_paths:
197
190
  - lib
198
191
  required_ruby_version: !ruby/object:Gem::Requirement
199
192
  requirements:
200
- - - '>='
193
+ - - ">="
201
194
  - !ruby/object:Gem::Version
202
195
  version: '0'
203
196
  required_rubygems_version: !ruby/object:Gem::Requirement
204
197
  requirements:
205
- - - '>='
198
+ - - ">="
206
199
  - !ruby/object:Gem::Version
207
200
  version: '0'
208
201
  requirements: []
209
202
  rubyforge_project:
210
- rubygems_version: 2.0.14
203
+ rubygems_version: 2.2.1
211
204
  signing_key:
212
205
  specification_version: 4
213
206
  summary: Background jobs on RabbitMQ
@@ -1,53 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
-
3
- module RabbitJobs
4
- module Helpers
5
- def symbolize_keys!(hash)
6
- hash.inject({}) do |options, (key, value)|
7
- options[(key.to_sym rescue key) || key] = value
8
- options
9
- end
10
- end
11
-
12
-
13
- # Tries to find a constant with the name specified in the argument string:
14
- #
15
- # constantize("Module") # => Module
16
- # constantize("Test::Unit") # => Test::Unit
17
- #
18
- # The name is assumed to be the one of a top-level constant, no matter
19
- # whether it starts with "::" or not. No lexical context is taken into
20
- # account:
21
- #
22
- # C = 'outside'
23
- # module M
24
- # C = 'inside'
25
- # C # => 'inside'
26
- # constantize("C") # => 'outside', same as ::C
27
- # end
28
- #
29
- # NameError is raised when the constant is unknown.
30
- def constantize(camel_cased_word)
31
- camel_cased_word = camel_cased_word.to_s
32
-
33
- if camel_cased_word.include?('-')
34
- camel_cased_word = classify(camel_cased_word)
35
- end
36
-
37
- names = camel_cased_word.split('::')
38
- names.shift if names.empty? || names.first.empty?
39
-
40
- constant = Object
41
- names.each do |name|
42
- args = Module.method(:const_get).arity != 1 ? [false] : []
43
-
44
- if constant.const_defined?(name, *args)
45
- constant = constant.const_get(name)
46
- else
47
- constant = constant.const_missing(name)
48
- end
49
- end
50
- constant
51
- end
52
- end
53
- end