huck 0.3.3 → 0.3.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: 6ca86b1204d5f52e1a6d161e466e378df3133597
4
- data.tar.gz: d42be2d71dc657a5fc235e8e2d36163a01bb7369
3
+ metadata.gz: 25a756eec35292ca791c294071c7a845f8763a4b
4
+ data.tar.gz: 0b865048d077ea23f3fb206200f829bb7244ea9e
5
5
  SHA512:
6
- metadata.gz: 20a7a3f7f741cd61773d44cf94857213a23098069b6074950535c2e9c6ea8807c1c2028138821f8b184af21527af8908f2fa631579a54eaa77b8da03d20d3318
7
- data.tar.gz: 326d6d1c500dc8c6a438a4f2e2df1f1de2ad707274fefc566794b32d9b3721d0c45fb1f86ebe2ff9058361e752a1c23436741e31694af6d1e0befed821a4a2a3
6
+ metadata.gz: 29b100df5fe489d1b392b8def0a347ef194e719ac457c2d04b916ee0265de0b9b90e0ce8a5a2bfec7d2f08b9f5a81ccdb712c490dd90f94686a3b7e612c670ba
7
+ data.tar.gz: 16eae156c0519939642214cbc7db1add89b63289631e8e8a9edb00dc3fd9d2da04700f4c93439e01edc42cf3b6871121840def762f220f3f879d6740c17b1aef
data/lib/huck/receiver.rb CHANGED
@@ -34,5 +34,42 @@ module Huck
34
34
  return r
35
35
  end
36
36
 
37
+ # Given some handlers (or a block), grab messages out of the
38
+ # queue and feed them through to the handlers.
39
+ #
40
+ # == Parameters:
41
+ # handlers::
42
+ # An array of Huck::Handler instances
43
+ # block::
44
+ # A code block, or nil
45
+ #
46
+ def accept handlers, block
47
+ begin
48
+ receive do |msg|
49
+ begin
50
+ if block
51
+ hname = '<block>'
52
+ block.call msg
53
+ next # skip other handlers
54
+ end
55
+
56
+ handlers.each do |h|
57
+ hname = h.class.to_s
58
+ h.handle msg
59
+ end
60
+ rescue => e
61
+ puts "Handler error (#{hname}): #{e.message}"
62
+ end
63
+ end
64
+ rescue Interrupt, SystemExit
65
+ return
66
+ rescue => e
67
+ puts "Receiver error (#{self.class}): #{e.message}"
68
+ puts "Retrying in 5s..."
69
+ sleep 5
70
+ retry
71
+ end
72
+ end
73
+
37
74
  end
38
75
  end
@@ -11,16 +11,15 @@ module Huck
11
11
  end
12
12
 
13
13
  # Ensures that configuration is set properly before trying to use the
14
- # connection data to talk to AWS
14
+ # connection data to talk to AWS. It is possible that IAM profiles are
15
+ # in use, so we can't strictly require that all of the access information
16
+ # is set in the configuration.
15
17
  def verify_config
16
18
  if !@config.has_key? 'sqs'
17
19
  raise RuntimeError, 'missing sqs sender config'
18
20
  end
19
- ['access_key_id', 'secret_access_key', 'region',
20
- 'queue_name'].each do |key|
21
- if !@config['sqs'].has_key? key
22
- raise RuntimeError, "missing sqs sender config: #{key}"
23
- end
21
+ if !@config['sqs'].has_key? 'queue_name'
22
+ raise RuntimeError, 'missing sqs sender config: queue_name'
24
23
  end
25
24
  end
26
25
 
@@ -33,11 +32,14 @@ module Huck
33
32
  def send msg
34
33
  verify_config
35
34
 
36
- sqs = AWS::SQS.new(
37
- :access_key_id => @config['sqs']['access_key_id'],
38
- :secret_access_key => @config['sqs']['secret_access_key'],
39
- :region => @config['sqs']['region']
40
- )
35
+ options = Hash.new
36
+ [:access_key_id, :secret_access_key, :region].each do |arg|
37
+ if @config['sqs'].has_key? arg.to_s
38
+ options[arg] = @config['sqs'][arg.to_s]
39
+ end
40
+ end
41
+
42
+ sqs = AWS::SQS.new options
41
43
 
42
44
  queue = sqs.queues.create @config['sqs']['queue_name']
43
45
  queue.send_message msg
data/lib/huck/util.rb CHANGED
@@ -60,7 +60,7 @@ module Huck
60
60
  #
61
61
  def self.must_load name
62
62
  if !self.try_load name
63
- raise RuntimeError, "unable to load #{name}"
63
+ raise RuntimeError, "huck: unable to load #{name}"
64
64
  end
65
65
  end
66
66
 
@@ -108,7 +108,7 @@ module Huck
108
108
  elsif provider.kind_of? String
109
109
  name = provider
110
110
  else
111
- raise RuntimeError, "expected hash, got: #{gen}"
111
+ raise RuntimeError, "expected string or hash, got: #{provider}"
112
112
  end
113
113
  yield name, config
114
114
  end
data/lib/huck/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Huck
2
- Version = '0.3.3'
2
+ Version = '0.3.4'
3
3
  end
data/lib/huck.rb CHANGED
@@ -73,7 +73,7 @@ module Huck
73
73
  # config::
74
74
  # Configuration hash to use in place of a config file
75
75
  #
76
- def self.serve kwargs = {}
76
+ def self.serve kwargs = {}, &block
77
77
  config = Huck::getarg kwargs, :config, nil
78
78
  if config.nil?
79
79
  conf_file = Huck::getarg kwargs, :config_file, nil
@@ -93,29 +93,9 @@ module Huck
93
93
  end
94
94
  recv_arg = Huck::getarg kwargs, :receiver, nil
95
95
  recv_name = recv_arg if !recv_arg.nil?
96
- r = Receiver::factory :name => recv_name, :config => config
96
+ receiver = Receiver::factory :name => recv_name, :config => config
97
97
 
98
- # Receive messages and pass them down to the handlers
99
- begin
100
- r.receive do |msg|
101
- begin
102
- if block_given?
103
- hname = '<block>'
104
- yield msg
105
- next # skip other handlers
106
- end
107
-
108
- handlers.each do |h|
109
- hname = h.class.to_s
110
- h.handle msg
111
- end
112
- rescue => e
113
- puts "Handler error (#{hname}): #{e.message}"
114
- end
115
- end
116
- rescue Interrupt, SystemExit
117
- return
118
- end
98
+ receiver.accept handlers, block
119
99
  end
120
100
 
121
101
  end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'getting generator instances' do
4
+ it 'should return the basic generator' do
5
+ expect(Huck::Generator::factory :name => 'basic').to(
6
+ be_a Huck::Generators::BasicGenerator)
7
+ end
8
+
9
+ it 'should return the facter generator' do
10
+ expect(Huck::Generator::factory :name => 'facter').to(
11
+ be_a Huck::Generators::FacterGenerator)
12
+ end
13
+
14
+ it 'should return the ohai generator' do
15
+ expect(Huck::Generator::factory :name => 'ohai').to(
16
+ be_a Huck::Generators::OhaiGenerator)
17
+ end
18
+
19
+ it 'should return the file generator' do
20
+ expect(Huck::Generator::factory :name => 'file').to(
21
+ be_a Huck::Generators::FileGenerator)
22
+ end
23
+
24
+ it 'should return the exec generator' do
25
+ expect(Huck::Generator::factory :name => 'exec').to(
26
+ be_a Huck::Generators::ExecGenerator)
27
+ end
28
+
29
+ it 'should raise on invalid generator' do
30
+ expect { Huck::Generator::factory :name => 'bad' }.to raise_error
31
+ end
32
+ end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'basic generator' do
4
+ before(:each) do
5
+ stub_const('RUBY_PLATFORM', 'linux')
6
+ allow(Socket).to receive(:gethostname).and_return('test')
7
+ end
8
+
9
+ it 'should return json by default' do
10
+ g = Huck::Generator::factory :name => 'basic', :config => {}
11
+ expect(g.generate).to eq('{"hostname":"test","platform":"linux"}')
12
+ end
13
+
14
+ it 'should return json on request' do
15
+ g = Huck::Generator::factory :name => 'basic', :config => {'format' => 'json'}
16
+ expect(g.generate).to eq('{"hostname":"test","platform":"linux"}')
17
+ end
18
+
19
+ it 'should return yaml on request' do
20
+ g = Huck::Generator::factory :name => 'basic', :config => {'format' => 'yaml'}
21
+ expect(g.generate).to eq("---\nhostname: test\nplatform: linux\n")
22
+ end
23
+
24
+ it 'should raise on invalid format' do
25
+ g = Huck::Generator::factory :name => 'basic', :config => {'format' => 'bad'}
26
+ expect { g.generate }.to raise_error
27
+ end
28
+ end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'exec generator' do
4
+ it 'should return the output of a command' do
5
+ g = Huck::Generator::factory :name => 'exec', :config => {'command' => 'echo hi'}
6
+ expect(g.generate).to eq("hi\n")
7
+ end
8
+
9
+ it 'should raise if no command is given' do
10
+ g = Huck::Generator::factory :name => 'exec', :config => {}
11
+ expect { g.generate }.to raise_error
12
+ end
13
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'facter generator' do
4
+ before(:each) do
5
+ allow(Huck).to receive(:try_load).and_return(true)
6
+ allow(Facter).to receive(:to_hash).and_return({'a' => 'b'})
7
+ end
8
+
9
+ it 'should return json by default' do
10
+ g = Huck::Generator::factory :name => 'facter', :config => {}
11
+ expect(g.generate).to eq('{"a":"b"}')
12
+ end
13
+
14
+ it 'should return json upon request' do
15
+ g = Huck::Generator::factory :name => 'facter', :config => {'format' => 'json'}
16
+ expect(g.generate).to eq('{"a":"b"}')
17
+ end
18
+
19
+ it 'should return yaml upon request' do
20
+ g = Huck::Generator::factory :name => 'facter', :config => {'format' => 'yaml'}
21
+ expect(g.generate).to eq("---\na: b\n")
22
+ end
23
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'file generator' do
4
+ it 'should return the raw content of a file' do
5
+ file = mktempfile :content => 'test'
6
+ g = Huck::Generator::factory :name => 'file', :config => {'path' => file}
7
+ expect(g.generate).to eq('test')
8
+ end
9
+
10
+ it 'should raise if no path is provided' do
11
+ g = Huck::Generator::factory :name => 'file', :config => {}
12
+ expect { g.generate }.to raise_error
13
+ end
14
+
15
+ it 'should raise if the file does not exist' do
16
+ g = Huck::Generator::factory :name => 'file', :config => {'path' => '/bad'}
17
+ expect { g.generate }.to raise_error
18
+ end
19
+ end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'ohai generator' do
4
+ before(:each) do
5
+ allow(Huck).to receive(:must_load)
6
+ ohai_system = double
7
+ allow(Ohai::System).to receive(:new).and_return(ohai_system)
8
+ allow(ohai_system).to receive(:all_plugins)
9
+ allow(ohai_system).to receive(:json_pretty_print).and_return('{"a":"b"}')
10
+ end
11
+
12
+ it 'should return json by default' do
13
+ g = Huck::Generator::factory :name => 'ohai', :config => {}
14
+ expect(g.generate).to eq('{"a":"b"}')
15
+ end
16
+
17
+ it 'should return json upon request' do
18
+ g = Huck::Generator::factory :name => 'ohai', :config => {'format' => 'json'}
19
+ expect(g.generate).to eq('{"a":"b"}')
20
+ end
21
+
22
+ it 'should return yaml upon request' do
23
+ g = Huck::Generator::factory :name => 'ohai', :config => {'format' => 'yaml'}
24
+ expect(g.generate).to eq("---\na: b\n")
25
+ end
26
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'getting handler instances' do
4
+ it 'should return the echo handler' do
5
+ expect(Huck::Handler::factory :name => 'echo').to(
6
+ be_a Huck::Handlers::EchoHandler)
7
+ end
8
+
9
+ it 'should return the exec handler' do
10
+ expect(Huck::Handler::factory :name => 'exec').to(
11
+ be_a Huck::Handlers::ExecHandler)
12
+ end
13
+
14
+ it 'should raise if no valid handlers found' do
15
+ expect { Huck::Handler::factory :name => 'bad' }.to raise_error
16
+ end
17
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'echo handler' do
4
+ it 'should echo the message' do
5
+ handler = Huck::Handler::factory :name => 'echo'
6
+ expect(STDOUT).to receive(:puts).with('hello')
7
+ handler.handle 'hello'
8
+ end
9
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'exec handler' do
4
+ it 'should raise if no command provided' do
5
+ h = Huck::Handler::factory :name => 'exec', :config => {}
6
+ expect { h.verify_config }.to raise_error
7
+ end
8
+
9
+ it 'should execute a command and return its output' do
10
+ file = mktempfile
11
+ config = {'command' => "cat >> #{file}"}
12
+ h = Huck::Handler::factory :name => 'exec', :config => config
13
+ h.handle 'hello'
14
+ expect(open(file).read).to eq('hello')
15
+ end
16
+ end
@@ -0,0 +1,51 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'running the client' do
4
+ before(:each) do
5
+ sender = double
6
+ allow(sender).to receive(:send).once
7
+ allow(Huck::Sender).to receive(:factory).and_return(sender)
8
+ end
9
+
10
+ it 'should accept config as a hash' do
11
+ config = {'sender' => 'sqs', 'generators' => ['basic']}
12
+ expect(Huck.run :config => config).not_to be_empty
13
+ end
14
+
15
+ it 'should read a config file' do
16
+ file = mktempfile :content => <<EOF
17
+ sender: sqs
18
+ generators:
19
+ - basic
20
+ EOF
21
+ expect(Huck.run :config_file => file).not_to be_empty
22
+ end
23
+
24
+ it 'should raise if a non-string is generated' do
25
+ expect { Huck.run { 0 } }.to raise_error
26
+ end
27
+
28
+ end
29
+
30
+ describe 'running the server' do
31
+ before(:each) do
32
+ receiver = double
33
+ expect(receiver).to receive(:accept).once
34
+ allow(Huck::Receiver).to receive(:factory).and_return(receiver)
35
+ end
36
+
37
+ it 'should accept config as a hash' do
38
+ config = {'receiver' => 'sqs', 'handlers' => ['echo']}
39
+ Huck.serve :config => config
40
+ end
41
+
42
+ it 'should read a config file' do
43
+ file = mktempfile :content => <<EOF
44
+ receiver: sqs
45
+ handlers:
46
+ - echo
47
+ EOF
48
+ Huck.serve :config_file => file
49
+ end
50
+
51
+ end
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'getting receiver instances' do
4
+ it 'should return the sqs receiver' do
5
+ expect(Huck::Receiver::factory :name => 'sqs').to(
6
+ be_a Huck::Receivers::SQSReceiver)
7
+ end
8
+
9
+ it 'should return the rabbitmq receiver' do
10
+ expect(Huck::Receiver::factory :name => 'rabbitmq').to(
11
+ be_a Huck::Receivers::RabbitMQReceiver)
12
+ end
13
+
14
+ it 'should raise on invalid receiver' do
15
+ expect { Huck::Receiver::factory :name => 'bad' }.to raise_error
16
+ end
17
+ end
18
+
19
+ describe 'accepting messages from queues' do
20
+ it 'should accept a message and hand it to the handler' do
21
+ h = double
22
+ allow(h).to receive(:handle)
23
+ r = Huck::Receiver::factory :name => 'sqs'
24
+ allow(r).to receive(:receive).and_yield('test')
25
+ r.accept [h], nil
26
+ end
27
+
28
+ it 'should dump an error message on handler error' do
29
+ h = double
30
+ expect(STDOUT).to receive(:puts).with('Handler error (RSpec::Mocks::Double): RuntimeError')
31
+ allow(h).to receive(:handle).and_raise(RuntimeError)
32
+ r = Huck::Receiver::factory :name => 'sqs'
33
+ allow(r).to receive(:receive).and_yield('test')
34
+ r.accept [h], nil
35
+ end
36
+ end
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'sqs receiver' do
4
+ before(:each) do
5
+ allow(Huck).to receive(:must_load)
6
+ sqs = double
7
+ queues = double
8
+ allow(sqs).to receive(:queues).and_return(queues)
9
+ queue = double
10
+ msg = double(:body => 'test')
11
+ allow(queue).to receive(:poll).and_yield(msg)
12
+ allow(queues).to receive(:create).with('q').and_return(queue)
13
+ allow(AWS::SQS).to receive(:new).with(
14
+ :access_key_id => 'i',
15
+ :secret_access_key => 's',
16
+ :region => 'r'
17
+ ).and_return(sqs)
18
+ end
19
+
20
+ it 'should raise if no sqs config provided' do
21
+ r = Huck::Receiver::factory :name => 'sqs', :config => {}
22
+ expect { r.receive }.to raise_error
23
+ end
24
+
25
+ it 'should raise if not all required config provided' do
26
+ config = {'sqs' => {'access_key_id' => 'test', 'region' => 'test'}}
27
+ r = Huck::Receiver::factory :name => 'sqs', :config => config
28
+ expect { r.receive }.to raise_error
29
+ end
30
+
31
+ it 'should call the aws sdk to poll messages' do
32
+ config = {'sqs' => {'access_key_id' => 'i', 'region' => 'r',
33
+ 'secret_access_key' => 's', 'queue_name' => 'q'}}
34
+ r = Huck::Receiver::factory :name => 'sqs', :config => config
35
+ expect { |b| r.receive(&b) }.to yield_with_args('test')
36
+ end
37
+
38
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'getting sender instances' do
4
+ it 'should return the sqs sender' do
5
+ expect(Huck::Sender::factory :name => 'sqs').to(
6
+ be_a Huck::Senders::SQSSender)
7
+ end
8
+
9
+ it 'should return the rabbitmq sender' do
10
+ expect(Huck::Sender::factory :name => 'rabbitmq').to(
11
+ be_a Huck::Senders::RabbitMQSender)
12
+ end
13
+
14
+ it 'should raise on invalid sender' do
15
+ expect { Huck::Sender::factory :name => 'bad' }.to raise_error
16
+ end
17
+ end
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'sqs sender' do
4
+ before(:each) do
5
+ allow(Huck).to receive(:must_load)
6
+ sqs = double
7
+ queues = double
8
+ allow(sqs).to receive(:queues).and_return(queues)
9
+ queue = double
10
+ allow(queue).to receive(:send_message).with('test')
11
+ allow(queues).to receive(:create).with('q').and_return(queue)
12
+ allow(AWS::SQS).to receive(:new).with(
13
+ :access_key_id => 'i',
14
+ :secret_access_key => 's',
15
+ :region => 'r'
16
+ ).and_return(sqs)
17
+ end
18
+
19
+ it 'should raise if no sqs config provided' do
20
+ s = Huck::Sender::factory :name => 'sqs', :config => {}
21
+ expect { s.send 'test' }.to raise_error
22
+ end
23
+
24
+ it 'should raise if not all required config provided' do
25
+ config = {'sqs' => {'access_key_id' => 'test', 'region' => 'test'}}
26
+ s = Huck::Sender::factory :name => 'sqs', :config => config
27
+ expect { s.send 'test' }.to raise_error
28
+ end
29
+
30
+ it 'should call the aws sdk to send a message' do
31
+ config = {'sqs' => {'access_key_id' => 'i', 'region' => 'r',
32
+ 'secret_access_key' => 's', 'queue_name' => 'q'}}
33
+ s = Huck::Sender::factory :name => 'sqs', :config => config
34
+ s.send 'test'
35
+ end
36
+
37
+ end
@@ -13,7 +13,7 @@ describe 'Huck Configuration' do
13
13
  end
14
14
 
15
15
  it 'should accept an alternate config file path' do
16
- file = mktempfile "test: config\n"
16
+ file = mktempfile :content => "test: config\n"
17
17
  expect(Huck.config :path => file).to eq({'test' => 'config'})
18
18
  end
19
19
  end
@@ -49,4 +49,31 @@ describe 'Data Serialization' do
49
49
  output = YAML.dump input
50
50
  expect(Huck::serialize(input, :format => 'yaml')).to eq(output)
51
51
  end
52
+
53
+ it 'should raise on unknown format' do
54
+ expect { Huck::serialize(input, :format => 'bad') }.to raise_error
55
+ end
56
+ end
57
+
58
+ describe 'Parsing Providers' do
59
+ it 'should parse provider hashes correctly' do
60
+ config = [{'provider1' => {'config1' => 'val1'}}, 'provider2']
61
+ i = 0
62
+ Huck::parse_providers config do |name, config|
63
+ case i
64
+ when 0
65
+ expect(name).to eq('provider1')
66
+ expect(config).to eq({'config1' => 'val1'})
67
+ when 1
68
+ expect(name).to eq('provider2')
69
+ expect(config).to be {}
70
+ end
71
+ i += 1
72
+ end
73
+ end
74
+
75
+ it 'should raise an error on incorrect provider config' do
76
+ expect { Huck::parse_providers nil }.to raise_error
77
+ expect { Huck::parse_providers [0] }.to raise_error
78
+ end
52
79
  end
data/spec/spec_helper.rb CHANGED
@@ -9,7 +9,8 @@ end
9
9
 
10
10
  require 'huck'
11
11
 
12
- def mktempfile content
12
+ def mktempfile kwargs = {}
13
+ content = Huck::getarg kwargs, :content, ''
13
14
  f = Tempfile.new 'huck'
14
15
  f.write content
15
16
  f.close
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: huck
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Uber
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-16 00:00:00.000000000 Z
11
+ date: 2014-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec-mocks
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: simplecov
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +66,62 @@ dependencies:
52
66
  - - '>='
53
67
  - !ruby/object:Gem::Version
54
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: facter
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: ohai
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: aws-sdk
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: bunny
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
55
125
  description: Open-ended information sharing framework
56
126
  email: ru@ryanuber.com
57
127
  executables:
@@ -59,26 +129,40 @@ executables:
59
129
  extensions: []
60
130
  extra_rdoc_files: []
61
131
  files:
62
- - bin/huck
63
- - lib/huck/generator.rb
132
+ - lib/huck/generators/ohai.rb
133
+ - lib/huck/generators/facter.rb
64
134
  - lib/huck/generators/basic.rb
65
135
  - lib/huck/generators/exec.rb
66
- - lib/huck/generators/facter.rb
67
136
  - lib/huck/generators/file.rb
68
- - lib/huck/generators/ohai.rb
69
- - lib/huck/handler.rb
70
- - lib/huck/handlers/echo.rb
71
- - lib/huck/handlers/exec.rb
137
+ - lib/huck/senders/sqs.rb
138
+ - lib/huck/senders/rabbitmq.rb
72
139
  - lib/huck/receiver.rb
73
- - lib/huck/receivers/rabbitmq.rb
74
- - lib/huck/receivers/sqs.rb
75
140
  - lib/huck/sender.rb
76
- - lib/huck/senders/rabbitmq.rb
77
- - lib/huck/senders/sqs.rb
78
141
  - lib/huck/util.rb
142
+ - lib/huck/generator.rb
143
+ - lib/huck/receivers/sqs.rb
144
+ - lib/huck/receivers/rabbitmq.rb
145
+ - lib/huck/handlers/exec.rb
146
+ - lib/huck/handlers/echo.rb
79
147
  - lib/huck/version.rb
148
+ - lib/huck/handler.rb
80
149
  - lib/huck.rb
150
+ - bin/huck
151
+ - spec/huck/generators/facter_spec.rb
152
+ - spec/huck/generators/basic_spec.rb
153
+ - spec/huck/generators/exec_spec.rb
154
+ - spec/huck/generators/file_spec.rb
155
+ - spec/huck/generators/ohai_spec.rb
81
156
  - spec/huck/util_spec.rb
157
+ - spec/huck/receiver_spec.rb
158
+ - spec/huck/senders/sqs_spec.rb
159
+ - spec/huck/huck_spec.rb
160
+ - spec/huck/sender_spec.rb
161
+ - spec/huck/handler_spec.rb
162
+ - spec/huck/receivers/sqs_spec.rb
163
+ - spec/huck/generator_spec.rb
164
+ - spec/huck/handlers/echo_spec.rb
165
+ - spec/huck/handlers/exec_spec.rb
82
166
  - spec/spec_helper.rb
83
167
  homepage: https://github.com/ryanuber/huck
84
168
  licenses:
@@ -100,10 +184,24 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
184
  version: '0'
101
185
  requirements: []
102
186
  rubyforge_project:
103
- rubygems_version: 2.0.14
187
+ rubygems_version: 2.1.11
104
188
  signing_key:
105
189
  specification_version: 4
106
190
  summary: Information sharing framework
107
191
  test_files:
192
+ - spec/huck/generators/facter_spec.rb
193
+ - spec/huck/generators/basic_spec.rb
194
+ - spec/huck/generators/exec_spec.rb
195
+ - spec/huck/generators/file_spec.rb
196
+ - spec/huck/generators/ohai_spec.rb
108
197
  - spec/huck/util_spec.rb
198
+ - spec/huck/receiver_spec.rb
199
+ - spec/huck/senders/sqs_spec.rb
200
+ - spec/huck/huck_spec.rb
201
+ - spec/huck/sender_spec.rb
202
+ - spec/huck/handler_spec.rb
203
+ - spec/huck/receivers/sqs_spec.rb
204
+ - spec/huck/generator_spec.rb
205
+ - spec/huck/handlers/echo_spec.rb
206
+ - spec/huck/handlers/exec_spec.rb
109
207
  - spec/spec_helper.rb