cuker 0.5.22 → 0.6.5

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
  SHA256:
3
- metadata.gz: e0ac8aa67c6c20585405e1596f6280e292b49a4dbab8d3fad111c630143e1f93
4
- data.tar.gz: fe355aa257aaf6a07a9966203ee5d16b57c56d6704627bdfc66f31466ac07f74
3
+ metadata.gz: d4f880c3869c84766c1f1b13faa959ffdeaf3b31416926561d1e23831b5fa3d3
4
+ data.tar.gz: f2e443c999f42b6699a59763a46e2239682d5af7d340d5fefbabcf3d1f621c79
5
5
  SHA512:
6
- metadata.gz: 598d17169782a98f1c9166533bd2e2a9f5b6f2d18e717be84f9e9bab22b19b0325b131914f04bc945e23e0d20a97268ed6586d319f6ec88ce4a0dddd9309ce7a
7
- data.tar.gz: 352db7d57634271a42485155de68311b15670202c413e59501f98e307ca1ebbb38f70e1f9e10c64603b444794bf8061650a049701441c2d015d9c81120ec0b6e
6
+ metadata.gz: ecd71bb41d84a324ec204a3287d810755d95d2065b869059e359d69623a9d137016476bbb2af165b893a6745e36f686e15dcb1d63de401253c14a45524a03265
7
+ data.tar.gz: ab111cea898528d105d23698c1de6edc5c8b470a89a62ec5537e99d829f7ea0bed53fa51d1085a235b6c82b1a4044478d769c3e92ca952dd20f41ba347e5db28
data/cuker.gemspec CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["ufo2mstar@gmail.com"]
11
11
 
12
12
  spec.summary = %q{Cucumber Summary Gem}
13
- spec.description = %q{generates reports and gives some customizable formatting options}
13
+ spec.description = %q{generates reports of your feature files and gives some customizable formatting options}
14
14
  spec.homepage = "https://github.com/ufo2mstar/cuker"
15
15
  spec.license = "MIT"
16
16
 
@@ -37,20 +37,26 @@ Gem::Specification.new do |spec|
37
37
  # gem.executables = ["cuker"]
38
38
  spec.require_paths = ["lib"]
39
39
 
40
+
41
+ # https://guides.rubygems.org/specification-reference/
42
+
43
+ # Dev Deps
40
44
  spec.add_development_dependency "bundler", "~> 2.0"
41
45
  spec.add_development_dependency "rake", "~> 10.0"
42
46
  # spec.add_development_dependency "rspec", "~> 3.0"
43
-
44
- spec.add_development_dependency "require_all"
45
47
  spec.add_development_dependency "awesome_print"
46
- spec.add_development_dependency "logging"
47
48
 
48
- spec.add_development_dependency "gherkin", "~> 5.1"
49
+ # Runtime Deps
50
+ spec.add_runtime_dependency "require_all"
51
+ spec.add_runtime_dependency "logging"
52
+
53
+ spec.add_runtime_dependency "gherkin", "~> 5.1"
49
54
 
50
- # spec.add_development_dependency "thor"
51
- spec.add_development_dependency "highline"
55
+ spec.add_runtime_dependency "rubyXL"
56
+ # spec.add_runtime_dependency "table_print"
57
+ spec.add_runtime_dependency "text-table"
52
58
 
53
- spec.add_development_dependency "rubyXL"
54
- # spec.add_development_dependency "table_print"
55
- spec.add_development_dependency "text-table"
59
+ # spec.add_runtime_dependency "thor"
60
+ spec.add_runtime_dependency "highline"
61
+ spec.add_runtime_dependency "bindata"
56
62
  end
@@ -24,17 +24,30 @@ module Cuker
24
24
  PRODUCERS[:simple_jira] = [JiraModel, JiraWriter]
25
25
  PRODUCERS[:monospaced_jira] = [JiraMonoModel, JiraWriter]
26
26
  PRODUCERS[:jira_excel] = [RubyXLModel, RubyXLWriter]
27
+ PRODUCERS[:summary_excel] = [SummaryXLModel, SummaryXLWriter]
27
28
 
28
29
  PRESETS = {}
29
30
  PRESETS[:jira_package] = [:simple_jira, :jira_excel]
30
31
  PRESETS[:jira_text] = [:simple_jira]
31
32
  PRESETS[:jira_excel] = [:jira_excel]
33
+ PRESETS[:testsuite_summary] = [:summary_excel]
32
34
 
33
35
 
34
36
  # desc "report PRESET_KEY [FEATURE_PATH [REPORT_PATH [REPORT_FILE_NAME [LOG_LEVEL]]]]",
35
37
  # "reports parsed results into \nREPORT_PATH/REPORT_FILE_NAME \nfor all '*.feature' files in the given FEATURE_PATH\nSTDIO LOG_LEVEL adjustable\n"
36
38
 
37
- def report preset_key, feat_path = "../", report_file_name = 'sample_report', report_path_input = ".", log_level = :info
39
+ def report preset_key,
40
+ feat_path = "../",
41
+ report_file_name = 'sample_report',
42
+ report_path_input = ".",
43
+ special_tags_list = [
44
+ "@uat_done",
45
+ "@cmo_done",
46
+ "@tech_done",
47
+ "@test_done",
48
+ ],
49
+ log_level = :info
50
+
38
51
  init_logger log_level
39
52
  output_files = []
40
53
  producers = PRESETS[preset_key]
@@ -45,13 +58,13 @@ module Cuker
45
58
 
46
59
  producers.each do |producer|
47
60
  report_path = File.join report_path_input, 'reports', LOG_TIME_TODAY
48
- msg = "running '#{preset_key.to_s.upcase}' reporter @\n Feature Path: '#{feat_path}' \n Report Path => '#{report_path}' - '#{report_file_name}'\n"
61
+ msg = "producing '#{producer.to_s.upcase}' report\t @ Report Path => '#{report_path}' - '#{report_file_name}' \t for Feature Files @ '#{feat_path}'\n"
49
62
 
50
63
  @log.info msg
51
64
  puts msg
52
65
  model, writer = PRODUCERS[producer]
53
66
 
54
- preset_model = model.new ast_map
67
+ preset_model = model == SummaryXLModel ? model.new(ast_map, special_tags_list) : model.new(ast_map)
55
68
  preset_writer = writer.new
56
69
  grr = GherkinReporter.new preset_writer, preset_model, report_path, report_file_name
57
70
 
@@ -42,13 +42,6 @@ module Cuker
42
42
  @data = []
43
43
  end
44
44
 
45
- def get_values_ary ary_of_hshs
46
- get_item_ary ary_of_hshs, :values
47
- end
48
-
49
- def get_keys_ary ary_of_hshs
50
- get_item_ary ary_of_hshs, :keys
51
- end
52
45
 
53
46
  # utility methods
54
47
  # used by any model
@@ -90,10 +83,20 @@ module Cuker
90
83
  end
91
84
  end
92
85
 
86
+
87
+ def get_values_ary ary_of_hshs
88
+ get_item_ary ary_of_hshs, :values
89
+ end
90
+
91
+ def get_keys_ary ary_of_hshs
92
+ get_item_ary ary_of_hshs, :keys
93
+ end
94
+
93
95
  private
94
96
 
95
97
  def get_item_ary ary_of_hshs, item
96
98
  ary_of_hshs.map(&item).flatten
97
99
  end
100
+
98
101
  end
99
102
  end
@@ -40,7 +40,7 @@ module Cuker
40
40
  end
41
41
 
42
42
  def special_tag_lookup
43
- @special_tag_lookup ||= get_keys_ary @special_tag_list if @special_tag_list
43
+ @special_tags ||= get_keys_ary @special_tag_list if @special_tag_list
44
44
  end
45
45
 
46
46
  def make_title order
@@ -97,7 +97,8 @@ module Cuker
97
97
 
98
98
  TITLE_MAX_LEN = 60
99
99
 
100
- EXCEL_BLANK = ''
100
+ # EXCEL_BLANK = ''
101
+ EXCEL_BLANK = nil
101
102
  EXCEL_TITLE_SEP = '|'
102
103
  EXCEL_ROW_SEP = '|'
103
104
  EXCEL_EMPTY_LINE = ' '
@@ -145,13 +146,13 @@ module Cuker
145
146
  @special_tag_titles ||= get_values_ary @special_tag_list if @special_tag_list
146
147
  end
147
148
 
148
- def special_tag_lookup
149
- @special_tag_lookup ||= get_keys_ary @special_tag_list if @special_tag_list
149
+ def special_tags
150
+ @special_tags ||= get_keys_ary @special_tag_list if @special_tag_list
150
151
  end
151
152
 
152
153
  def filter_special_tags(all_tags)
153
- return [[], all_tags] unless special_tag_lookup
154
- ignore_list = all_tags - special_tag_lookup
154
+ return [[], all_tags] unless special_tags
155
+ ignore_list = all_tags - special_tags
155
156
  select_list = all_tags - ignore_list
156
157
  [select_list, ignore_list]
157
158
  end
@@ -222,7 +223,7 @@ module Cuker
222
223
  children = feat[:children]
223
224
  children.each {|child| yield feat_tags, feat_title, child}
224
225
  else
225
- @log.debug "No Features found in file @ #{@file_path}"
226
+ @log.warn "No Features found in file @ #{@file_path}"
226
227
  end
227
228
  end
228
229
 
@@ -0,0 +1,140 @@
1
+ module Cuker
2
+ class SummaryXLModel < RubyXLModel
3
+
4
+ EXCEL_BLANK = nil
5
+
6
+ def initialize ast_map, tags_list
7
+ init_logger
8
+
9
+ @log.trace "initing #{self.class}"
10
+ @log.debug "has #{ast_map.size} items"
11
+
12
+ @asts = ast_map
13
+
14
+ @special_tag_list = tags_list
15
+ # special_tag_titles
16
+
17
+ @order = make_order
18
+ @title = make_title @order
19
+ @data = make_rows
20
+ end
21
+
22
+ def make_order
23
+ [
24
+ {:counter => "Sl.No"},
25
+ {:s_type => "Type"},
26
+ {:s_title => "Title"},
27
+ {:tags => special_tag_titles},
28
+ {:other_tags => "Other Tags"},
29
+ {:feature_title => "Feature Title"},
30
+ {:feature_count => "Feature"},
31
+ {:bg_title => "Background"},
32
+ {:file_s_num => "Scen.no"},
33
+ {:file_name => "File"},
34
+ ]
35
+ end
36
+
37
+ def make_title order
38
+ get_values_ary order
39
+ end
40
+
41
+ def special_tag_titles
42
+ @special_tag_titles ||= @special_tag_list if @special_tag_list
43
+ end
44
+
45
+ def special_tags
46
+ @special_tags ||= @special_tag_list if @special_tag_list
47
+ end
48
+
49
+ def filter_special_tags(all_tags)
50
+ return [[], all_tags] unless special_tags
51
+ ignore_list = all_tags - special_tags
52
+ select_list = all_tags - ignore_list
53
+ ordered_list = []
54
+ special_tag_titles.each {|tag| ordered_list << (select_list.include?(tag) ? tag : EXCEL_BLANK)}
55
+ [ordered_list, ignore_list, select_list]
56
+ end
57
+
58
+ def make_rows
59
+ if @asts.nil? or @asts.empty?
60
+ @log.debug "No asts to parse!"
61
+ return []
62
+ end
63
+
64
+ feat_counter = 0
65
+ feature_title = []
66
+ bg_title = []
67
+
68
+ res = []
69
+ @asts.each do |file_path, ast|
70
+ @log.debug "Understanding file: #{file_path}"
71
+ @file_path = file_path
72
+ in_feat_counter = 0
73
+
74
+ if ast[:type] == :GherkinDocument
75
+ in_feature(ast) do |feat_tags_ary, feat_title, feat_item|
76
+ feat_counter += 1
77
+ in_item(feat_item) do |tags_ary, type, item_title, content_ary, example_ary|
78
+ row_hsh = {}
79
+ feature_title = feat_title
80
+ if type == :Background or type == :Feature
81
+ # bg_title = [excel_title(BACKGROUND, item_title)] + content_ary
82
+ bg_title = item_title
83
+ else
84
+ # if type == :Scenario or type == :ScenarioOutline
85
+ # scen_title = [excel_title(type.to_s, item_title)] + content_ary
86
+ scen_title = item_title
87
+
88
+ row_hsh[:counter] = feat_counter
89
+ row_hsh[:s_type] = type == :Scenario ? "S" : "SO"
90
+ row_hsh[:s_title] = excel_content_format scen_title
91
+
92
+ all_tags = [feat_tags_ary, tags_ary].flatten.compact
93
+ ordered_list, ignore_list, select_list = filter_special_tags(all_tags)
94
+ row_hsh[:tags] = ordered_list
95
+ row_hsh[:other_tags] = ignore_list.join ", "
96
+ row_hsh[:feature_title] = excel_content_format feature_title
97
+ row_hsh[:bg_title] = excel_content_format bg_title
98
+ row_hsh[:file_s_num] = in_feat_counter += 1
99
+ row_hsh[:feature_count] = in_feat_counter == 1 ? 1 : 0
100
+ row_hsh[:file_name] = file_path
101
+
102
+ # row_hsh[:examples] = "" # is nil by default
103
+ if type == :ScenarioOutline
104
+ row_hsh[:examples] = example_count example_ary
105
+ end
106
+ row_ary = []
107
+ get_keys_ary(@order).each do |k|
108
+ if k == :tags
109
+ # v.each { |tag| row_ary << (tag.nil?? EXCEL_BLANK : tag) }
110
+ tags_ary = row_hsh[k]
111
+ tags_ary.each {|tag| row_ary << tag}
112
+ else
113
+ row_ary << (row_hsh[k])
114
+ end
115
+ end
116
+ res << row_ary
117
+ end
118
+ # get_keys_ary(@order).each {|k| row_ary << excel_arg_hilight(row_hsh[k])}
119
+ end
120
+ feature_title = []
121
+ bg_title = []
122
+ end
123
+ end
124
+ end
125
+ @file_path = nil
126
+ res
127
+ end
128
+
129
+ def example_count example_ary
130
+ # [0] title
131
+ # [1] table = [[0] title [...] examples]
132
+ # [2] blank
133
+ sum = []
134
+ (1..example_ary.size).step(3).each {|i| sum << (example_ary[i].size - 1)}
135
+ sum.inject('+')
136
+ end
137
+
138
+ end
139
+
140
+ end
@@ -7,6 +7,7 @@ module Cuker
7
7
  def initialize
8
8
  @ext = '.xlsm'
9
9
  super
10
+ @template_file_name = "template_excel_jira.xlsm"
10
11
  @log.debug "initing #{self.class}"
11
12
  end
12
13
 
@@ -26,7 +27,7 @@ module Cuker
26
27
  @log.debug "rxl make new sheet"
27
28
  #todo: dangit! handling this path naming properly
28
29
  file_name = "#{name.nil? ? super(name) : name}#{ext}"
29
- @book[file_name] = RubyXLFile.new file_name
30
+ @book[file_name] = RubyXLFile.new file_name, @template_file_name
30
31
  @active_file = @book[file_name]
31
32
  file_name
32
33
  end
@@ -52,12 +53,12 @@ module Cuker
52
53
  class RubyXLFile < AbstractFile
53
54
  attr_accessor :workbook, :worksheets, :worksheet
54
55
 
55
- def initialize file_name
56
+ def initialize file_name, template_file_name
56
57
 
57
58
  premade = File.basename(file_name) =~ /xlsm/
58
59
  # premade = true
59
60
  # premade = false
60
- template_file_name = "simple_macro_template.xlsm"
61
+ # template_file_name = "simple_macro_template.xlsm"
61
62
  template_file_path = File.join File.dirname(__FILE__), template_file_name
62
63
  # template_file_name = './lib/cuker/helpers/writers/simple_macro_template.xlsm'
63
64
  # template_file_name = './lib/cuker/helpers/writers/demo_file2.xlsm'
@@ -0,0 +1,104 @@
1
+ require_relative 'abstract_writer'
2
+ require 'rubyXL'
3
+ require 'rubyXL/convenience_methods'
4
+
5
+ module Cuker
6
+ class SummaryXLWriter < RubyXLWriter
7
+ def initialize
8
+ # @ext = '.xlsm'
9
+ super
10
+ @template_file_name = "template_excel_summary.xlsm"
11
+ @log.debug "initing #{self.class}"
12
+ end
13
+
14
+ def make_new_book name
15
+ @log.debug "summary rxl make new sheet"
16
+ #todo: dangit! handling this path naming properly
17
+ file_name = "#{name.nil? ? super(name) : name}#{ext}"
18
+ @book[file_name] = SummaryRubyXLFile.new file_name, @template_file_name
19
+ @active_file = @book[file_name]
20
+ file_name
21
+ end
22
+
23
+ def write model, output_file_path
24
+ file_name = make_new_file output_file_path
25
+ write_title model.title
26
+ model.data.each {|row| write_new_row row}
27
+ finishup
28
+ file_name
29
+ end
30
+ end
31
+
32
+ class SummaryRubyXLFile < RubyXLFile
33
+ attr_accessor :workbook, :worksheets, :worksheet
34
+
35
+ def initialize file_name, template_file_name
36
+
37
+ premade = File.basename(file_name) =~ /xlsm/
38
+ template_file_path = File.join File.dirname(__FILE__), template_file_name
39
+ @file_name = premade ? template_file_path : file_name
40
+
41
+ # super @file_name #replaced below
42
+ init_logger
43
+ @name = file_name
44
+ @rows = []
45
+
46
+ @log.debug "Making new #{self.class} => #{@file_name}"
47
+
48
+ @workbook = premade ? RubyXL::Parser.parse(@file_name) : RubyXL::Workbook.new
49
+
50
+ @worksheets = @workbook.worksheets
51
+ @worksheet = @workbook['Feature Summary raw']
52
+
53
+ @rows = sheet_rows.dup # starting Row
54
+ @offset = 0 # starting Col
55
+
56
+ @file_name = file_name
57
+ end
58
+
59
+ def locate_sheet sheet_name
60
+ sheet_index = @workbook.worksheets.index {|x| x.sheet_name == sheet_name}
61
+ @link_sheet = @workbook.worksheets[sheet_index]
62
+ if sheet_index
63
+ @log.debug "located sheet #{sheet_name} @location #{sheet_index}"
64
+ # @workbook.worksheets.delete_at(sheet_index)
65
+ sheet_index
66
+ else
67
+ @log.error "no sheet named '#{sheet_name}' found.. available sheets []"
68
+ nil
69
+ end
70
+ end
71
+
72
+ def current_row
73
+ rows.size - 1
74
+ end
75
+
76
+ def current_col
77
+ @offset
78
+ end
79
+
80
+ def add_row ary
81
+ # super ary
82
+ @rows << ary
83
+
84
+ row, col = current_row, current_col
85
+ worksheet.insert_row(row)
86
+ ary.each do |val|
87
+ case val.class.to_s
88
+ when "String", "Integer", /Nil/
89
+ worksheet.insert_cell(row, col, val)
90
+ else
91
+ @log.error "SummaryRubyXLFile auto stringification of unknown format: #{val.class} => '#{val}'"
92
+ worksheet.insert_cell(row, col, val.to_s)
93
+ # worksheet.insert_cell(row, col, val.to_s)
94
+ end
95
+ col += 1
96
+ end
97
+
98
+ @log.trace workbook.worksheets.map(&:sheet_name)
99
+ end
100
+
101
+ alias :add_line :add_row
102
+
103
+ end
104
+ end
File without changes
File without changes
File without changes
File without changes
File without changes
data/lib/cuker/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Cuker
2
- VERSION = "0.5.22"
2
+ VERSION = "0.6.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cuker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.22
4
+ version: 0.6.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - ufo2mstar
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-06-24 00:00:00.000000000 Z
11
+ date: 2019-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: require_all
42
+ name: awesome_print
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,13 +53,13 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: awesome_print
56
+ name: require_all
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
- type: :development
62
+ type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
@@ -73,7 +73,7 @@ dependencies:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
- type: :development
76
+ type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
@@ -87,7 +87,7 @@ dependencies:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: '5.1'
90
- type: :development
90
+ type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
@@ -95,13 +95,13 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '5.1'
97
97
  - !ruby/object:Gem::Dependency
98
- name: highline
98
+ name: rubyXL
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
- type: :development
104
+ type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
@@ -109,13 +109,13 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: rubyXL
112
+ name: text-table
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
- type: :development
118
+ type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
@@ -123,20 +123,35 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: text-table
126
+ name: highline
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
- type: :development
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: bindata
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :runtime
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
150
  - - ">="
137
151
  - !ruby/object:Gem::Version
138
152
  version: '0'
139
- description: generates reports and gives some customizable formatting options
153
+ description: generates reports of your feature files and gives some customizable formatting
154
+ options
140
155
  email:
141
156
  - ufo2mstar@gmail.com
142
157
  executables: []
@@ -166,21 +181,25 @@ files:
166
181
  - lib/cuker/helpers/formatters/jira_model.rb
167
182
  - lib/cuker/helpers/formatters/jira_mono_model.rb
168
183
  - lib/cuker/helpers/formatters/ruby_x_l_model.rb
184
+ - lib/cuker/helpers/formatters/summary_x_l_model.rb
169
185
  - lib/cuker/helpers/formatters/title.rb
170
186
  - lib/cuker/helpers/gherkin_helper.rb
171
187
  - lib/cuker/helpers/string_helper.rb
172
188
  - lib/cuker/helpers/writers/abstract_writer.rb
189
+ - lib/cuker/helpers/writers/combos.xlsm
173
190
  - lib/cuker/helpers/writers/csv_writer.rb
174
191
  - lib/cuker/helpers/writers/jira_writer.rb
175
192
  - lib/cuker/helpers/writers/ruby_x_l_writer.rb
176
- - lib/cuker/helpers/writers/simple_macro_template.xlsm
193
+ - lib/cuker/helpers/writers/summary_x_l_writer.rb
194
+ - lib/cuker/helpers/writers/template_excel_jira.xlsm
195
+ - lib/cuker/helpers/writers/template_excel_summary.xlsm
177
196
  - lib/cuker/high.rb
178
197
  - lib/cuker/log_utils.rb
179
- - lib/cuker/test/book1.rb
180
- - lib/cuker/test/ruby_xl.rb
181
- - lib/cuker/test/sablon-try.rb
182
- - lib/cuker/test/template.docx
183
- - lib/cuker/test/xlsx_500_rows.xlsx
198
+ - lib/cuker/sandbox/book1.rb
199
+ - lib/cuker/sandbox/ruby_xl.rb
200
+ - lib/cuker/sandbox/sablon-try.rb
201
+ - lib/cuker/sandbox/template.docx
202
+ - lib/cuker/sandbox/xlsx_500_rows.xlsx
184
203
  - lib/cuker/version.rb
185
204
  - reports/.gitignore
186
205
  - spec.bat