report_builder 1.4 → 1.9

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
- SHA1:
3
- metadata.gz: 35b353893ae02902dd4b6c8d07a7f38d66ab57c6
4
- data.tar.gz: fab6f1b0dad20645c4e8f7f68d43761da94521c6
2
+ SHA256:
3
+ metadata.gz: 0aa1ff8b4caff189599fe6e76c52a49c43dbdbd47d8e099ab9aa81055d0703cd
4
+ data.tar.gz: 3e1fbfed2f713b8319b1fa01e3a9ab9d3fabdf80a48e00c64d8fd7c48019c614
5
5
  SHA512:
6
- metadata.gz: 4403905db936a5cd577738d24cfd7553f4fa9ab458226d4f0d56d5f4bf8bcbacf31ea14f0a962360a23f68e670c8df9ca548fa6aea124bca4d62fcbba212708c
7
- data.tar.gz: 4bb0c1e121f3935bced443fb09903a6a2f6f61893e80497c02424ece1224569af13facb623e371c1f7bc1fdc5a1b654f39aa7fc784e541de9df3acf081b1ca55
6
+ metadata.gz: 57bff744c235ba470d960f116eb5d28883e224d0d72910012e5264e24ae0c51e68618366255746bc07803aa7d934b55667e4b3df9bc6c1b9a66b523d171c4cef
7
+ data.tar.gz: b9cf16c68a1fd6e92c97f037f2dd55ccbb321fda0574e5fef651702982939758c786d8f60da6f5d884ed9d682fd17327716eedf10a50d6c5ea13ba266305f3dc
@@ -3,7 +3,41 @@ All notable changes to this project will be documented in this file.
3
3
 
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
5
 
6
- ## [Unreleased](https://github.com/rajatthareja/ReportBuilder/compare/v1.4...master)
6
+ ## [Unreleased](https://github.com/rajatthareja/ReportBuilder/compare/v1.9...master)
7
+
8
+ ## [1.9](https://github.com/rajatthareja/ReportBuilder/compare/v1.8...v1.9) - 2020-06-06
9
+ ### Changed
10
+ - Json 1.8.1 to 2.3.0
11
+ - Include last fail run instead of first
12
+ - [Few other small changes](https://github.com/rajatthareja/ReportBuilder/compare/v1.8...v1.9)
13
+
14
+ ## [1.8](https://github.com/rajatthareja/ReportBuilder/compare/v1.7...v1.8) - 2018-09-02
15
+ ### Fixed
16
+ - Before hook embedding
17
+ - Scenario example with tags
18
+ - HTML embedding
19
+
20
+ ## [1.7](https://github.com/rajatthareja/ReportBuilder/compare/v1.6...v1.7) - 2018-08-07
21
+ ### Changed
22
+ - Required Ruby Version from (>= 1.9.1) to (>= 1.9.3)
23
+ ### Fixed
24
+ - Image - ERB Encoding Compatibility Error
25
+ ### Added
26
+ - Support for step doc string
27
+
28
+ ## [1.6](https://github.com/rajatthareja/ReportBuilder/compare/v1.5...v1.6) - 2018-03-29
29
+ ### Changed
30
+ - Removed duplicate flaky scenarios
31
+ ### Added
32
+ - Configuration Options Setter and Getter
33
+
34
+ ## [1.5](https://github.com/rajatthareja/ReportBuilder/compare/v1.4...v1.5) - 2018-03-03
35
+ ### Added
36
+ - Voice Commands
37
+ - Tabs name
38
+ - Color option
39
+ ### Fixed
40
+ - js and css cli option
7
41
 
8
42
  ## [1.4](https://github.com/rajatthareja/ReportBuilder/compare/v1.3...v1.4) - 2017-10-29
9
43
  ### Fixed
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # ReportBuilder
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/report_builder.svg)](https://badge.fury.io/rb/report_builder)
3
+ [![Gem Version](https://img.shields.io/gem/v/report_builder.svg)](https://badge.fury.io/rb/report_builder)
4
4
  [![Build status](https://travis-ci.org/rajatthareja/ReportBuilder.svg?branch=master)](https://travis-ci.org/rajatthareja/ReportBuilder)
5
5
  [![Windows Build status](https://ci.appveyor.com/api/projects/status/s5jx2ji3wdg294u6/branch/master?svg=true)](https://ci.appveyor.com/project/rajatthareja/reportbuilder)
6
6
  [![Join the chat at https://gitter.im/rajatthareja/ReportBuilder](https://badges.gitter.im/rajatthareja/ReportBuilder.svg)](https://gitter.im/rajatthareja/ReportBuilder?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
@@ -9,9 +9,9 @@ Ruby gem to merge Cucumber JSON reports and build mobile-friendly HTML Test Repo
9
9
 
10
10
  ## Sample Reports
11
11
 
12
- **[Features Report](http://reportbuilder.rajatthareja.com/sample/report.html)**
12
+ **[Features Report](https://reportbuilder.rajatthareja.com/sample/report.html)**
13
13
 
14
- **[Grouped Features Report](http://reportbuilder.rajatthareja.com/sample/group_report.html)**
14
+ **[Grouped Features Report](https://reportbuilder.rajatthareja.com/sample/group_report.html)**
15
15
 
16
16
  ## Installation
17
17
 
@@ -24,7 +24,7 @@ gem install report_builder
24
24
  ## Information
25
25
 
26
26
  * RDoc documentation [available on RubyDoc.info](http://www.rubydoc.info/gems/report_builder)
27
- * Source code [available on GitHub](http://github.com/rajatthareja/ReportBuilder)
27
+ * Source code [available on GitHub](https://github.com/rajatthareja/ReportBuilder)
28
28
 
29
29
  ## Usage
30
30
 
@@ -42,9 +42,11 @@ gem install report_builder
42
42
  | report_types | [Array] | [:html] | :json, :html, :retry (output file types) |
43
43
  | report_title | [String] | 'Test Results' | report and html title |
44
44
  | include_images | [Boolean] | true | true / false (If false, the size of HTML report is reduced by excluding embedded images) |
45
+ | voice_commands | [Boolean] | false | true / false (Enable voice commands for easy navigation and search) |
45
46
  | additional_info | [Hash] | {} | additional info for report summary |
46
47
  | additional_css | [String] | nil | additional CSS string or CSS file path or CSS file url for customizing html report |
47
48
  | additional_js | [String] | nil | additional JS string or JS file path or JS file url for customizing html report |
49
+ | color | [String] | brown | report color, Ex: indigo, cyan, purple, grey, lime etc. |
48
50
 
49
51
  ### Code Examples:
50
52
 
@@ -54,27 +56,48 @@ gem install report_builder
54
56
 
55
57
  # Ex 1:
56
58
  ReportBuilder.configure do |config|
57
- config.json_path = 'cucumber_sample/logs'
59
+ config.input_path = 'results/cucumber_json'
58
60
  config.report_path = 'my_test_report'
59
- config.report_types = [:json, :html]
61
+ config.report_types = [:retry, :html]
60
62
  config.report_title = 'My Test Results'
61
- config.include_images = false
62
63
  config.additional_info = {browser: 'Chrome', environment: 'Stage 5'}
63
64
  end
64
65
 
65
66
  ReportBuilder.build_report
66
67
 
67
68
  # Ex 2:
69
+ ReportBuilder.input_path = 'results/cucumber_json'
70
+ ReportBuilder.report_path = 'my_test_report'
71
+ ReportBuilder.report_types = [:retry, :html]
72
+ ReportBuilder.report_title = 'My Test Results'
73
+ ReportBuilder.additional_info = {Browser: 'Chrome', Environment: 'Stage 5'}
74
+
75
+ ReportBuilder.build_report
76
+
77
+ # Ex 3:
68
78
  options = {
69
- json_path: 'cucumber_sample/logs',
70
- report_path: 'my_test_report',
71
- report_types: ['json', 'html'],
79
+ input_path: 'results/cucumber_json',
80
+ report_path: 'my_test_report',
81
+ report_types: ['retry', 'html'],
72
82
  report_title: 'My Test Results',
73
- include_images: false,
74
- additional_info: {'browser' => 'Chrome', 'environment' => 'Stage 5'}
83
+ additional_info: {'Browser' => 'Chrome', 'Environment' => 'Stage 5'}
75
84
  }
76
85
 
77
86
  ReportBuilder.build_report options
87
+
88
+ # Ex 4:
89
+ ReportBuilder.input_path = 'results/cucumber_json'
90
+
91
+ ReportBuilder.configure do |config|
92
+ config.report_path = 'my_test_report'
93
+ config.report_types = [:json, :html]
94
+ end
95
+
96
+ options = {
97
+ report_title: 'My Test Results'
98
+ }
99
+
100
+ ReportBuilder.build_report options
78
101
 
79
102
  ```
80
103
 
@@ -83,7 +106,7 @@ gem install report_builder
83
106
  ```ruby
84
107
 
85
108
  ReportBuilder.configure do |config|
86
- config.json_path = config.json_path = {
109
+ config.input_path = {
87
110
  'Group A' => ['path/of/json/files/dir1', 'path/of/json/files/dir2'],
88
111
  'Group B' => ['path/of/json/file1', 'path/of/json/file2'],
89
112
  'Group C' => 'path/of/json/files/dir'}
@@ -96,21 +119,23 @@ ReportBuilder.build_report
96
119
 
97
120
  ### CLI Options:
98
121
 
99
- | Option | Values | Explanation |
100
- |---------------------|--------------|------------------------------------------------------------------------------------|
101
- | -s, --source | x,y,z | List of input json path or files |
102
- | -o, --out | [PATH]NAME | Reports path with name without extension |
103
- | --json_out | [PATH]NAME | JSON report path with name without extension |
104
- | --html_out | [PATH]NAME | HTML report path with name without extension |
105
- | --retry_out | [PATH]NAME | Retry report path with name without extension |
106
- | -f, --format | x,y,z | List of report format - html,json,retry |
107
- | --[no-]images | | Reduce HTML report size by excluding embedded images |
108
- | -T, --title | TITLE | Report title |
109
- | -I, --info | a:x,b:y,c:z | List of additional info about test - key:value |
110
- | --css | CSS/PATH/URL | Additional CSS string or CSS file path or CSS file url for customizing html report |
111
- | --js | JS/PATH/URL | Additional JS string or JS file path or JS file url for customizing html report |
112
- | -h, --help | | Show available command line switches |
113
- | -v, --version | | Show gem version |
122
+ | Option | Values | Explanation |
123
+ |-----------------------|--------------|------------------------------------------------------------------------------------|
124
+ | -s, --source | x,y,z | List of input json path or files |
125
+ | -o, --out | [PATH]NAME | Reports path with name without extension |
126
+ | --json_out | [PATH]NAME | JSON report path with name without extension |
127
+ | --html_out | [PATH]NAME | HTML report path with name without extension |
128
+ | --retry_out | [PATH]NAME | Retry report path with name without extension |
129
+ | -f, --format | x,y,z | List of report format - html,json,retry |
130
+ | --[no-]images | | Reduce HTML report size by excluding embedded images |
131
+ | -T, --title | TITLE | Report title |
132
+ | -c, --color | COLOR | Report color |
133
+ | -I, --info | a:x,b:y,c:z | List of additional info about test - key:value |
134
+ | --css | CSS/PATH/URL | Additional CSS string or CSS file path or CSS file url for customizing html report |
135
+ | --js | JS/PATH/URL | Additional JS string or JS file path or JS file url for customizing html report |
136
+ | -vc, --voice_commands | | Enable voice commands for easy navigation and search |
137
+ | -h, --help | | Show available command line switches |
138
+ | -v, --version | | Show gem version |
114
139
 
115
140
  ### CLI Example:
116
141
 
@@ -122,44 +147,34 @@ ReportBuilder.build_report
122
147
 
123
148
  ```
124
149
 
125
- ### Rake Example:
126
-
127
- Add in Rakefile
150
+ ### Hook Example:
128
151
 
129
152
  ```ruby
130
153
 
131
- require 'report_builder'
154
+ require 'report_builder'
132
155
 
133
- desc 'Sample rake task to build report'
134
- task :report_builder, [:json_path, :report_path] do |t, args|
135
- args.with_defaults(:json_path => nil, :report_path => 'test_report')
136
- options = {:json_path => args.json_path, :report_path => args.report_path}
137
- ReportBuilder.build_report options
138
- end
156
+ at_exit do
157
+ ReportBuilder.configure do |config|
158
+ config.input_path = 'results/cucumber_json'
159
+ config.report_path = 'results/report'
160
+ end
161
+ ReportBuilder.build_report
162
+ end
139
163
 
140
164
  ```
141
165
 
142
- Then run rake task report_builder
143
-
144
- ```bash
145
-
146
- rake report_builder
147
- rake report_builder['path/of/json/files/dir']
148
- rake report_builder['path/of/json/files/dir','report_file']
166
+ ### Voice Commands:
167
+ Use voice commands for easy navigation and search
168
+ * show ( overview, features, summary, errors )
169
+ * search { Keywords }
149
170
 
150
- ```
171
+ ## Report Builder Java API
172
+ [Report Builder Java](https://reportbuilderjava.rajatthareja.com)
151
173
 
152
174
  ## Contributing
153
175
 
154
176
  We're open to any contribution. It has to be tested properly though.
155
177
 
156
- ## Collaborators
157
-
158
- * [Rajat Thareja](https://github.com/rajatthareja)
159
- * [Justin Commu](https://github.com/tk8817)
160
- * [Eric Kessler](https://github.com/enkessler)
161
- * [Jeff Morgan](https://github.com/cheezy)
162
-
163
178
  ## License
164
179
 
165
180
  Copyright (c) 2017 [MIT LICENSE](LICENSE)
@@ -3,21 +3,14 @@
3
3
  require 'optparse'
4
4
  require 'report_builder'
5
5
 
6
- options = {
7
- :json_path => nil,
8
- :report_path => 'test_report',
9
- :report_types => [:html],
10
- :report_title => 'Test Results',
11
- :include_images => true,
12
- :additional_info => {}
13
- }
6
+ options = { }
14
7
 
15
8
  opt_parser = OptionParser.new do |opts|
16
9
  opts.banner = "Usage: \n report_builder [options]"
17
10
  opts.separator 'Configuration options:'
18
11
 
19
- opts.on('-s','--source x,y,z', Array, 'List of json path or files') do |list|
20
- options[:json_path] = list
12
+ opts.on('-s', '--source x,y,z', Array, 'List of json path or files') do |list|
13
+ options[:input_path] = list
21
14
  end
22
15
 
23
16
  opts.on('-o', '--out [PATH]NAME', String, 'Report path with name without extension') do |report_path|
@@ -36,7 +29,7 @@ opt_parser = OptionParser.new do |opts|
36
29
  options[:retry_report_path] = report_path
37
30
  end
38
31
 
39
- opts.on('-f','--format x,y,z', Array, 'List of report format - html,json,retry') do |list|
32
+ opts.on('-f', '--format x,y,z', Array, 'List of report format - html,json,retry') do |list|
40
33
  options[:report_types] = list
41
34
  end
42
35
 
@@ -44,22 +37,31 @@ opt_parser = OptionParser.new do |opts|
44
37
  options[:include_images] = include_images
45
38
  end
46
39
 
40
+ opts.on('--voice_commands', 'Enable voice commands for easy navigation and search') do |voice_commands|
41
+ options[:voice_commands] = voice_commands
42
+ end
43
+
44
+ opts.on('-c', '--color COLOR', String, 'Report color') do |color|
45
+ options[:color] = color
46
+ end
47
+
47
48
  opts.on('-T', '--title TITLE', String, 'Report title') do |report_title|
48
49
  options[:report_title] = report_title
49
50
  end
50
51
 
51
- opts.on('-I','--info a:x,b:y,c:z', Array, 'List of additional info') do |list|
52
+ opts.on('-I', '--info a:x,b:y,c:z', Array, 'List of additional info') do |list|
53
+ options[:additional_info] = { }
52
54
  list.each do |i|
53
- key, value = i.split(':')
55
+ key, value = i.split(':', 2)
54
56
  options[:additional_info][key] = value
55
57
  end
56
58
  end
57
59
 
58
- opts.on('--css', 'Additional CSS string or CSS file path or CSS file url for customizing html report') do |additional_css|
60
+ opts.on('--css CSS', String, 'Additional CSS string or CSS file path or CSS file url for customizing html report') do |additional_css|
59
61
  options[:additional_css] = additional_css
60
62
  end
61
63
 
62
- opts.on('--js', 'Additional JS string or JS file path or JS file url for customizing html report') do |additional_js|
64
+ opts.on('--js JS', String, 'Additional JS string or JS file path or JS file url for customizing html report') do |additional_js|
63
65
  options[:additional_js] = additional_js
64
66
  end
65
67
 
@@ -70,7 +72,7 @@ opt_parser = OptionParser.new do |opts|
70
72
  exit
71
73
  end
72
74
 
73
- opts.on_tail('-v','--version', 'Show version') do
75
+ opts.on_tail('-v', '--version', 'Show version') do
74
76
  puts 'ReportBuilder v' + Gem.loaded_specs['report_builder'].version.to_s rescue puts "Something want wrong. \nUse 'gem list report_builder'"
75
77
  exit
76
78
  end
@@ -4,64 +4,426 @@ require_relative 'report_builder/builder'
4
4
  # ReportBuilder Main module
5
5
  #
6
6
  module ReportBuilder
7
+
8
+ ##
9
+ # ReportBuilder options
10
+ #
11
+ def self.options
12
+ @options ||= {
13
+ input_path: Dir.pwd,
14
+ report_types: [:html],
15
+ report_title: 'Test Results',
16
+ include_images: true,
17
+ voice_commands: false,
18
+ additional_info: {},
19
+ report_path: 'test_report',
20
+ color: 'brown'
21
+ }
22
+ end
23
+
7
24
  ##
8
25
  # Configure ReportBuilder
9
26
  #
10
27
  # Example:
11
28
  #
12
29
  # ReportBuilder.configure do |config|
13
- # config.json_path = 'cucumber_sample/logs'
30
+ # config.input_path = 'cucumber_sample/logs'
14
31
  # config.report_path = 'my_test_report'
15
- # config.report_types = [:JSON, :HTML]
32
+ # config.report_types = [:RETRY, :HTML]
16
33
  # config.report_title = 'My Test Results'
17
34
  # config.include_images = true
35
+ # config.voice_commands = true
18
36
  # config.additional_info = {Browser: 'Chrome', Environment: 'Stage 5'}
19
37
  # end
20
38
  #
21
39
  def self.configure
22
- defaults = builder.default_options
23
- yield defaults if block_given?
24
- builder.options = defaults.marshal_dump
25
- end
26
-
27
- ##
28
- # Set single option
29
- #
30
- # @param [String] option
31
- # @param [Object] value
32
- #
33
- # Example:
34
- #
35
- # ReportBuilder.set_option('include_images', false)
36
- #
37
- def self.set_option(option, value)
38
- builder.options ||= builder.default_options.marshal_dump
39
- builder.options[option] = value
40
+ options
41
+ more_options = OpenStruct.new
42
+ yield more_options if block_given?
43
+ @options.merge! more_options.marshal_dump
40
44
  end
41
45
 
42
46
  ##
43
47
  # Build Report
44
48
  #
45
- # @param [Hash] options override the default and configured options.
49
+ # @param [Hash] more_options override the default and configured options.
46
50
  #
47
51
  # Example:
48
52
  #
49
53
  # options = {
50
54
  # json_path: 'cucumber_sample/logs',
51
55
  # report_path: 'my_test_report',
52
- # report_types: ['json', 'html'],
56
+ # report_types: ['retry', 'html'],
53
57
  # report_title: 'My Test Results',
54
58
  # include_images: true,
59
+ # voice_commands: true,
60
+ # color: 'deep-purple',
55
61
  # additional_info: {'browser' => 'Chrome', 'environment' => 'Stage 5'}
56
62
  # }
57
63
  #
58
64
  # ReportBuilder.build_report options
59
65
  #
60
- def self.build_report(options = nil)
61
- builder.build_report(options)
66
+ def self.build_report(more_options = {})
67
+ options
68
+ if more_options.is_a? String
69
+ @options[:input_path] = more_options
70
+ elsif more_options.is_a? Hash
71
+ @options.merge! more_options
72
+ end
73
+ @options[:input_path] = @options[:json_path] if @options[:json_path]
74
+ @options[:report_types] = [@options[:report_types]] unless @options[:report_types].is_a? Array
75
+ @options[:report_types].map!(&:to_s).map!(&:upcase)
76
+ Builder.new.build_report
77
+ end
78
+
79
+ ##
80
+ # Set Report Builder input json files path / array of json files or path / hash of json files or path
81
+ #
82
+ # @param [String/Array/Hash] json_path input json files path / array of json files or path / hash of json files or path
83
+ #
84
+ # Example:
85
+ #
86
+ # ReportBuilder.json_path = 'my_project/cucumber_json'
87
+ #
88
+ def self.json_path=(json_path)
89
+ options
90
+ @options[:input_path] = json_path
91
+ end
92
+
93
+ ##
94
+ # Returns Report Builder input json files path / array of json files or path / hash of json files or path
95
+ #
96
+ # @return [String/Array/Hash] json_path input json files path / array of json files or path / hash of json files or path
97
+ #
98
+ def self.json_path
99
+ options[:input_path]
100
+ end
101
+
102
+ ##
103
+ # Set Report Builder input json files path / array of json files or path / hash of json files or path
104
+ #
105
+ # @param [String/Array/Hash] input_path input json files path / array of json files or path / hash of json files or path
106
+ #
107
+ # Example:
108
+ #
109
+ # ReportBuilder.input_path = 'my_project/cucumber_json'
110
+ #
111
+ def self.input_path=(input_path)
112
+ options
113
+ @options[:input_path] = input_path
114
+ end
115
+
116
+ ##
117
+ # Returns Report Builder input json files path / array of json files or path / hash of json files or path
118
+ #
119
+ # @return [String/Array/Hash] input_path input json files path / array of json files or path / hash of json files or path
120
+ #
121
+ def self.input_path
122
+ options[:input_path]
123
+ end
124
+
125
+ ##
126
+ # Set Report Builder report_types :json, :html, :retry (output file types)
127
+ #
128
+ # @param [Array] report_types :json, :html, :retry (output file types)
129
+ #
130
+ # Example:
131
+ #
132
+ # ReportBuilder.report_types = [:html, :retry]
133
+ #
134
+ def self.report_types=(report_types)
135
+ options
136
+ @options[:report_types] = report_types.is_a? Array ? report_types : [report_types]
137
+ end
138
+
139
+ ##
140
+ # Returns Report Builder report_types :json, :html, :retry (output file types)
141
+ #
142
+ # @return [Array] report_types :json, :html, :retry (output file types)
143
+ #
144
+ def self.report_types
145
+ options[:report_types]
146
+ end
147
+
148
+ ##
149
+ # Set Report Builder HTML report title
150
+ #
151
+ # @param [String] report_title HTML report title
152
+ #
153
+ # Example:
154
+ #
155
+ # ReportBuilder.report_title = 'My Report'
156
+ #
157
+ def self.report_title=(report_title)
158
+ options
159
+ @options[:report_title] = report_title if report_title.is_a? String
160
+ end
161
+
162
+ ##
163
+ # Returns Report Builder HTML report title
164
+ #
165
+ # @return [String] report_title HTML report title
166
+ #
167
+ def self.report_title
168
+ options[:report_title]
169
+ end
170
+
171
+ ##
172
+ # Set Report Builder include or excluding embedded images
173
+ #
174
+ # @param [Boolean] include_images include or excluding embedded images
175
+ #
176
+ # Example:
177
+ #
178
+ # ReportBuilder.include_images = false
179
+ #
180
+ def self.include_images=(include_images)
181
+ options
182
+ @options[:include_images] = include_images if !!include_images == include_images
183
+ end
184
+
185
+ ##
186
+ # Returns Report Builder include or excluding embedded images
187
+ #
188
+ # @return [Boolean] include_images include or excluding embedded images
189
+ #
190
+ def self.include_images
191
+ options[:include_images]
192
+ end
193
+
194
+ ##
195
+ # Set Report Builder enable or disable voice commands
196
+ #
197
+ # @param [Boolean] voice_commands enable or disable voice commands
198
+ #
199
+ # Example:
200
+ #
201
+ # ReportBuilder.voice_commands = true
202
+ #
203
+ def self.voice_commands=(voice_commands)
204
+ options
205
+ @options[:voice_commands] = voice_commands if !!voice_commands == voice_commands
206
+ end
207
+
208
+ ##
209
+ # Returns Report Builder enable or disable voice commands
210
+ #
211
+ # @return [Boolean] voice_commands enable or disable voice commands
212
+ #
213
+ def self.voice_commands
214
+ options[:voice_commands]
215
+ end
216
+
217
+ ##
218
+ # Set Report Builder additional info for report summary
219
+ #
220
+ # @param [Hash] additional_info additional info for report summary
221
+ #
222
+ # Example:
223
+ #
224
+ # ReportBuilder.additional_info = {'Environment' => 'Abc Environment', 'Browser' => 'Chrome'}
225
+ #
226
+ def self.additional_info=(additional_info)
227
+ options
228
+ @options[:additional_info] = additional_info if additional_info.is_a? Hash
229
+ end
230
+
231
+ ##
232
+ # Returns Report Builder additional info for report summary
233
+ #
234
+ # @return [Hash] additional_info additional info for report summary
235
+ #
236
+ def self.additional_info
237
+ options[:additional_info]
238
+ end
239
+
240
+ ##
241
+ # Set Report Builder reports output file path with file name without extension
242
+ #
243
+ # @param [String] report_path reports output file path with file name without extension
244
+ #
245
+ # Example:
246
+ #
247
+ # ReportBuilder.report_path = 'reports/report'
248
+ #
249
+ def self.report_path=(report_path)
250
+ options
251
+ options[:report_path] = report_path if report_path.is_a? String
252
+ end
253
+
254
+ ##
255
+ # Returns Report Builder reports output file path with file name without extension
256
+ #
257
+ # @return [String] report_path reports output file path with file name without extension
258
+ #
259
+ def self.report_path
260
+ options[:report_path]
261
+ end
262
+
263
+ ##
264
+ # Set Report Builder json report output file path with file name without extension
265
+ #
266
+ # @param [String] json_report_path json report output file path with file name without extension
267
+ #
268
+ # Example:
269
+ #
270
+ # ReportBuilder.json_report_path = 'reports/report'
271
+ #
272
+ def self.json_report_path=(json_report_path)
273
+ options
274
+ @options[:json_report_path] = json_report_path if json_report_path.is_a? String
275
+ end
276
+
277
+ ##
278
+ # Returns Report Builder json report output file path with file name without extension
279
+ #
280
+ # @return [String] json_report_path json report output file path with file name without extension
281
+ #
282
+ def self.json_report_path
283
+ options[:json_report_path] || options[:report_path]
284
+ end
285
+
286
+ ##
287
+ # Set Report Builder html report output file path with file name without extension
288
+ #
289
+ # @param [String] html_report_path html report output file path with file name without extension
290
+ #
291
+ # Example:
292
+ #
293
+ # ReportBuilder.html_report_path = 'reports/report'
294
+ #
295
+ def self.html_report_path=(html_report_path)
296
+ options
297
+ @options[:html_report_path] = html_report_path if html_report_path.is_a? String
298
+ end
299
+
300
+ ##
301
+ # Returns Report Builder html report output file path with file name without extension
302
+ #
303
+ # @return [String] html_report_path html report output file path with file name without extension
304
+ #
305
+ def self.html_report_path
306
+ options[:html_report_path] || options[:report_path]
62
307
  end
63
308
 
64
- def self.builder
65
- @builder ||= Builder.new
309
+ ##
310
+ # Set Report Builder retry report output file path with file name without extension
311
+ #
312
+ # @param [String] retry_report_path retry report output file path with file name without extension
313
+ #
314
+ # Example:
315
+ #
316
+ # ReportBuilder.retry_report_path = 'reports/report'
317
+ #
318
+ def self.retry_report_path=(retry_report_path)
319
+ options
320
+ @options[:retry_report_path] = retry_report_path if retry_report_path.is_a? String
321
+ end
322
+
323
+ ##
324
+ # Returns Report Builder retry report output file path with file name without extension
325
+ #
326
+ # @return [String] retry_report_path retry report output file path with file name without extension
327
+ #
328
+ def self.retry_report_path
329
+ options[:retry_report_path] || options[:report_path]
330
+ end
331
+
332
+ ##
333
+ # Set Report Builder additional CSS string or CSS file path or CSS file url for customizing html report
334
+ #
335
+ # @param [String] additional_css additional CSS string or CSS file path or CSS file url for customizing html report
336
+ #
337
+ # Example:
338
+ #
339
+ # ReportBuilder.additional_css = 'css/style.css'
340
+ #
341
+ def self.additional_css=(additional_css)
342
+ options
343
+ @options[:additional_css] = additional_css if additional_css.is_a? String
344
+ end
345
+
346
+ ##
347
+ # Returns Report Builder additional CSS string or CSS file path or CSS file url for customizing html report
348
+ #
349
+ # @return [String] additional_css additional CSS string or CSS file path or CSS file url for customizing html report
350
+ #
351
+ def self.additional_css
352
+ options[:additional_css]
353
+ end
354
+
355
+ ##
356
+ # Set Report Builder additional JS string or JS file path or JS file url for customizing html report
357
+ #
358
+ # @param [String] additional_js additional JS string or JS file path or JS file url for customizing html report
359
+ #
360
+ # Example:
361
+ #
362
+ # ReportBuilder.json_report_path = 'js/script.js'
363
+ #
364
+ def self.additional_js=(additional_js)
365
+ options
366
+ @options[:additional_js=] = additional_js if additional_js.is_a? String
367
+ end
368
+
369
+ ##
370
+ # Returns Report Builder additional JS string or JS file path or JS file url for customizing html report
371
+ #
372
+ # @return [String] additional_js additional JS string or JS file path or JS file url for customizing html report
373
+ #
374
+ def self.additional_js
375
+ options[:additional_js]
376
+ end
377
+
378
+ ##
379
+ # Set Report Builder report color, Ex: indigo, cyan, purple, grey, lime etc.
380
+ #
381
+ # @param [String] color report color, Ex: indigo, cyan, purple, grey, lime etc.
382
+ #
383
+ # Example:
384
+ #
385
+ # ReportBuilder.color = 'purple'
386
+ #
387
+ def self.color=(color)
388
+ options
389
+ @options[:color] = color if color.is_a? String
390
+ end
391
+
392
+ ##
393
+ # Returns Report Builder report color, Ex: indigo, cyan, purple, grey, lime etc.
394
+ #
395
+ # @return [String] color report color, Ex: indigo, cyan, purple, grey, lime etc.
396
+ #
397
+ def self.color
398
+ options[:color]
399
+ end
400
+
401
+ ##
402
+ # Set Report Builder Options
403
+ #
404
+ # @param [String] option
405
+ # @param [String] value
406
+ #
407
+ # Example:
408
+ #
409
+ # ReportBuilder.set('title', 'My Features')
410
+ #
411
+ def self.set_option(option, value)
412
+ options
413
+ @options[option.to_sym] = value
414
+ end
415
+
416
+ ##
417
+ # Set Report Builder Options
418
+ #
419
+ # @param [String] option
420
+ # @param [String] value
421
+ #
422
+ # Example:
423
+ #
424
+ # ReportBuilder.set('title', 'My Features')
425
+ #
426
+ def self.set(option, value)
427
+ set_option(option, value)
66
428
  end
67
429
  end