klunk 0.1.3 → 0.1.4

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