huck 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/huck +3 -3
- data/lib/huck/version.rb +1 -1
- data/lib/huck.rb +15 -7
- data/spec/huck/util_spec.rb +37 -0
- data/spec/spec_helper.rb +17 -0
- metadata +16 -14
- data/spec/huck/huck_spec.rb +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab41afdccbfa3acca2682260a3f767f81df16c98
|
4
|
+
data.tar.gz: 10c43b6f14370e182b92354ab802f564d292262b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ae7aca31731c943519ec239dad61b262ee2ee7a4641a66b37b39748f544730a4fb3395bd83e008c200329a37fda09bd82420902a2bb2fd0e88770fec4efcb410
|
7
|
+
data.tar.gz: 461a94e2f90cb3ecd96594065d20bcbad9f96552fadbbb58fcc1e8ad28751ec663cfb95a69d67991ac29bd8e3612efd12ab8447be4676218fea2e08902c50894
|
data/bin/huck
CHANGED
@@ -6,15 +6,15 @@ begin
|
|
6
6
|
options = Hash.new
|
7
7
|
OptionParser.new do |opts|
|
8
8
|
opts.on '-c [path]' do |v|
|
9
|
-
options[:
|
9
|
+
options[:config_file] = v
|
10
10
|
end
|
11
11
|
end.parse!
|
12
12
|
|
13
13
|
case ARGV[0]
|
14
14
|
when 'run'
|
15
|
-
Huck.run :
|
15
|
+
Huck.run :config_file => options[:config_file]
|
16
16
|
when 'serve'
|
17
|
-
Huck.serve :
|
17
|
+
Huck.serve :config_file => options[:config_file]
|
18
18
|
else
|
19
19
|
puts <<EOF
|
20
20
|
Usage: huck <run|serve>
|
data/lib/huck/version.rb
CHANGED
data/lib/huck.rb
CHANGED
@@ -30,8 +30,11 @@ module Huck
|
|
30
30
|
# The name of the sender to use
|
31
31
|
#
|
32
32
|
def self.run kwargs = {}
|
33
|
-
|
34
|
-
|
33
|
+
config = Huck::getarg kwargs, :config, nil
|
34
|
+
if config.nil?
|
35
|
+
conf_file = Huck::getarg kwargs, :config_file, nil
|
36
|
+
config = Huck::config :path => conf_file
|
37
|
+
end
|
35
38
|
|
36
39
|
if config.has_key? 'generator'
|
37
40
|
gen_name = config['generator']
|
@@ -50,15 +53,20 @@ module Huck
|
|
50
53
|
s.send g.dump
|
51
54
|
end
|
52
55
|
|
53
|
-
# Main method to receive messages from a Huck client
|
56
|
+
# Main method to receive messages from a Huck client. If a block is given, the
|
57
|
+
# block will be used as the handler code. Otherwise, the configured handler
|
58
|
+
# or default handler will be used.
|
54
59
|
#
|
55
60
|
# == Parameters:
|
56
61
|
# receiver::
|
57
62
|
# The receiver to use (default=sqs)
|
58
63
|
#
|
59
64
|
def self.serve kwargs = {}
|
60
|
-
|
61
|
-
|
65
|
+
config = Huck::getarg kwargs, :config, nil
|
66
|
+
if config.nil?
|
67
|
+
conf_file = Huck::getarg kwargs, :config_file, nil
|
68
|
+
config = Huck::config :path => conf_file
|
69
|
+
end
|
62
70
|
|
63
71
|
if config.has_key? 'handler'
|
64
72
|
hand_name = config['handler']
|
@@ -76,9 +84,9 @@ module Huck
|
|
76
84
|
|
77
85
|
begin
|
78
86
|
r.receive do |msg|
|
79
|
-
h.handle
|
87
|
+
block_given? ? yield(msg) : h.handle(msg)
|
80
88
|
end
|
81
|
-
rescue Interrupt, SystemExit
|
89
|
+
rescue Interrupt, SystemExit, IRB::Abort
|
82
90
|
return
|
83
91
|
end
|
84
92
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Huck Configuration' do
|
4
|
+
it 'should read the proper default config file' do
|
5
|
+
path = File.join Dir.home, 'huck.conf'
|
6
|
+
if !File.exist? path
|
7
|
+
f = File.open path, 'w'
|
8
|
+
f.write '{"test": "config"}'
|
9
|
+
f.close
|
10
|
+
end
|
11
|
+
expect(Huck.config).not_to be_empty
|
12
|
+
File.delete f.path if f
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should accept an alternate config file path' do
|
16
|
+
file = mktempfile "test: config\n"
|
17
|
+
expect(Huck.config :path => file).to eq({'test' => 'config'})
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe 'Module Loading' do
|
22
|
+
it 'should return true when module is loaded' do
|
23
|
+
expect(Huck::try_load 'yaml').to be true
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should return false when module cannot be loaded' do
|
27
|
+
expect(Huck::try_load 'nonexistent').to be false
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should not raise when module is loaded' do
|
31
|
+
expect{Huck::must_load 'yaml'}.not_to raise_error
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should raise a RuntimeError when module cannot be loaded' do
|
35
|
+
expect{Huck::must_load 'nonexistent'}.to raise_error(RuntimeError)
|
36
|
+
end
|
37
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'simplecov'
|
2
|
+
require 'tempfile'
|
3
|
+
require 'tmpdir'
|
4
|
+
|
5
|
+
SimpleCov.formatter = SimpleCov::Formatter::HTMLFormatter
|
6
|
+
SimpleCov.start do
|
7
|
+
add_filter '/spec/'
|
8
|
+
end
|
9
|
+
|
10
|
+
require 'huck'
|
11
|
+
|
12
|
+
def mktempfile content
|
13
|
+
f = Tempfile.new 'huck'
|
14
|
+
f.write content
|
15
|
+
f.close
|
16
|
+
f.path
|
17
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: huck
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Uber
|
@@ -59,24 +59,25 @@ executables:
|
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
-
-
|
63
|
-
- lib/huck/
|
62
|
+
- bin/huck
|
63
|
+
- lib/huck/generator.rb
|
64
64
|
- lib/huck/generators/basic.rb
|
65
|
-
- lib/huck/generators/
|
65
|
+
- lib/huck/generators/facter.rb
|
66
66
|
- lib/huck/generators/json.rb
|
67
|
-
- lib/huck/
|
67
|
+
- lib/huck/generators/ohai.rb
|
68
|
+
- lib/huck/generators/yaml.rb
|
69
|
+
- lib/huck/handler.rb
|
70
|
+
- lib/huck/handlers/echo.rb
|
71
|
+
- lib/huck/handlers/exec.rb
|
68
72
|
- lib/huck/receiver.rb
|
73
|
+
- lib/huck/receivers/sqs.rb
|
69
74
|
- lib/huck/sender.rb
|
75
|
+
- lib/huck/senders/sqs.rb
|
70
76
|
- lib/huck/util.rb
|
71
|
-
- lib/huck/generator.rb
|
72
|
-
- lib/huck/receivers/sqs.rb
|
73
|
-
- lib/huck/handlers/exec.rb
|
74
|
-
- lib/huck/handlers/echo.rb
|
75
77
|
- lib/huck/version.rb
|
76
|
-
- lib/huck/handler.rb
|
77
78
|
- lib/huck.rb
|
78
|
-
-
|
79
|
-
- spec/
|
79
|
+
- spec/huck/util_spec.rb
|
80
|
+
- spec/spec_helper.rb
|
80
81
|
homepage: https://github.com/ryanuber/huck
|
81
82
|
licenses:
|
82
83
|
- MIT
|
@@ -97,9 +98,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
98
|
version: '0'
|
98
99
|
requirements: []
|
99
100
|
rubyforge_project:
|
100
|
-
rubygems_version: 2.
|
101
|
+
rubygems_version: 2.0.14
|
101
102
|
signing_key:
|
102
103
|
specification_version: 4
|
103
104
|
summary: Information sharing framework
|
104
105
|
test_files:
|
105
|
-
- spec/huck/
|
106
|
+
- spec/huck/util_spec.rb
|
107
|
+
- spec/spec_helper.rb
|