henry-container 0.1.75 → 0.1.76

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b9cdcae634f50b4e785366b020a81c6a43552da1
4
- data.tar.gz: ade65cbc9bbad58c8bf126e36070cd3458f20862
3
+ metadata.gz: 485d02fc0e6b00e2c0709864531d62d8200e939b
4
+ data.tar.gz: b742c2a83e50cf7664ef30775ec2810c9d4f6ee3
5
5
  SHA512:
6
- metadata.gz: db5f7140670d5847098405afdaa8f65192805408fe181e75d86fb356a591cdccb173da437bbaafe566f59c6544a97dbea35f9a993c4b18f931f1717df61b6975
7
- data.tar.gz: f5165c54faa153a687b505779e1697924590b3124878d80f8542a8619be37ae4cc9a73f871429267134caf7039fe71cd714e0a04999a7974b211314c52f84b44
6
+ metadata.gz: a4756483e0a82b74f95e85e295756efbf71d11f90ec749c21f98281e1e8804ad7a5769180850eee8e0c909521c4ed7c5ee545c3179e1ef5d9c01a63883177d0d
7
+ data.tar.gz: 1d39f13585bbc8d6d2f7cd559cb762949817994c3be7cc806a31d20ea9ea7c552816f5f1b85601ef6090e9347e09e9b2de14c266e9f157ffafca2dd56d2f1ec2
@@ -3,7 +3,7 @@ module Henry
3
3
  class Container
4
4
 
5
5
  # Current Gem version
6
- VERSION = ENV['gem_version'] || '0.1.75'
6
+ VERSION = ENV['gem_version'] || '0.1.76'
7
7
 
8
8
  end
9
9
 
@@ -11,6 +11,7 @@ require_relative 'config'
11
11
  require_relative 'email_client'
12
12
  require_relative 'task'
13
13
  require_relative 'execution'
14
+ require_relative 'execution_service'
14
15
  require_relative 'input'
15
16
  require_relative 'logger'
16
17
  require_relative 'logger_service'
@@ -3,6 +3,8 @@ require 'fileutils'
3
3
  require 'json'
4
4
  require 'colorize'
5
5
 
6
+ require 'henry/config'
7
+ require 'henry/execution'
6
8
  require 'henry/input'
7
9
  require 'henry/logger'
8
10
  require 'henry/logger_service'
@@ -29,9 +31,9 @@ module Henry
29
31
  @@params ||= Input.import!.params
30
32
  end
31
33
 
32
- # Gets the Task Logger instance vis DBr.
34
+ # Gets the Task Logger instance via DBr.
33
35
  #
34
- # @return [Logger] the Task Logger instance.
36
+ # @return [Logger] the Task Logger.
35
37
  def self.logger
36
38
  if ENV['DRB_LOGGER_URI']
37
39
  return @@logger ||= DRbObject.new_with_uri(ENV['DRB_LOGGER_URI'])
@@ -39,6 +41,18 @@ module Henry
39
41
 
40
42
  return @@logger ||= Logger.new
41
43
  end
44
+
45
+ # Gets the Task Execution instance via DBr.
46
+ #
47
+ # @return [Execution] the Task Execution instance.
48
+ def self.execution
49
+ return @@execution ||= DRbObject.new_with_uri(ENV['DRB_EXECUTION_URI'])
50
+ end
51
+
52
+ def self.warning!(message = nil)
53
+ self.execution.code = 'WARNING'
54
+ self.execution.message = message || 'WARNING'
55
+ end
42
56
 
43
57
  # Copies the file from the given path to the default export directory
44
58
  #
@@ -0,0 +1,36 @@
1
+ module Henry
2
+
3
+ class ExecutionService
4
+
5
+ # Uri where the service will be listening.
6
+ DRB_URI = 'druby://localhost'
7
+
8
+ # Range of ports to be used.
9
+ DRB_PORTS = (8800..9000)
10
+
11
+ # Starts the result service sharing the given result.
12
+ #
13
+ # @param [Execution] execution the Execution to be shared.
14
+ def self.start(execution)
15
+ 10.times do
16
+ begin
17
+ drb_uri = "#{DRB_URI}:#{rand(DRB_PORTS)}"
18
+ DRb.start_service(drb_uri, execution)
19
+ ENV['DRB_EXECUTION_URI'] = drb_uri
20
+ rescue Errno::EADDRINUSE
21
+ end
22
+ end
23
+
24
+ return false
25
+ end
26
+
27
+ # Stops the result service.
28
+ def self.stop
29
+ DRb.stop_service
30
+ rescue
31
+ return false
32
+ end
33
+
34
+ end
35
+
36
+ end
@@ -79,7 +79,7 @@ module Henry
79
79
  # @param [Hash] extended_options set of extended options.
80
80
  # @return [String]
81
81
  def custom_options(extended_options={})
82
- "#{self.format_options} #{self.tags_options(extended_options)} #{self.report_options} #{self.rerun_options} #{self.misc_options}"
82
+ "#{self.format_options} #{self.tags_options(extended_options)} #{self.report_options(extended_options)} #{self.rerun_options} #{self.misc_options}"
83
83
  end
84
84
 
85
85
  # Returns the miscellaneous cucumber_opts.
@@ -123,7 +123,7 @@ module Henry
123
123
  # Returns the cucumber_opts related with report paaths and formats.
124
124
  #
125
125
  # @return [String]
126
- def report_options
126
+ def report_options(extended_options={})
127
127
  self.generated_reports = []
128
128
  self.report_recipients = []
129
129
 
@@ -132,7 +132,7 @@ module Henry
132
132
  self.data.reports.collect do |report_options|
133
133
  report_options['name'] ||= "${DATE}_${TASK_NAME}.#{report_options['format']}"
134
134
 
135
- self.generated_reports << self.report_file_path(report_options['format'], report_options['name'])
135
+ self.generated_reports << self.report_file_path(report_options['format'], report_options['name'], extended_options)
136
136
  self.report_recipients += (report_options['recipients'] || [])
137
137
 
138
138
  FileUtils.mkdir_p(self.reports_dir(report_options['format']))
@@ -166,16 +166,16 @@ module Henry
166
166
  # @param [String] format the rspec formatter name.
167
167
  # @param [String] file_name the report file name template.
168
168
  # @return [String] the report file path.
169
- def report_file_path(format, file_name)
170
- "#{self.reports_dir(format)}/#{self.report_file_name(file_name)}"
169
+ def report_file_path(format, file_name, extended_options={})
170
+ "#{self.reports_dir(format)}/#{self.report_file_name(file_name,extended_options)}"
171
171
  end
172
172
 
173
173
  # Interpolates and returns the report file name.
174
174
  #
175
175
  # @param [String] file_name the report file name.
176
176
  # @returns [String] the report file name.
177
- def report_file_name(file_name)
178
- file_name.gsub(/\${[A-Z_]+}/, '${TASK_NAME}' => self.name, '${DATE}' => DateTime.now.strftime(TIME_FORMAT)).gsub(' ', '_')
177
+ def report_file_name(file_name,extended_options={})
178
+ file_name.gsub(/\${[A-Z_]+}/, '${TASK_NAME}' => self.name, '${DATE}' => DateTime.now.strftime(TIME_FORMAT), '${TAGS}' => ((self.data.options['tags']||[])+(extended_options['tags']||[])).join(' ')).gsub(' ', '_')
179
179
  end
180
180
 
181
181
  # Interpolates and returns the reports directory for the given format.
@@ -23,8 +23,8 @@ module Henry
23
23
  begin
24
24
  Rake.application[self.application_name].invoke
25
25
 
26
- self.execution.code = 'OK'
27
- self.execution.message = 'OK'
26
+ self.execution.code ||= 'OK'
27
+ self.execution.message ||= 'OK'
28
28
  self.execution.output = File.open(self.out_path, 'r').read
29
29
  self.execution.log = self.logger.log_as_hash
30
30
 
@@ -75,7 +75,7 @@ module Henry
75
75
  #
76
76
  # @return [String]
77
77
  def custom_options(extended_options={})
78
- "#{self.format_options} #{self.tags_options(extended_options)} #{self.report_options}"
78
+ "#{self.format_options} #{self.tags_options(extended_options)} #{self.report_options(extended_options)}"
79
79
  end
80
80
 
81
81
  # Returns the default rspec_opts.
@@ -107,7 +107,7 @@ module Henry
107
107
  # Returns the rspec_opts related with report paaths and formats.
108
108
  #
109
109
  # @return [String]
110
- def report_options
110
+ def report_options(extended_options={})
111
111
  self.generated_reports = []
112
112
  self.report_recipients = []
113
113
 
@@ -116,7 +116,7 @@ module Henry
116
116
  self.data.reports.collect do |report_options|
117
117
  report_options['name'] ||= "${DATE}_${TASK_NAME}.#{report_options['format']}"
118
118
 
119
- self.generated_reports << self.report_file_path(report_options['format'], report_options['name'])
119
+ self.generated_reports << self.report_file_path(report_options['format'], report_options['name'], extended_options)
120
120
  self.report_recipients += (report_options['recipients'] || [])
121
121
 
122
122
  FileUtils.mkdir_p(self.reports_dir(report_options['format']))
@@ -130,16 +130,16 @@ module Henry
130
130
  # @param [String] format the rspec formatter name.
131
131
  # @param [String] file_name the report file name template.
132
132
  # @return [String] the report file path.
133
- def report_file_path(format, file_name)
134
- "#{self.reports_dir(format)}/#{self.report_file_name(file_name)}"
133
+ def report_file_path(format, file_name, extended_options={})
134
+ "#{self.reports_dir(format)}/#{self.report_file_name(file_name,extended_options)}"
135
135
  end
136
136
 
137
137
  # Interpolates and returns the report file name.
138
138
  #
139
139
  # @param [String] file_name the report file name.
140
140
  # @returns [String] the report file name.
141
- def report_file_name(file_name)
142
- file_name.gsub(/\${[A-Z_]+}/, '${TASK_NAME}' => self.name, '${DATE}' => DateTime.now.strftime(TIME_FORMAT)).gsub(' ', '_')
141
+ def report_file_name(file_name,extended_options={})
142
+ file_name.gsub(/\${[A-Z_]+}/, '${TASK_NAME}' => self.name, '${DATE}' => DateTime.now.strftime(TIME_FORMAT), '${TAGS}' => ((self.data.options['tags']||[])+(extended_options['tags']||[])).join(' ')).gsub(' ', '_')
143
143
  end
144
144
 
145
145
  # Interpolates and returns the reports directory for the given format.
data/lib/henry/task.rb CHANGED
@@ -30,11 +30,13 @@ module Henry
30
30
  # Code to be run just before the execution
31
31
  def before_execute
32
32
  LoggerService.start(self.logger)
33
+ ExecutionService.start(self.execution)
33
34
  end
34
35
 
35
36
  # Code to be run justafter the execution
36
37
  def after_execute
37
38
  LoggerService.stop
39
+ ExecutionService.stop
38
40
  end
39
41
 
40
42
  # Returns the json ready hash report of the task execution.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: henry-container
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.75
4
+ version: 0.1.76
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Decurnex
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-21 00:00:00.000000000 Z
11
+ date: 2014-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -161,6 +161,7 @@ files:
161
161
  - lib/henry/email_client.rb
162
162
  - lib/henry/environment.rb
163
163
  - lib/henry/execution.rb
164
+ - lib/henry/execution_service.rb
164
165
  - lib/henry/input.rb
165
166
  - lib/henry/logger.rb
166
167
  - lib/henry/logger_service.rb
@@ -174,7 +175,6 @@ files:
174
175
  - spec/support/files/email.file
175
176
  - spec/support/spec_helper.rb
176
177
  - templates/errors/json_parse_error.json
177
- - tt.rb
178
178
  homepage: http://henry.despegar.it
179
179
  licenses: []
180
180
  metadata: {}
data/tt.rb DELETED
@@ -1,5 +0,0 @@
1
- require 'git'
2
-
3
- repo = Git.open('.')
4
- GIT_SEQUENCE_EDITOR="true"
5
- puts repo.add_tag('hola', {:d=> true})