cuker 0.5.22 → 0.6.5

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.
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