rabbit_jobs 0.10.3 → 0.11.0

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