sevak 0.4.1 → 0.4.3

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: f9e20251448ad957b60dd439f8338f72f41da5b0
4
- data.tar.gz: 41f97d0eaa1491beb956e2308c34d47ab97cdd7f
3
+ metadata.gz: 4aae70e907924a87e7ed575dd9b8cff9002d4d9b
4
+ data.tar.gz: 7cfd25590517f9de9846d4e5038bb2b9103d8704
5
5
  SHA512:
6
- metadata.gz: cf78a97bd5aaf0723d5c056fd983b18e30d0861b63f65032069905d79d117e0dfb4a1ed09954e18c1b932f4c99eab79862ff961a4a5e5554ab7d39cd3ff69acc
7
- data.tar.gz: 581a76b9126a3fbf3e31259ccf7d9bed7ea84478518f671f4891b0a6aace638ada82090ce4f7278496024d1c06a411337b2739e48b61041eff16fb394ad58c9e
6
+ metadata.gz: 5fecdbf97f75e58192288b208c06e9ec3f9d02d1867571235429096cf7377d49fd2f00ed961e5a119b9d0fb365c6689609dd1c62f67d39abca928c41060b80ea
7
+ data.tar.gz: 188228a271d2b78882556585c5a7e776eb8164e260256647888c585047c62916e26746cc37b9f676f0bbce5da9ac38db85da60920a6b1107c113c46d31cca735
data/Gemfile CHANGED
@@ -3,7 +3,7 @@ source 'https://rubygems.org'
3
3
  # Specify your gem's dependencies in sevak.gemspec
4
4
  gemspec
5
5
 
6
- gem 'bunny'
6
+ gem 'bunny', '~> 2.7'
7
7
  gem 'pry'
8
8
  gem 'guard'
9
9
  gem 'guard-minitest'
data/Gemfile.lock CHANGED
@@ -1,15 +1,15 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sevak (0.4.1)
5
- bunny
4
+ sevak (0.4.3)
5
+ bunny (~> 2.7)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- amq-protocol (2.2.0)
11
- bunny (2.7.0)
12
- amq-protocol (>= 2.2.0)
10
+ amq-protocol (2.3.0)
11
+ bunny (2.9.1)
12
+ amq-protocol (~> 2.3.0)
13
13
  coderay (1.1.2)
14
14
  ffi (1.9.18)
15
15
  formatador (0.2.5)
@@ -56,7 +56,7 @@ PLATFORMS
56
56
  ruby
57
57
 
58
58
  DEPENDENCIES
59
- bunny
59
+ bunny (~> 2.7)
60
60
  guard
61
61
  guard-minitest
62
62
  highline
@@ -66,4 +66,4 @@ DEPENDENCIES
66
66
  sevak!
67
67
 
68
68
  BUNDLED WITH
69
- 1.16.0
69
+ 1.16.1
data/README.md CHANGED
@@ -1,3 +1,7 @@
1
+ # Current version
2
+
3
+ 0.4.3
4
+
1
5
  Sevak gem makes it easy to send and receive messages from rabbitmq queues. It is built on top of the bunny gem.
2
6
  It also supports delayed queuing using [rabbitmq delayed exchange plugin](https://github.com/rabbitmq/rabbitmq-delayed-message-exchange)
3
7
 
@@ -13,7 +17,7 @@ To install this plugin:
13
17
  rabbitmq-plugins enable rabbitmq_delayed_message_exchange
14
18
 
15
19
  # Installation
16
-
20
+
17
21
  gem install sevak
18
22
 
19
23
  # Configuration
@@ -33,19 +37,19 @@ Create a file under `config/initializers` and add following lines to that file:
33
37
  ### Publishing to a queue
34
38
 
35
39
  To publish any message to a queue use the following syntax:
36
-
40
+
37
41
  Sevak::Publisher.publish(*queue_name*, *message*)
38
42
 
39
43
  If the queue is not present already it will be created automatically.
40
44
 
41
- Example:
45
+ Example:
42
46
 
43
47
  Sevak::Publisher.delayed_publish('sms', message = { name: 'Deepak', msisdn: '9078657543' })
44
48
 
45
49
  ### Publishing to a queue with a delay
46
50
 
47
51
  To publish any message to a queue with some delay use the following syntax:
48
-
52
+
49
53
  Sevak::Publisher.publish(*queue_name*, *message*, *delay in milliseconds*)
50
54
 
51
55
  Example:
@@ -58,13 +62,13 @@ This will publish the message to an exchange which will route the message to the
58
62
  To receive message from this queue and process the message create a consumer file for each queue in your project under `app/consumers`.
59
63
 
60
64
  class SmsConsumer < Sevak::Consumer
61
-
65
+
62
66
  queue_name 'sms'
63
-
67
+
64
68
  def run(message)
65
69
  *process the message*
66
70
  end
67
-
71
+
68
72
  ..
69
73
  end
70
74
 
data/Rakefile CHANGED
@@ -26,7 +26,7 @@ namespace :consumer do
26
26
  cli = HighLine.new
27
27
 
28
28
  consumer_name = cli.ask('Input consumer name(eg. push_alert) :') { |q| q.validate = /\A[a-z]+[a-z_]+[a-z]\z/}
29
- queue_name = cli.ask('Input queue name(eg. in.chillr.push.default)') { |q| q.validate = /\A[a-z]+[a-z.]+[a-z]\z/}
29
+ queue_name = cli.ask('Input queue name(eg. myqueue)') { |q| q.validate = /\A[a-z]+[a-z.]+[a-z]\z/}
30
30
 
31
31
  to_class_name = Proc.new do |name|
32
32
  name.split('_').map(&:capitalize).join
@@ -34,7 +34,7 @@ namespace :consumer do
34
34
 
35
35
  text1 = <<-CODE
36
36
 
37
- module ChillrSevak
37
+ module Sevak
38
38
 
39
39
  class #{to_class_name.call(consumer_name)}Consumer < Consumer
40
40
 
@@ -49,13 +49,13 @@ end
49
49
 
50
50
  CODE
51
51
 
52
- if File.exists?("lib/sevak/consumers/#{consumer_name}_consumer.rb")
53
- puts "Already exists file: lib/sevak/consumers/#{consumer_name}_consumer.rb"
52
+ if File.exists?("app/consumers/#{consumer_name}_consumer.rb")
53
+ puts "Already exists file: app/consumers/#{consumer_name}_consumer.rb"
54
54
  ans = cli.ask('Do you want to overwrite it ? (y/n)') { |q| q.validate = /Y|N|y|n/}
55
55
  exit(-1) if ans.downcase == 'n'
56
56
  end
57
57
 
58
- file = File.open("lib/sevak/consumers/#{consumer_name}_consumer.rb", 'w+')
58
+ file = File.open("app/consumers/#{consumer_name}_consumer.rb", 'w+')
59
59
  file.write(text1)
60
60
  file.close
61
61
 
@@ -64,20 +64,20 @@ namespace :sevak do
64
64
 
65
65
  desc "Run the #{consumer_name} worker"
66
66
  task :#{consumer_name} do
67
- consumer = ChillrSevak::#{to_class_name.call(consumer_name)}Consumer.new
67
+ consumer = Sevak::#{to_class_name.call(consumer_name)}Consumer.new
68
68
  consumer.start
69
69
  end
70
70
  end
71
71
 
72
72
  CODE
73
73
 
74
- if File.exists?("tasks/#{consumer_name}.rake")
75
- puts "Already exists file: tasks/#{consumer_name}.rake"
74
+ if File.exists?("lib/tasks/#{consumer_name}.rake")
75
+ puts "Already exists file: lib/tasks/#{consumer_name}.rake"
76
76
  ans = cli.ask('Do you want to overwrite it ? (y/n)') { |q| q.validate = /Y|N|y|n/}
77
77
  exit(-1) if ans.downcase == 'n'
78
78
  end
79
79
 
80
- file = File.open("tasks/#{consumer_name}.rake", 'w+')
80
+ file = File.open("lib/tasks/#{consumer_name}.rake", 'w+')
81
81
  file.write(text2)
82
82
  file.close
83
83
 
@@ -10,7 +10,7 @@ module Sevak
10
10
  end
11
11
 
12
12
  def self.delayed_publish(queue_name, message, delay = 0)
13
- instance.publish_exchange(queue_name, message, delay)
13
+ instance.publish_exchange(queue_name, message, delay.to_i)
14
14
  end
15
15
 
16
16
  def channel
@@ -18,16 +18,16 @@ module Sevak
18
18
  end
19
19
 
20
20
  def queue(queue_name)
21
- channel.queue(queue_name)
21
+ channel.queue(queue_name, durable: true)
22
22
  end
23
23
 
24
24
  def exchange(queue_name)
25
- channel.exchange("#{queue_name}_exchange", type: "x-delayed-message", arguments: { "x-delayed-type" => "direct" })
25
+ channel.exchange("#{queue_name}_exchange", type: 'x-delayed-message', durable: true, arguments: { 'x-delayed-type' => 'direct' })
26
26
  end
27
27
 
28
28
  def publish_exchange(queue_name, message, delay)
29
29
  queue(queue_name).bind(exchange(queue_name))
30
- exchange(queue_name).publish(message.to_json, headers: { "x-delay" => delay })
30
+ exchange(queue_name).publish(message.to_json, headers: { 'x-delay' => delay })
31
31
  end
32
32
  end
33
33
  end
data/lib/sevak/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Sevak
2
- VERSION = '0.4.1'
2
+ VERSION = '0.4.3'
3
3
  end
data/sevak.gemspec CHANGED
@@ -9,16 +9,16 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ['Deepak Kumar']
10
10
  spec.email = ['deepakkumarnd@gmail.com']
11
11
 
12
- spec.summary = %q{Consumers for chillr api}
13
- spec.description = %q{Consumers for chillr api}
14
- spec.homepage = ''
12
+ spec.summary = %q{Create rabbitmq consumers}
13
+ spec.description = %q{Sevak lets you easily add consumers in your rails app}
14
+ spec.homepage = 'https://github.com/chillr/sevak'
15
15
  spec.license = 'MIT'
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
18
  spec.bindir = 'exe'
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ['lib']
21
- spec.add_runtime_dependency 'bunny'
21
+ spec.add_runtime_dependency 'bunny', '~> 2.7'
22
22
 
23
23
  # spec.add_development_dependency 'bundler', '~> 1.9'
24
24
  # spec.add_development_dependency 'rake', '~> 10.0'
metadata CHANGED
@@ -1,30 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sevak
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Deepak Kumar
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-14 00:00:00.000000000 Z
11
+ date: 2018-02-28 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
- version: '0'
19
+ version: '2.7'
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
- version: '0'
27
- description: Consumers for chillr api
26
+ version: '2.7'
27
+ description: Sevak lets you easily add consumers in your rails app
28
28
  email:
29
29
  - deepakkumarnd@gmail.com
30
30
  executables: []
@@ -49,7 +49,7 @@ files:
49
49
  - lib/sevak/version.rb
50
50
  - sevak.gemspec
51
51
  - tasks/.keep
52
- homepage: ''
52
+ homepage: https://github.com/chillr/sevak
53
53
  licenses:
54
54
  - MIT
55
55
  metadata: {}
@@ -72,5 +72,5 @@ rubyforge_project:
72
72
  rubygems_version: 2.6.10
73
73
  signing_key:
74
74
  specification_version: 4
75
- summary: Consumers for chillr api
75
+ summary: Create rabbitmq consumers
76
76
  test_files: []