sra2019 0.3.0 → 0.4.0

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: 1a1630217c7d4ee5a473b6ece8d7f9a53c05311ea6c46c802b0ed1261adde45f
4
- data.tar.gz: 708dbf7e48829c70f368bf8746da56b1cac998cc624cb47516abb301309c809b
3
+ metadata.gz: 4ca33bfd09172282c98624b31e6489a6c7205cca8085f924dacd2ff7cc01fcb1
4
+ data.tar.gz: 9898d125ea75459c0ff51972a7ad54a143acbebbc0a7681ff8d802852b2b498a
5
5
  SHA512:
6
- metadata.gz: a919453361eb6cb6c6e46e2b28e135ac4d4597e51967c1c5dd3fbf6b533975aca4feb11aa918c2cc725af4a66be6da707cfc00eaecb0708395e9cf5a36b9eeaf
7
- data.tar.gz: bb5a2ddf6a905234d29666702985a4908b4254d1844d5dc4ddb9507efca824685219a838cbc81626a974e368eefe23ff49d6f59c26d3b9a6cae9a17661d0449b
6
+ metadata.gz: cda1d9493835d6a5f5e32ca464c43f1c865a04c41989712a18098118f62d11c76615a873cbc0686f6db1d9a29b418e5c144661b9bdf46e96fd3a030dc2a9b700
7
+ data.tar.gz: 61880dccd861672beedc105b038db731582058d0a17ee5fed8e9d73aecd1658e8b82d9f92b90a9d20c1fad2d13b3117f8f72803777e5773f6b6fbaa3f815d1d6
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
@@ -1 +1,2 @@
1
- #����\���Z
1
+ ��%�����F^��M��.#rP��r߉�W�J ǒ��&bq��*�ܐ��L
2
+ � gH�ѯ*ȉș� �?��>��Pe2��}�(Ί�Y�ކ\c�p�9jy��{�aRo�S�k�-�=pL:eŢ4���q�0;=Q�����L`�7�+�?Yy��m��Z�R/�� �W�ŴX/��,�[��|eUn)H�����
data/lib/sra2019.rb CHANGED
@@ -5,10 +5,12 @@
5
5
  # description: Steps Recorder (MS Windows) Analyser 2019
6
6
 
7
7
 
8
+ require 'hlt'
9
+ require 'zip'
8
10
  require 'rexle'
9
11
  require 'base64'
10
12
  require 'rxfhelper'
11
- require "mini_magick"
13
+ require 'mini_magick'
12
14
  require 'rexle-builder'
13
15
 
14
16
 
@@ -18,13 +20,15 @@ class StepsRecorderAnalyser
18
20
  attr_reader :steps
19
21
 
20
22
 
21
- def initialize(s, debug: false)
23
+ def initialize(s, debug: false, savepath: '/tmp', title: 'Untitled')
22
24
 
23
- @debug = debug
25
+ @savepath, @title, @debug = savepath, title, debug
24
26
  content = RXFHelper.read(s).first
25
27
  puts ('content: ' + content.inspect).debug if @debug
26
- @steps = parse_steps content
27
- @doc = build @steps
28
+
29
+ all_steps = parse_steps content
30
+ @doc = build all_steps
31
+ @steps = all_steps.select {|x| x[:user_comment]}
28
32
 
29
33
  end
30
34
 
@@ -34,6 +38,80 @@ class StepsRecorderAnalyser
34
38
  @doc.xml options
35
39
 
36
40
  end
41
+
42
+ def to_html(targetdir='sra' + Time.now.to_i.to_s)
43
+
44
+ # save the image files to a file directory.
45
+ # name the sub-directory using the date and time?
46
+
47
+ filepath = File.join(@savepath, targetdir)
48
+ imgpath = File.join(filepath, 'images')
49
+ csspath = File.join(filepath, 'css')
50
+
51
+ [filepath, imgpath, csspath].each {|x| FileUtils.mkdir x}
52
+
53
+ @steps.each.with_index do |x, i|
54
+
55
+ File.open(File.join(imgpath, "screenshot#{i}.jpg" ), 'wb') \
56
+ {|f| f.write(x[:screenshot]) }
57
+
58
+ end
59
+
60
+
61
+ rows = @steps.map.with_index do |x, i|
62
+
63
+ li = "
64
+ li
65
+ markdown:
66
+ #{x[:user_comment]}
67
+
68
+ ![](images/screenshot#{i}.jpg)
69
+ "
70
+
71
+ end
72
+
73
+ html=<<EOF
74
+ html
75
+ head
76
+ title #{@title}: #{@steps.length} Steps (with Pictures)
77
+ link rel='stylesheet' type='text/css' href='css/layout.css' media='screen, projection, tv'
78
+ link rel='stylesheet' type='text/css' href='css/style.css' media='screen, projection, tv'
79
+ link rel='stylesheet' type='text/css' href='css/print.css' media='print'
80
+ body
81
+ h1 #{@title}
82
+
83
+ ol
84
+ #{rows.join("\n").lstrip}
85
+ EOF
86
+
87
+ html = Rexle.new(Hlt.new(html).to_html)\
88
+ .root.element('html').xml pretty: true
89
+ File.write File.join(filepath, 'index.html'), html
90
+
91
+ %w(layout style print).each \
92
+ {|x| File.write File.join(csspath, "%s.css" % x), ''}
93
+
94
+ 'saved'
95
+
96
+ end
97
+
98
+ # not yet working properly
99
+ #
100
+ def to_zip()
101
+
102
+ project = 'sra' + Time.now.to_i.to_s
103
+ newdir = project
104
+ zipfile = project + '.zip'
105
+
106
+ to_html(newdir)
107
+
108
+ Zip::ZipFile.open(zipfile, Zip::ZipFile::CREATE) do |x|
109
+ x.add(project, File.join(@savepath, project))
110
+ end
111
+
112
+ 'saved to ' + File.join(@savepath, zipfile)
113
+
114
+ end
37
115
 
38
116
  private
39
117
 
@@ -81,8 +159,13 @@ class StepsRecorderAnalyser
81
159
  Rexle.new(xml.to_a)
82
160
  end
83
161
 
84
- def extract_image(s, e)
85
-
162
+ def extract_image(s, n)
163
+
164
+ report = Rexle.new s[/<Report>.*<\/Report>/m]
165
+
166
+ e = report.root.element('UserActionData/RecordSession/EachAction' +
167
+ "[@ActionNumber='#{n}']/HighlightXYWH")
168
+
86
169
  y, x, w, h = e.text.split(',').map(&:to_i)
87
170
 
88
171
  jpg_file = e.parent.element('ScreenshotFileName/text()')
@@ -102,7 +185,6 @@ class StepsRecorderAnalyser
102
185
  s2 = s[/Recording Session.*(?=<)/]
103
186
  puts ('s: ' + s.inspect).debug if @debug
104
187
 
105
- report = Rexle.new s[/<Report>.*<\/Report>/m]
106
188
  raw_steps = s2.split(/(?=Step \d+:)/)
107
189
  summary = raw_steps.shift
108
190
 
@@ -117,16 +199,12 @@ class StepsRecorderAnalyser
117
199
  n = a[0][/(?<=Step )\d+/]
118
200
  puts ('n: ' + n.inspect).debug if @debug
119
201
 
120
- if raw_comment then
121
-
122
-
123
- e = report.root.element('UserActionData/RecordSession/EachAction' +
124
- "[@ActionNumber='#{n}']/HighlightXYWH")
202
+ if raw_comment then
125
203
 
126
204
  {
127
205
  step: n,
128
- user_comment: raw_comment.gsub("&quot;",'"'),
129
- screenshot: extract_image(s, e)
206
+ user_comment: raw_comment.gsub("&quot;",''),
207
+ screenshot: extract_image(s, n)
130
208
  }
131
209
 
132
210
  else
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sra2019
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -38,25 +38,25 @@ cert_chain:
38
38
  date: 2019-04-22 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
- name: rexle
41
+ name: hlt
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '1.5'
46
+ version: '0.6'
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 1.5.1
49
+ version: 0.6.3
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: '1.5'
56
+ version: '0.6'
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 1.5.1
59
+ version: 0.6.3
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: mini_magick
62
62
  requirement: !ruby/object:Gem::Requirement
metadata.gz.sig CHANGED
Binary file