huck 0.3.4 → 0.3.5
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 +4 -4
- data/lib/huck.rb +3 -1
- data/lib/huck/error.rb +6 -0
- data/lib/huck/generator.rb +5 -4
- data/lib/huck/generators/exec.rb +1 -1
- data/lib/huck/generators/file.rb +1 -1
- data/lib/huck/generators/stdin.rb +27 -0
- data/lib/huck/handler.rb +2 -2
- data/lib/huck/handlers/exec.rb +1 -1
- data/lib/huck/receiver.rb +4 -2
- data/lib/huck/receivers/rabbitmq.rb +2 -2
- data/lib/huck/receivers/sqs.rb +2 -2
- data/lib/huck/sender.rb +2 -2
- data/lib/huck/senders/rabbitmq.rb +2 -2
- data/lib/huck/senders/sqs.rb +2 -2
- data/lib/huck/util.rb +6 -6
- data/lib/huck/version.rb +1 -1
- data/spec/huck/util_spec.rb +3 -3
- metadata +32 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7c1f883695019dd9a24f181b919f8597399c1bcc
|
4
|
+
data.tar.gz: ca393ed87a5bd06e94df9d5e7552f03c2d739a62
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af8dd8725a19a799be254f72f709ac461b440790d94959e9597f5588890cd7f8bdf00a2c935ec8d1f644b30477837a1a8df42f065870ba6ab1dc3f361a9a116e
|
7
|
+
data.tar.gz: 6f5852b59881ccb7506208deb5d400cadf6d65f16889901cde89cfbdd926c74ac1cbadc19b6805e04dddef7bebf7ca2d846a63d1cebf5460e026f3ea6f0c18ba
|
data/lib/huck.rb
CHANGED
@@ -3,12 +3,14 @@ require 'yaml'
|
|
3
3
|
|
4
4
|
require 'huck/version'
|
5
5
|
require 'huck/util'
|
6
|
+
require 'huck/error'
|
6
7
|
require 'huck/generator'
|
7
8
|
require 'huck/generators/basic'
|
8
9
|
require 'huck/generators/facter'
|
9
10
|
require 'huck/generators/ohai'
|
10
11
|
require 'huck/generators/file'
|
11
12
|
require 'huck/generators/exec'
|
13
|
+
require 'huck/generators/stdin'
|
12
14
|
require 'huck/sender'
|
13
15
|
require 'huck/senders/sqs'
|
14
16
|
require 'huck/senders/rabbitmq'
|
@@ -57,7 +59,7 @@ module Huck
|
|
57
59
|
generators.each do |g|
|
58
60
|
data = block_given? ? yield : g.generate
|
59
61
|
if !data.kind_of? String
|
60
|
-
raise
|
62
|
+
raise Error, "generator produced non-string result: #{data.class}"
|
61
63
|
end
|
62
64
|
s.send data
|
63
65
|
end
|
data/lib/huck/error.rb
ADDED
data/lib/huck/generator.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
module Huck
|
2
2
|
|
3
3
|
class Generator
|
4
|
-
|
5
4
|
attr_accessor :config
|
6
5
|
|
7
6
|
# Given a generator's name (or no name), return a new generator instance
|
@@ -17,9 +16,9 @@ module Huck
|
|
17
16
|
#
|
18
17
|
def self.factory kwargs = {}
|
19
18
|
name = Huck::getarg kwargs, :name, nil
|
20
|
-
config = Huck::getarg kwargs, :config,
|
19
|
+
config = Huck::getarg kwargs, :config, {}
|
21
20
|
|
22
|
-
name = '
|
21
|
+
name = 'stdin' if name.nil?
|
23
22
|
|
24
23
|
case name
|
25
24
|
when 'basic'
|
@@ -32,8 +31,10 @@ module Huck
|
|
32
31
|
g = Generators::FileGenerator.new
|
33
32
|
when 'exec'
|
34
33
|
g = Generators::ExecGenerator.new
|
34
|
+
when 'stdin'
|
35
|
+
g = Generators::StdinGenerator.new
|
35
36
|
else
|
36
|
-
raise
|
37
|
+
raise Huck::Error, "bad generator: #{name}"
|
37
38
|
end
|
38
39
|
|
39
40
|
g.config = config
|
data/lib/huck/generators/exec.rb
CHANGED
@@ -13,7 +13,7 @@ module Huck
|
|
13
13
|
# Ensures that configuration is set properly before executing
|
14
14
|
def verify_config
|
15
15
|
if !@config.has_key? 'command'
|
16
|
-
raise
|
16
|
+
raise Huck::Error, 'missing "exec" generator config: "command"'
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
data/lib/huck/generators/file.rb
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
module Huck
|
2
|
+
|
3
|
+
module Generators
|
4
|
+
|
5
|
+
# A generator to use from the command line by piping in text
|
6
|
+
class StdinGenerator < Generator
|
7
|
+
|
8
|
+
# Submit all data from stdin.
|
9
|
+
def generate
|
10
|
+
data = ''
|
11
|
+
|
12
|
+
# Try reading 1 byte first in non-blocking mode. If the call would block
|
13
|
+
# during read(), then we just bail and raise. Otherwise, if at least 1
|
14
|
+
# byte can be read, we proceed to read until EOF since we already have
|
15
|
+
# our stream of data.
|
16
|
+
begin
|
17
|
+
data += STDIN.read_nonblock 1
|
18
|
+
rescue Errno::EWOULDBLOCK
|
19
|
+
raise Huck::Error, 'no data from stdin'
|
20
|
+
end
|
21
|
+
data += STDIN.read
|
22
|
+
data
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/huck/handler.rb
CHANGED
@@ -17,7 +17,7 @@ module Huck
|
|
17
17
|
#
|
18
18
|
def self.factory kwargs = {}
|
19
19
|
name = Huck::getarg kwargs, :name, nil
|
20
|
-
config = Huck::getarg kwargs, :config,
|
20
|
+
config = Huck::getarg kwargs, :config, {}
|
21
21
|
|
22
22
|
name = 'echo' if name.nil?
|
23
23
|
|
@@ -27,7 +27,7 @@ module Huck
|
|
27
27
|
when 'exec'
|
28
28
|
h = Handlers::ExecHandler.new
|
29
29
|
else
|
30
|
-
raise
|
30
|
+
raise Huck::Error, "bad handler: #{name}"
|
31
31
|
end
|
32
32
|
|
33
33
|
h.config = config
|
data/lib/huck/handlers/exec.rb
CHANGED
@@ -14,7 +14,7 @@ module Huck
|
|
14
14
|
# Ensures that configuration is set properly before executing
|
15
15
|
def verify_config
|
16
16
|
if !@config.has_key? 'command'
|
17
|
-
raise
|
17
|
+
raise Huck::Error, 'missing "exec" generator config: "command"'
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
data/lib/huck/receiver.rb
CHANGED
@@ -17,7 +17,7 @@ module Huck
|
|
17
17
|
#
|
18
18
|
def self.factory kwargs = {}
|
19
19
|
name = Huck::getarg kwargs, :name, nil
|
20
|
-
config = Huck::getarg kwargs, :config,
|
20
|
+
config = Huck::getarg kwargs, :config, {}
|
21
21
|
|
22
22
|
name = 'sqs' if name.nil?
|
23
23
|
|
@@ -27,7 +27,7 @@ module Huck
|
|
27
27
|
when 'rabbitmq'
|
28
28
|
r = Receivers::RabbitMQReceiver.new
|
29
29
|
else
|
30
|
-
raise
|
30
|
+
raise Huck::Error, "bad receiver: #{name}"
|
31
31
|
end
|
32
32
|
|
33
33
|
r.config = config
|
@@ -63,6 +63,8 @@ module Huck
|
|
63
63
|
end
|
64
64
|
rescue Interrupt, SystemExit
|
65
65
|
return
|
66
|
+
rescue Huck::Error
|
67
|
+
raise
|
66
68
|
rescue => e
|
67
69
|
puts "Receiver error (#{self.class}): #{e.message}"
|
68
70
|
puts "Retrying in 5s..."
|
@@ -14,10 +14,10 @@ module Huck
|
|
14
14
|
# connection data to talk to RabbitMQ
|
15
15
|
def verify_config
|
16
16
|
if !@config.has_key? 'rabbitmq'
|
17
|
-
raise
|
17
|
+
raise Huck::Error, 'missing rabbitmq config'
|
18
18
|
end
|
19
19
|
if !@config['rabbitmq'].has_key? 'queue_name'
|
20
|
-
raise
|
20
|
+
raise Huck::Error, 'missing rabbitmq receiver config: queue_name'
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
data/lib/huck/receivers/sqs.rb
CHANGED
@@ -14,12 +14,12 @@ module Huck
|
|
14
14
|
# connection data to talk to AWS
|
15
15
|
def verify_config
|
16
16
|
if !@config.has_key? 'sqs'
|
17
|
-
raise
|
17
|
+
raise Huck::Error, 'missing sqs config'
|
18
18
|
end
|
19
19
|
['access_key_id', 'secret_access_key', 'region',
|
20
20
|
'queue_name'].each do |key|
|
21
21
|
if !@config['sqs'].has_key? key
|
22
|
-
raise
|
22
|
+
raise Huck::Error, "missing sqs config: #{key}"
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
data/lib/huck/sender.rb
CHANGED
@@ -17,7 +17,7 @@ module Huck
|
|
17
17
|
#
|
18
18
|
def self.factory kwargs = {}
|
19
19
|
name = Huck::getarg kwargs, :name, nil
|
20
|
-
config = Huck::getarg kwargs, :config,
|
20
|
+
config = Huck::getarg kwargs, :config, {}
|
21
21
|
|
22
22
|
name = 'sqs' if name.nil?
|
23
23
|
|
@@ -27,7 +27,7 @@ module Huck
|
|
27
27
|
when 'rabbitmq'
|
28
28
|
s = Senders::RabbitMQSender.new
|
29
29
|
else
|
30
|
-
raise
|
30
|
+
raise Huck::Error, "bad sender: #{name}"
|
31
31
|
end
|
32
32
|
|
33
33
|
s.config = config
|
@@ -14,10 +14,10 @@ module Huck
|
|
14
14
|
# connection data to talk to rabbitmq
|
15
15
|
def verify_config
|
16
16
|
if !@config.has_key? 'rabbitmq'
|
17
|
-
raise
|
17
|
+
raise Huck::Error, 'missing rabbitmq sender config'
|
18
18
|
end
|
19
19
|
if !@config['rabbitmq'].has_key? 'queue_name'
|
20
|
-
raise
|
20
|
+
raise Huck::Error, 'missing rabbitmq sender config: queue_name'
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
data/lib/huck/senders/sqs.rb
CHANGED
@@ -16,10 +16,10 @@ module Huck
|
|
16
16
|
# is set in the configuration.
|
17
17
|
def verify_config
|
18
18
|
if !@config.has_key? 'sqs'
|
19
|
-
raise
|
19
|
+
raise Huck::Error, 'missing sqs sender config'
|
20
20
|
end
|
21
21
|
if !@config['sqs'].has_key? 'queue_name'
|
22
|
-
raise
|
22
|
+
raise Huck::Error, 'missing sqs sender config: queue_name'
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
data/lib/huck/util.rb
CHANGED
@@ -50,7 +50,7 @@ module Huck
|
|
50
50
|
true
|
51
51
|
end
|
52
52
|
|
53
|
-
# Try to load a module, and raise a
|
53
|
+
# Try to load a module, and raise a Huck::Error if it is not
|
54
54
|
# loadable. This is useful for trying to load certain provider
|
55
55
|
# code at runtime without dealing with LoadError.
|
56
56
|
#
|
@@ -60,7 +60,7 @@ module Huck
|
|
60
60
|
#
|
61
61
|
def self.must_load name
|
62
62
|
if !self.try_load name
|
63
|
-
raise
|
63
|
+
raise Huck::Error, "huck: unable to load #{name}"
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
@@ -79,11 +79,11 @@ module Huck
|
|
79
79
|
|
80
80
|
case format
|
81
81
|
when 'json'
|
82
|
-
return JSON.
|
82
|
+
return JSON.generate data
|
83
83
|
when 'yaml'
|
84
84
|
return YAML.dump data
|
85
85
|
else
|
86
|
-
raise
|
86
|
+
raise Huck::Error, "unknown format '#{format}'"
|
87
87
|
end
|
88
88
|
end
|
89
89
|
|
@@ -98,7 +98,7 @@ module Huck
|
|
98
98
|
#
|
99
99
|
def self.parse_providers data
|
100
100
|
if !data.kind_of? Array
|
101
|
-
raise
|
101
|
+
raise Huck::Error, "expected array, got: #{data}"
|
102
102
|
end
|
103
103
|
data.each do |provider|
|
104
104
|
config = Hash.new
|
@@ -108,7 +108,7 @@ module Huck
|
|
108
108
|
elsif provider.kind_of? String
|
109
109
|
name = provider
|
110
110
|
else
|
111
|
-
raise
|
111
|
+
raise Huck::Error, "expected string or hash, got: #{provider}"
|
112
112
|
end
|
113
113
|
yield name, config
|
114
114
|
end
|
data/lib/huck/version.rb
CHANGED
data/spec/huck/util_spec.rb
CHANGED
@@ -31,8 +31,8 @@ describe 'Module Loading' do
|
|
31
31
|
expect{Huck::must_load 'yaml'}.not_to raise_error
|
32
32
|
end
|
33
33
|
|
34
|
-
it 'should raise a
|
35
|
-
expect{Huck::must_load 'nonexistent'}.to raise_error(
|
34
|
+
it 'should raise a Huck::Error when module cannot be loaded' do
|
35
|
+
expect{Huck::must_load 'nonexistent'}.to raise_error(Huck::Error)
|
36
36
|
end
|
37
37
|
|
38
38
|
end
|
@@ -41,7 +41,7 @@ describe 'Data Serialization' do
|
|
41
41
|
input = {'a' => 'b'}
|
42
42
|
|
43
43
|
it 'should serialize to json' do
|
44
|
-
output = JSON.
|
44
|
+
output = JSON.generate input
|
45
45
|
expect(Huck::serialize(input, :format => 'json')).to eq(output)
|
46
46
|
end
|
47
47
|
|
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.
|
4
|
+
version: 0.3.5
|
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-
|
11
|
+
date: 2014-07-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -129,40 +129,42 @@ executables:
|
|
129
129
|
extensions: []
|
130
130
|
extra_rdoc_files: []
|
131
131
|
files:
|
132
|
-
-
|
133
|
-
- lib/huck/
|
132
|
+
- bin/huck
|
133
|
+
- lib/huck/error.rb
|
134
|
+
- lib/huck/generator.rb
|
134
135
|
- lib/huck/generators/basic.rb
|
135
136
|
- lib/huck/generators/exec.rb
|
137
|
+
- lib/huck/generators/facter.rb
|
136
138
|
- lib/huck/generators/file.rb
|
137
|
-
- lib/huck/
|
138
|
-
- lib/huck/
|
139
|
+
- lib/huck/generators/ohai.rb
|
140
|
+
- lib/huck/generators/stdin.rb
|
141
|
+
- lib/huck/handler.rb
|
142
|
+
- lib/huck/handlers/echo.rb
|
143
|
+
- lib/huck/handlers/exec.rb
|
139
144
|
- lib/huck/receiver.rb
|
145
|
+
- lib/huck/receivers/rabbitmq.rb
|
146
|
+
- lib/huck/receivers/sqs.rb
|
140
147
|
- lib/huck/sender.rb
|
148
|
+
- lib/huck/senders/rabbitmq.rb
|
149
|
+
- lib/huck/senders/sqs.rb
|
141
150
|
- 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
|
147
151
|
- lib/huck/version.rb
|
148
|
-
- lib/huck/handler.rb
|
149
152
|
- lib/huck.rb
|
150
|
-
-
|
151
|
-
- spec/huck/generators/facter_spec.rb
|
153
|
+
- spec/huck/generator_spec.rb
|
152
154
|
- spec/huck/generators/basic_spec.rb
|
153
155
|
- spec/huck/generators/exec_spec.rb
|
156
|
+
- spec/huck/generators/facter_spec.rb
|
154
157
|
- spec/huck/generators/file_spec.rb
|
155
158
|
- spec/huck/generators/ohai_spec.rb
|
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
159
|
- spec/huck/handler_spec.rb
|
162
|
-
- spec/huck/receivers/sqs_spec.rb
|
163
|
-
- spec/huck/generator_spec.rb
|
164
160
|
- spec/huck/handlers/echo_spec.rb
|
165
161
|
- spec/huck/handlers/exec_spec.rb
|
162
|
+
- spec/huck/huck_spec.rb
|
163
|
+
- spec/huck/receiver_spec.rb
|
164
|
+
- spec/huck/receivers/sqs_spec.rb
|
165
|
+
- spec/huck/sender_spec.rb
|
166
|
+
- spec/huck/senders/sqs_spec.rb
|
167
|
+
- spec/huck/util_spec.rb
|
166
168
|
- spec/spec_helper.rb
|
167
169
|
homepage: https://github.com/ryanuber/huck
|
168
170
|
licenses:
|
@@ -184,24 +186,24 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
184
186
|
version: '0'
|
185
187
|
requirements: []
|
186
188
|
rubyforge_project:
|
187
|
-
rubygems_version: 2.
|
189
|
+
rubygems_version: 2.0.14
|
188
190
|
signing_key:
|
189
191
|
specification_version: 4
|
190
192
|
summary: Information sharing framework
|
191
193
|
test_files:
|
192
|
-
- spec/huck/
|
194
|
+
- spec/huck/generator_spec.rb
|
193
195
|
- spec/huck/generators/basic_spec.rb
|
194
196
|
- spec/huck/generators/exec_spec.rb
|
197
|
+
- spec/huck/generators/facter_spec.rb
|
195
198
|
- spec/huck/generators/file_spec.rb
|
196
199
|
- spec/huck/generators/ohai_spec.rb
|
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
200
|
- spec/huck/handler_spec.rb
|
203
|
-
- spec/huck/receivers/sqs_spec.rb
|
204
|
-
- spec/huck/generator_spec.rb
|
205
201
|
- spec/huck/handlers/echo_spec.rb
|
206
202
|
- spec/huck/handlers/exec_spec.rb
|
203
|
+
- spec/huck/huck_spec.rb
|
204
|
+
- spec/huck/receiver_spec.rb
|
205
|
+
- spec/huck/receivers/sqs_spec.rb
|
206
|
+
- spec/huck/sender_spec.rb
|
207
|
+
- spec/huck/senders/sqs_spec.rb
|
208
|
+
- spec/huck/util_spec.rb
|
207
209
|
- spec/spec_helper.rb
|