klunk 0.1.3 → 0.1.4

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: 6d05d84aa61058e4cdceae7c1d8ef48b44441d15
4
- data.tar.gz: aea79ddfd528b2b1bfd8a26d930ac13c04ed5b1f
3
+ metadata.gz: 414d767c39dc24f736a5d2c544c08a360132c763
4
+ data.tar.gz: 95d00bc3eeddb6f7bfdea7ccbcf584daf093f984
5
5
  SHA512:
6
- metadata.gz: a13d1785dc2ef9c95788829a9d0a16a4848970976ffc12b6ed1d296d446464f3277012058bff4e8d52f997eab6d1f626545fa7d0766c674f4db17aaa96b55e81
7
- data.tar.gz: d9df78fea1a01c7b270ba1572a616215a6402e91f82df9bba8bca17e8ade3dff38596c6c5f219b3eb705db00f8917cda5df61be9d4a384051052c143d68b0632
6
+ metadata.gz: ade4d620bc8298dc71e93a68bedeaefe21c567ea1dbe5d74db381bd29c981958d1c9ab94fbf4112de6e1cfff864775a138e835bc02a5a285bc3642b1e5cf4e4a
7
+ data.tar.gz: e2f81c6142b90218d042a0b0ef945e379e8e09dcc6d8760608835a0436f417914c6d1a4742f97885caea0263daf5a68a2780ca6475cec62520db33cc5cdd48e3
data/Gemfile CHANGED
@@ -6,7 +6,3 @@ gemspec
6
6
  group :development, :test do
7
7
  gem 'rubocop', require: nil
8
8
  end
9
-
10
- group :test do
11
- gem 'codeclimate-test-reporter', require: nil
12
- end
data/lib/klunk/base.rb ADDED
@@ -0,0 +1,6 @@
1
+ require 'safe_yaml'
2
+ module Klunk
3
+ class Base
4
+
5
+ end
6
+ end
data/lib/klunk/queue.rb CHANGED
@@ -1,8 +1,16 @@
1
1
  module Klunk
2
- class Queue
3
- QUEUES = YAML.load_file('config/queues.yml').map(&:deep_symbolize_keys)
2
+ class Queue < Base
4
3
 
5
4
  class << self
5
+
6
+ def queues
7
+ if File.exists?('config/queues.yml')
8
+ YAML.load_file('config/queues.yml').map(&:deep_symbolize_keys)
9
+ else
10
+ []
11
+ end
12
+ end
13
+
6
14
  def build(queue_options)
7
15
  queue_name = queue_options.delete(:name)
8
16
  subscriptions = queue_options.delete(:subscribes)
@@ -70,7 +78,7 @@ module Klunk
70
78
  end
71
79
 
72
80
  def queues_for_shoryuken_config
73
- Klunk::Queue::QUEUES.map{|queue| [name_for(queue[:name]), queue[:priority]] }
81
+ Klunk::Queue::queues.map{|queue| [name_for(queue[:name]), queue[:priority]] }
74
82
  end
75
83
 
76
84
  def client
@@ -12,10 +12,10 @@ namespace :klunk do
12
12
 
13
13
  desc 'Describe current structure'
14
14
  task describe: :environment do
15
- Klunk::Topic::TOPICS.each do |topic|
15
+ Klunk::Topic.topics.each do |topic|
16
16
  ap Klunk::Topic.describe(topic[:name])
17
17
  end
18
- Klunk::Queue::QUEUES.each do |queue|
18
+ Klunk::Queue.queues.each do |queue|
19
19
  queue[:subscribes].to_a.each do |topic_options|
20
20
  topic_name = topic_options.delete(:name)
21
21
  ap Klunk::Topic.describe(topic_name, topic_options)
@@ -26,7 +26,7 @@ namespace :klunk do
26
26
  namespace :sns do
27
27
  desc 'Create SNS topics'
28
28
  task create_topics: :environment do
29
- Klunk::Topic::TOPICS.each do |topic|
29
+ Klunk::Topic.topics.each do |topic|
30
30
  Klunk::Topic.create(topic[:name])
31
31
  end
32
32
  end
@@ -36,7 +36,7 @@ namespace :klunk do
36
36
  desc 'Create SQS queues if needed'
37
37
  task create_queues_if_needed: :environment do
38
38
  existing_queues = Klunk::Queue.client.list_queues(queue_name_prefix: Klunk::Queue.name_for('')).queue_urls.collect{|queue| queue.split('/').last }
39
- needed_queues = Klunk::Queue::QUEUES.map do |queue|
39
+ needed_queues = Klunk::Queue.queues.map do |queue|
40
40
  [Klunk::Queue.name_for(queue[:name]), Klunk::Queue.name_for(queue[:name], true)]
41
41
  end.flatten
42
42
  unless (needed_queues - existing_queues).empty?
@@ -48,7 +48,7 @@ namespace :klunk do
48
48
 
49
49
  desc 'Create SQS queues'
50
50
  task create_queues: :environment do
51
- Klunk::Queue::QUEUES.each do |queue|
51
+ Klunk::Queue.queues.each do |queue|
52
52
  q = Klunk::Queue.build(queue)
53
53
  puts "\n#{q[:queue_url]}"
54
54
  end
data/lib/klunk/topic.rb CHANGED
@@ -1,12 +1,20 @@
1
1
  module Klunk
2
- class Topic
3
- TOPICS = YAML.load_file('config/topics.yml').map(&:deep_symbolize_keys)
2
+ class Topic < Base
4
3
 
5
4
  class << self
5
+
6
+ def topics
7
+ if File.exists?('config/topics.yml')
8
+ YAML.load_file('config/topics.yml').map(&:deep_symbolize_keys)
9
+ else
10
+ []
11
+ end
12
+ end
13
+
6
14
  def name_for(topic_name, options = {})
7
15
  system_name = options[:system] || Klunk.configuration.prefix
8
16
  [system_name, ENV['EB_ENV'], topic_name]
9
- .compact.reject(&:blank?).join('_')
17
+ .compact.reject(&:blank?).join('_')
10
18
  end
11
19
 
12
20
  def create(topic_name)
@@ -29,11 +37,11 @@ module Klunk
29
37
  queue_attributes = Klunk::Queue.get_attributes(queue_url)
30
38
  queue_arn = queue_attributes['QueueArn']
31
39
  subscription = client.subscribe(
32
- topic_arn: topic_arn, protocol: 'sqs', endpoint: queue_arn
40
+ topic_arn: topic_arn, protocol: 'sqs', endpoint: queue_arn
33
41
  )
34
42
  client.set_subscription_attributes(
35
- subscription_arn: subscription.subscription_arn,
36
- attribute_name: 'RawMessageDelivery', attribute_value: 'true'
43
+ subscription_arn: subscription.subscription_arn,
44
+ attribute_name: 'RawMessageDelivery', attribute_value: 'true'
37
45
  )
38
46
  if queue_attributes.key?('Policy')
39
47
  previous_policy = JSON.parse(queue_attributes['Policy'])
@@ -46,7 +54,7 @@ module Klunk
46
54
  {
47
55
  topic: topic_arn(topic_name, options),
48
56
  subscriptions: client.list_subscriptions_by_topic(
49
- topic_arn: topic_arn(topic_name, options)
57
+ topic_arn: topic_arn(topic_name, options)
50
58
  ).subscriptions.map { |topic| topic[:endpoint] }
51
59
  }
52
60
  end
@@ -54,13 +62,13 @@ module Klunk
54
62
  def add_policy(queue_url, topic_arn, previous_policy)
55
63
  previous_policy ||= build_policy(queue_url, topic_arn)
56
64
  Queue.client.set_queue_attributes(
57
- queue_url: queue_url,
58
- attributes: {
59
- Policy: previous_policy.tap do |p|
60
- (p['Statement'] ||= []) << build_statement(queue_url, topic_arn)
61
- p['Statement'].uniq!
62
- end.to_json
63
- }
65
+ queue_url: queue_url,
66
+ attributes: {
67
+ Policy: previous_policy.tap do |p|
68
+ (p['Statement'] ||= []) << build_statement(queue_url, topic_arn)
69
+ p['Statement'].uniq!
70
+ end.to_json
71
+ }
64
72
  )
65
73
  end
66
74
 
data/lib/klunk/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Klunk
2
- VERSION = '0.1.3'.freeze
2
+ VERSION = '0.1.4'.freeze
3
3
  end
data/lib/klunk.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'klunk/version'
2
2
  require 'klunk/configuration'
3
+ require 'klunk/base'
3
4
  require 'klunk/queue'
4
5
  require 'klunk/topic'
5
6
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: klunk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marco Antonio Gonzalez Junior
@@ -117,6 +117,7 @@ files:
117
117
  - lib/generators/klunk/templates/config/queues.yml
118
118
  - lib/generators/klunk/templates/config/topics.yml
119
119
  - lib/klunk.rb
120
+ - lib/klunk/base.rb
120
121
  - lib/klunk/configuration.rb
121
122
  - lib/klunk/queue.rb
122
123
  - lib/klunk/railtie.rb