recot 0.2.1 → 0.2.2

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
  SHA1:
3
- metadata.gz: fe31131b31eeabb365a4d3b1fb8b93604205dac9
4
- data.tar.gz: 439362ae55e5316cffc7dc4cb46e2088d0e004a0
3
+ metadata.gz: f60d0a1b677aa5c0c1b34cc35044645665e53dd6
4
+ data.tar.gz: 242cf47f631781b00f44c615804119fdb7bf3de6
5
5
  SHA512:
6
- metadata.gz: fb63a9558b651e5ffa1ed7222409630fb17ce8111ed5010be344b8262da0c771309f0aaafa5efe6eafd2c22c61250d3f265b52de84ad8fefac63503e7a287eef
7
- data.tar.gz: 69849627fa9cb5bfef103e049cef011d17680cf3aff8c59da1a6808be1754120163d0fa29b59d9a5840b1e0b75187ad61d7aef976a8a1b5d1a919d162d29200b
6
+ metadata.gz: 0d2665db343b75129bb148c33299d30bd09f9baaccb383d5264286692b978c05d2a77d5a714310d027f2e6545a1ae110acb89127fb673c6ecafed5134e7ac6dd
7
+ data.tar.gz: 6e31d439113053ac443701754cc8ea91c84ea4c4c2f311099442f0033d78fc978eace34842f9e8ee2b4591e8ea545f0924d09269e599867700cf78755648766d
data/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  Recot is a tool to gather evidence of the test.
6
6
 
7
7
  [![Gem Version](https://badge.fury.io/rb/recot.svg)](https://badge.fury.io/rb/recot)
8
- ![travis-ci](https://travis-ci.org/Slowhand0309/recot.svg?branch=master)
8
+ [![Build Status](https://travis-ci.org/Slowhand0309/recot.svg?branch=master)](https://travis-ci.org/Slowhand0309/recot)
9
9
 
10
10
  ## Description
11
11
  Create evidence document for test to easy.<br>
@@ -29,9 +29,17 @@ $ rect <command>
29
29
  |Command|Description|
30
30
  |:------|:----------|
31
31
  |start|Start recot to collect evidence.|
32
+ |export|Export to another format.|
32
33
  |cleanup|Clean up cache.|
33
34
  |destroy|Delete all file.|
34
35
 
36
+ If you want to export to another format, run the following command:
37
+
38
+ ```sh
39
+ $ recot export
40
+ ```
41
+ ※ Yet now, `.xlsx` format only
42
+
35
43
  If you want to delete cacche.
36
44
  run the following command:
37
45
 
@@ -54,7 +62,7 @@ To begin the test with the following command:
54
62
 
55
63
  ```sh
56
64
  $ recot start
57
- Start recot ver 0.2.1
65
+ Start recot ver 0.2.2
58
66
 
59
67
  ____ __
60
68
  / __ \___ _________ / /
data/bin/recot CHANGED
@@ -16,12 +16,23 @@ class RecotExecutable
16
16
 
17
17
  cmd.desc 'Open default browser'
18
18
  cmd.switch [:o, :open]
19
-
19
+
20
20
  cmd.action do |_, options, _|
21
21
  Recot::Commands.start(options[:port], options[:open])
22
22
  end
23
23
  end
24
24
 
25
+ desc 'Export'
26
+ command :export do |cmd|
27
+
28
+ cmd.desc 'Export format'
29
+ cmd.flag [:f, :format], default_value: 'excel'
30
+
31
+ cmd.action do |_, options, _|
32
+ Recot::Commands.export(options[:format])
33
+ end
34
+ end
35
+
25
36
  desc 'Clean cache'
26
37
  command :cleanup do |cmd|
27
38
 
@@ -6,6 +6,7 @@ require 'recot/commands/interactive_ui'
6
6
  require 'recot/commands/listener'
7
7
  require 'recot/utils/recot_util'
8
8
  require 'recot/utils/browser_util'
9
+ require 'recot/utils/export_util'
9
10
 
10
11
  module Recot
11
12
  module Commands
@@ -39,6 +40,14 @@ module Recot
39
40
  InteractiveUi.new.start
40
41
  end
41
42
 
43
+ # Export.
44
+ #
45
+ # == Parameters:
46
+ # Export format.
47
+ def self.export(format)
48
+ Utils::ExportUtil.execute(format)
49
+ end
50
+
42
51
  # All clear.
43
52
  #
44
53
  def self.destroy
@@ -0,0 +1,110 @@
1
+ # coding: utf-8
2
+ require 'axlsx'
3
+ require 'recot/config'
4
+
5
+ module Recot
6
+ module Utils
7
+ class ExportUtil
8
+
9
+ IMAGE_SIZE_WIDTH = 512
10
+ IMAGE_SIZE_HEIGHT = 512
11
+ IMAGE_SIZE_ROWS = 25
12
+
13
+ class << self
14
+
15
+ # Execute export.
16
+ #
17
+ # == Parameters:
18
+ # Export format.
19
+ def execute(format)
20
+ puts "\e[33mExport resources [format: #{format}]\e[0m"
21
+ unless validate
22
+ # invalid
23
+ puts "\e[31mResources not found!\e[0m"
24
+ return
25
+ end
26
+
27
+ # Fetch resoures.
28
+ fetch
29
+
30
+ puts "Export Success!!"
31
+ end
32
+
33
+ # Validate for export.
34
+ #
35
+ # == Returns:
36
+ # True if normal, False if invalid.
37
+ def validate
38
+
39
+ # Check __output directory.
40
+ unless File.exist?(Recot.output_dir)
41
+ return false
42
+ end
43
+
44
+ # Check __output/resources
45
+ unless File.exist?(Recot.resources_dir)
46
+ return false
47
+ end
48
+ return true
49
+ end
50
+
51
+ # Fetch output resources.
52
+ def fetch
53
+ evidences = {}
54
+ Dir::glob("#{Recot.resources_dir}/*").each do |d|
55
+ if File::ftype(d) == "directory"
56
+ #images = Dir::entries(d).select{|e| File::ftype("#{d}/#{e}") == 'file'}
57
+ images = []
58
+ Dir::entries(d).each do |e|
59
+ path = "#{d}/#{e}"
60
+ images << path if File::ftype(path) == 'file'
61
+ end
62
+ evidences[File.basename(d)] = images
63
+ end
64
+ end
65
+ # Generate spreadsheet
66
+ name = Config.instance.project_name
67
+ name = 'recot' if name.empty?
68
+ to_spreadsheet("#{name}.xlsx", evidences)
69
+ end
70
+
71
+ # Export spreadsheet.
72
+ #
73
+ # == Parameters:
74
+ # A spreadsheet file name
75
+ def to_spreadsheet(filename, evidences)
76
+ p = Axlsx::Package.new
77
+ wb = p.workbook
78
+
79
+ # Loop all evidences.
80
+ evidences.each do |no, evi|
81
+
82
+ # Add worksheet.
83
+ wb.add_worksheet(:name => no) do |sheet|
84
+
85
+ evi.each_with_index do |e, index|
86
+ sheet.add_row [File.basename(e)]
87
+ sheet.column_info.first.width = 5
88
+
89
+ # Add images.
90
+ sheet.add_image(:image_src => e, :noSelect => true, :noMove => true) do |image|
91
+ image.width = IMAGE_SIZE_WIDTH
92
+ image.height = IMAGE_SIZE_HEIGHT
93
+ image.start_at 1, 1 + index * IMAGE_SIZE_ROWS
94
+
95
+ end
96
+ (IMAGE_SIZE_ROWS - 1).times {
97
+ sheet.add_row
98
+ }
99
+
100
+ end
101
+ end
102
+
103
+ end
104
+ p.serialize(filename)
105
+ end
106
+ end
107
+
108
+ end
109
+ end
110
+ end
@@ -1,5 +1,5 @@
1
1
  # coding: utf-8
2
2
 
3
3
  module Recot
4
- VERSION = "0.2.1"
4
+ VERSION = "0.2.2"
5
5
  end
@@ -31,6 +31,7 @@ Gem::Specification.new do |spec|
31
31
  spec.add_runtime_dependency "wdm", ">= 0.1.0" if Gem.win_platform?
32
32
  spec.add_runtime_dependency "clipboard", "~> 1.1"
33
33
  spec.add_runtime_dependency "ffi", "~> 1.9" if Gem.win_platform?
34
+ spec.add_runtime_dependency "axlsx", "~> 2.0"
34
35
 
35
36
  # Development Dependencies
36
37
  spec.add_development_dependency "rake", "~> 10.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: recot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - slowhand0309
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-05 00:00:00.000000000 Z
11
+ date: 2016-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gli
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '1.1'
125
+ - !ruby/object:Gem::Dependency
126
+ name: axlsx
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '2.0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '2.0'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: rake
127
141
  requirement: !ruby/object:Gem::Requirement
@@ -186,6 +200,7 @@ files:
186
200
  - lib/recot/tasks/sync_task.rb
187
201
  - lib/recot/utils/browser_util.rb
188
202
  - lib/recot/utils/clipboard_util.rb
203
+ - lib/recot/utils/export_util.rb
189
204
  - lib/recot/utils/recot_util.rb
190
205
  - lib/recot/utils/screencap_util.rb
191
206
  - lib/recot/version.rb