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 CHANGED
@@ -1 +1,2 @@
1
1
  Gemfile.lock
2
+ vendor
@@ -1,5 +1,21 @@
1
1
  #!/bin/ruby
2
2
 
3
3
  require 'henry'
4
+ require 'trollop'
4
5
 
5
- Henry::Container.new.execute
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
@@ -17,6 +17,8 @@ Gem::Specification.new do |gem|
17
17
 
18
18
  gem.add_dependency('rake')
19
19
  gem.add_dependency('cucumber')
20
+ gem.add_dependency('colorize')
21
+ gem.add_dependency('trollop')
20
22
 
21
23
  gem.add_development_dependency('yard')
22
24
  end
@@ -3,7 +3,7 @@ module Henry
3
3
  class Container
4
4
 
5
5
  # Current Gem version
6
- VERSION = '0.0.2'
6
+ VERSION = '0.0.3'
7
7
 
8
8
  end
9
9
 
@@ -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
- # Loads and parses the in.henry params.
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('in.henry'))
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.henry the execution results.
129
+ # Writes into @opts[:out] the execution results.
114
130
  def dump_results
115
- File.open('out.henry', 'w') { |f| f.write(results.to_json) }
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.2
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-02 00:00:00.000000000 Z
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