henry-container 0.0.2 → 0.0.3
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.
- data/.gitignore +1 -0
- data/bin/henry-ruby-container +17 -1
- data/henry-container.gemspec +2 -0
- data/lib/henry/container/version.rb +1 -1
- data/lib/henry/container.rb +22 -6
- metadata +34 -2
data/.gitignore
CHANGED
data/bin/henry-ruby-container
CHANGED
@@ -1,5 +1,21 @@
|
|
1
1
|
#!/bin/ruby
|
2
2
|
|
3
3
|
require 'henry'
|
4
|
+
require 'trollop'
|
4
5
|
|
5
|
-
|
6
|
+
opts = Trollop::options do
|
7
|
+
version "herny-ruby-container #{Henry::Container::VERSION} - 2012 John Henry Eden"
|
8
|
+
banner <<-BANNER
|
9
|
+
The Ruby Container for Henry.
|
10
|
+
|
11
|
+
Usage:
|
12
|
+
execute [options]
|
13
|
+
|
14
|
+
where [options] are:
|
15
|
+
BANNER
|
16
|
+
|
17
|
+
opt :out, "Custom path where the execution results will be written.", :default => 'out.henry'
|
18
|
+
opt :in, "Custom path to the execution params file.", :default => 'in.henry'
|
19
|
+
end
|
20
|
+
|
21
|
+
Henry::Container.new(opts).execute
|
data/henry-container.gemspec
CHANGED
data/lib/henry/container.rb
CHANGED
@@ -4,6 +4,7 @@ require 'yaml'
|
|
4
4
|
require 'ostruct'
|
5
5
|
require 'json'
|
6
6
|
require 'rake'
|
7
|
+
require 'colorize'
|
7
8
|
|
8
9
|
module Henry
|
9
10
|
|
@@ -11,11 +12,14 @@ module Henry
|
|
11
12
|
class Container
|
12
13
|
|
13
14
|
# Nothing to be done here yet...
|
14
|
-
def initialize
|
15
|
+
def initialize(opts)
|
16
|
+
@opts = opts
|
15
17
|
end
|
16
18
|
|
17
19
|
# Executes the loaded tasks and stores their results.
|
18
20
|
def execute
|
21
|
+
self.before_execution
|
22
|
+
|
19
23
|
self.tasks_results = self.tasks.collect do |task|
|
20
24
|
task.execute(self.task_params(task.name))
|
21
25
|
end
|
@@ -42,11 +46,23 @@ module Henry
|
|
42
46
|
}
|
43
47
|
}
|
44
48
|
|
45
|
-
#
|
49
|
+
# Executes required validations before execution.
|
50
|
+
def before_execution
|
51
|
+
unless File.exists?(@opts[:in])
|
52
|
+
abort "#{"'#{@opts[:in]}' file does not exist.".red}\n #{'*'.red} If running isolated make sure to create it first.\n #{'*'.red} If running from Henry contact us at henry@despegar.it."
|
53
|
+
end
|
54
|
+
|
55
|
+
unless File.exists?('henry-context.yml')
|
56
|
+
abort "'henry-context.yml' file does not exist. You need it in order to execute a Henry compatible test.".red
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
# Loads and parses the @opts[:in] params.
|
46
62
|
#
|
47
63
|
# @return [{String => String}] the execution params.
|
48
64
|
def params
|
49
|
-
@params ||= JSON.parse(File.read(
|
65
|
+
@params ||= JSON.parse(File.read(@opts[:in]))
|
50
66
|
end
|
51
67
|
|
52
68
|
# Returns the default params.
|
@@ -63,7 +79,7 @@ module Henry
|
|
63
79
|
# @param [String] task_name the target Task name.
|
64
80
|
# @return [Hash] the Task custom params.
|
65
81
|
def task_params(task_name)
|
66
|
-
self.default_params.merge(self.params[task_name])
|
82
|
+
self.default_params.merge(self.params[task_name] || {})
|
67
83
|
end
|
68
84
|
|
69
85
|
# Load and parses the henry-context.yml params.
|
@@ -110,9 +126,9 @@ module Henry
|
|
110
126
|
end
|
111
127
|
end
|
112
128
|
|
113
|
-
# Writes into out
|
129
|
+
# Writes into @opts[:out] the execution results.
|
114
130
|
def dump_results
|
115
|
-
File.open(
|
131
|
+
File.open(@opts[:out], 'w') { |f| f.write(results.to_json) }
|
116
132
|
end
|
117
133
|
|
118
134
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: henry-container
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -43,6 +43,38 @@ dependencies:
|
|
43
43
|
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: colorize
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: trollop
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
46
78
|
- !ruby/object:Gem::Dependency
|
47
79
|
name: yard
|
48
80
|
requirement: !ruby/object:Gem::Requirement
|