qa_at_migration 1.0.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 +7 -0
- data/bin/qa_at_migration +5 -0
- data/lib/qa_at_migration.rb +43 -0
- data/lib/qa_at_migration/generator.rb +28 -0
- data/lib/qa_at_migration/test_file.rb +62 -0
- data/lib/qa_at_migration/translator.rb +16 -0
- metadata +64 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: ec11e2160ea631a1f2ff20a5b6dad4b7cd5ef0a9208e038561b113bc222a2d29
|
4
|
+
data.tar.gz: a826c0007000fefc1f4c102ead9094dc5ea5459318bbf538e2f5161704fab68c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7c22b97e71d6d26b9049a9e4c3fa364f4d32c257fbce9f651d935d2356c87f0af5114a456074698774098acaa92584aca20de609fe77809d33bb67019798c182
|
7
|
+
data.tar.gz: e37ac87fe73d46d70954decc1d014ec56c794b8afcf05c2640ccf9f385e2d8ec133384b2385d37ab54b381cc07ca77e4409cc1416b97420ab374295d2e6711a3
|
data/bin/qa_at_migration
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'yaml'
|
3
|
+
require 'csv'
|
4
|
+
|
5
|
+
require 'qa_at_migration/translator'
|
6
|
+
require 'qa_at_migration/test_file'
|
7
|
+
require 'qa_at_migration/generator'
|
8
|
+
|
9
|
+
module QaAtMigration
|
10
|
+
class ThorCommands < Thor
|
11
|
+
option :sourcepath, :aliases => "-s", :required => true, :banner => '</path/to/project>'
|
12
|
+
option :targetpath, :aliases => "-t", :required => false, :banner => '</path/to/generate>, current path if no targetpath is provided'
|
13
|
+
desc "generate_csv [<OUTPUT_FILENAME>.csv]",
|
14
|
+
"The default value will be 'master.csv' if no OUTPUT_FILENAME is provided"
|
15
|
+
long_desc <<-LONGDESC
|
16
|
+
The default value will be 'master.csv' if no OUTPUT_FILENAME is provided.\n
|
17
|
+
This tool will look for all the *.md files that are inside </path/to/project> and convert each of them
|
18
|
+
into its csv representation and then stored into a single file called <OUTPUT_FILENAME>.csv inside
|
19
|
+
the </path/to/generate/> provided.
|
20
|
+
LONGDESC
|
21
|
+
def generate_csv *output_filename
|
22
|
+
output_filename = output_filename.length > 0 ? "#{output_filename[0]}.csv" : nil
|
23
|
+
if output_filename
|
24
|
+
Generator.new.generate options[:sourcepath], options[:targetpath], output_filename
|
25
|
+
else
|
26
|
+
Generator.new.generate options[:sourcepath], options[:targetpath]
|
27
|
+
end
|
28
|
+
end
|
29
|
+
desc "hello LANGUAGE", "say hello in LANGUAGE, default 'english'"
|
30
|
+
def hello(language = "english")
|
31
|
+
translator = Translator.new(language)
|
32
|
+
puts translator.hi
|
33
|
+
end
|
34
|
+
desc "say_hello NAME", "say hello to NAME"
|
35
|
+
def say_hello(name = nil)
|
36
|
+
if name
|
37
|
+
puts "hola #{name}"
|
38
|
+
else
|
39
|
+
puts "aún no sé cual es tu nombre"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module QaAtMigration
|
2
|
+
class Generator
|
3
|
+
CONFIG_FILE = 'config.yml'.freeze
|
4
|
+
CONFIG_IGNORE_KEY = 'ignore'.freeze
|
5
|
+
TEST_FILE_PATTERN = '**/*.md'.freeze
|
6
|
+
CSV_HEADERS = %w(Title Description Preconditions Steps Status).freeze
|
7
|
+
|
8
|
+
def generate sourcepath, targetpath, output_filename = 'master.csv'
|
9
|
+
@sourcepath = sourcepath
|
10
|
+
output_path_filename = targetpath ? File.join(targetpath, output_filename) : output_filename
|
11
|
+
CSV.open(output_path_filename, 'w', headers: CSV_HEADERS, write_headers: true) do |csv|
|
12
|
+
paths.each { |path| csv << TestFile.new(path).content }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def paths
|
19
|
+
Dir.glob(File.join(@sourcepath, TEST_FILE_PATTERN), File::FNM_CASEFOLD).reject do |filename|
|
20
|
+
File.directory?(filename) || File.basename(filename).start_with?(*ignored_files)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def ignored_files
|
25
|
+
YAML.load_file(File.join(@sourcepath, CONFIG_FILE))[CONFIG_IGNORE_KEY]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module QaAtMigration
|
2
|
+
class TestFile
|
3
|
+
DEFAULT_STATUS = 'Draft'.freeze
|
4
|
+
|
5
|
+
def initialize(path)
|
6
|
+
@path = path
|
7
|
+
end
|
8
|
+
|
9
|
+
def content
|
10
|
+
[
|
11
|
+
title,
|
12
|
+
description,
|
13
|
+
preconditions,
|
14
|
+
steps,
|
15
|
+
status
|
16
|
+
]
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def info
|
22
|
+
parts.first
|
23
|
+
end
|
24
|
+
|
25
|
+
def title
|
26
|
+
info[0].chomp.tap { |t| t[0..1] = '' }
|
27
|
+
end
|
28
|
+
|
29
|
+
def description
|
30
|
+
info[1].chomp
|
31
|
+
end
|
32
|
+
|
33
|
+
def preconditions
|
34
|
+
extract_steps(parts[1]) unless parts.length != 3
|
35
|
+
end
|
36
|
+
|
37
|
+
def steps
|
38
|
+
extract_steps(parts.last)
|
39
|
+
end
|
40
|
+
|
41
|
+
def status
|
42
|
+
DEFAULT_STATUS
|
43
|
+
end
|
44
|
+
|
45
|
+
def text
|
46
|
+
File.read(@path)
|
47
|
+
end
|
48
|
+
|
49
|
+
def parts
|
50
|
+
@parts ||= lines.slice_before(/^##? /).to_a
|
51
|
+
end
|
52
|
+
|
53
|
+
def lines
|
54
|
+
text.lines.reject { |line| line == "\n" || line.start_with?('<!---') }
|
55
|
+
end
|
56
|
+
|
57
|
+
def extract_steps(part)
|
58
|
+
part.shift
|
59
|
+
part.join('')
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
metadata
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: qa_at_migration
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Dennis Huillca
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-01-16 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: thor
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
description: this tool is used to make an easy migration of AT files (*.md) from the
|
28
|
+
github repository of AT
|
29
|
+
email: dhuillca@able.co
|
30
|
+
executables:
|
31
|
+
- qa_at_migration
|
32
|
+
extensions: []
|
33
|
+
extra_rdoc_files: []
|
34
|
+
files:
|
35
|
+
- bin/qa_at_migration
|
36
|
+
- lib/qa_at_migration.rb
|
37
|
+
- lib/qa_at_migration/generator.rb
|
38
|
+
- lib/qa_at_migration/test_file.rb
|
39
|
+
- lib/qa_at_migration/translator.rb
|
40
|
+
homepage: http://rubygems.org/gems/qa_at_migration
|
41
|
+
licenses:
|
42
|
+
- MIT
|
43
|
+
metadata: {}
|
44
|
+
post_install_message:
|
45
|
+
rdoc_options: []
|
46
|
+
require_paths:
|
47
|
+
- lib
|
48
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '0'
|
53
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0'
|
58
|
+
requirements: []
|
59
|
+
rubyforge_project:
|
60
|
+
rubygems_version: 2.7.4
|
61
|
+
signing_key:
|
62
|
+
specification_version: 4
|
63
|
+
summary: tool to make migration of AT files (*.md) easy
|
64
|
+
test_files: []
|