sevak 0.4.1 → 0.4.3

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: 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: []