charter 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c4e96719e4864c6ac6f1e4d678cb678428efea7e
4
+ data.tar.gz: 2ad3b415180f28d880c02e0bdc3c7c22b019a6e8
5
+ SHA512:
6
+ metadata.gz: cb27ba1ce07226c0ff4125b1db19df0e78ce1ab553dcf3f99fbb246d05e7b5aa4c333f751c528adca786c60441ffd5eb7015760f4a0873e230b2552c5373205e
7
+ data.tar.gz: 7530defe081121d8bb0850299253ecfa46f6877ca95dcb69ce35200cb04e289a9a4d24f945f71f1e40c8864f050d766a5e11dcaa2a4580f991bdd15059d2020e
data/bin/charter ADDED
@@ -0,0 +1,83 @@
1
+ #!/usr/bin/env ruby
2
+ require 'gli'
3
+ require 'charter'
4
+
5
+ include GLI::App
6
+
7
+ doc = Doc.new
8
+
9
+ program_desc 'A command line tool for session based testing'
10
+
11
+ version Charter::VERSION
12
+
13
+ desc 'Starts a new session charter'
14
+ arg_name 'SessionName'
15
+ command :start do |c|
16
+ c.action do |global_options,options,args|
17
+ doc.create(args)
18
+ end
19
+ end
20
+
21
+ desc 'What are you testing'
22
+ arg_name 'What is the purpose of this session'
23
+ command :purpose, :p do |c|
24
+ c.action do |global_options,options,args|
25
+ doc.purpose(args[0])
26
+ end
27
+ end
28
+
29
+ desc 'Describe environment here'
30
+ arg_name 'List your environment'
31
+ command :env do |c|
32
+ c.action do |global_options,options,args|
33
+ doc.env(args[0])
34
+ end
35
+ end
36
+
37
+ desc 'Add a bug found during testing'
38
+ arg_name 'Add a bug to the current session'
39
+ command :bug do |c|
40
+ c.action do |global_options,options,args|
41
+ doc.bug(args[0])
42
+ end
43
+ end
44
+
45
+ desc 'Describe a scenario here'
46
+ arg_name 'Add a scenario to the current session'
47
+ command :scenario, :s do |c|
48
+ c.action do |global_options,options,args|
49
+ doc.scenario(args[0])
50
+ end
51
+ end
52
+
53
+ desc 'Final formatting to charter'
54
+ arg_name 'Type of export'
55
+ command :finish do |c|
56
+ c.action do |global_options,options,args|
57
+ c.flag :e
58
+ doc.finish
59
+ end
60
+ end
61
+
62
+ pre do |global,command,options,args|
63
+ # Pre logic here
64
+ # Return true to proceed; false to abort and not call the
65
+ # chosen command
66
+ # Use skips_pre before a command to skip this block
67
+ # on that command only
68
+ true
69
+ end
70
+
71
+ post do |global,command,options,args|
72
+ # Post logic here
73
+ # Use skips_post before a command to skip this
74
+ # block on that command only
75
+ end
76
+
77
+ on_error do |exception|
78
+ # Error logic here
79
+ # return false to skip default error handling
80
+ true
81
+ end
82
+
83
+ exit run(ARGV)
@@ -0,0 +1,22 @@
1
+ #Exploratory Testing Charter
2
+ <purpose>
3
+
4
+ ##Environment
5
+ <environment>
6
+
7
+ ##Length
8
+ Start Time: <start_time>
9
+ End Time: <end_time>
10
+
11
+ ##Tester
12
+ <tester>
13
+
14
+ ##Scenarios:
15
+ <scenarios>
16
+
17
+ ##Defects Found:
18
+ <defects>
19
+
20
+
21
+
22
+
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/ruby
2
+
3
+ class Doc
4
+
5
+ def initialize(input=nil)
6
+ @config = read_config
7
+ end
8
+
9
+ def create(name)
10
+ template = File.read('lib/charter/charter_template.md')
11
+ charter = File.new("#{@config['session_folder']}/#{name[0]}.md", "w+")
12
+ charter.write(template)
13
+ charter.close
14
+
15
+ @config['current_session'] = "#{@config['session_folder']}/#{name[0]}.md"
16
+
17
+ replace_text('<start_time>', Time.now.strftime("%m/%d/%Y %H:%M") + " \r\n")
18
+ replace_text('<tester>', @config['tester'])
19
+
20
+ write_config
21
+ end
22
+
23
+ def bug(text)
24
+ replace_text('<defects>', "1. #{text} \r\n<defects>")
25
+ end
26
+
27
+ def scenario(text)
28
+ replace_text('<scenarios>', "1. #{text} \r\n<scenarios>")
29
+ end
30
+
31
+ def env(text)
32
+ replace_text("<environment>", text)
33
+ end
34
+
35
+ def purpose(text)
36
+ replace_text("<purpose>", text)
37
+ end
38
+
39
+ def finish
40
+ replace_text('<end_time>', Time.now.strftime("%m/%d/%Y %H:%M"))
41
+
42
+ aString = File.read(@config['current_session'])
43
+ #remove remaining placeholders
44
+ aString.gsub!(/\<(.*?)\>/, "")
45
+ file = File.open(@config['current_session'], "w")
46
+ file.puts aString
47
+ file.close
48
+ end
49
+
50
+ def export(name)
51
+ renderer = Redcarpet::Render::HTML.new(render_options = {})
52
+ markdown = Redcarpet::Markdown.new(renderer, extensions = {})
53
+ text = File.read(@config['current_session'])
54
+ html_file = File.new("#{@config['session_folder']}/#{name}.html", "w+")
55
+ html_text = markdown.render(text)
56
+ html_file.write(html_text)
57
+ end
58
+
59
+ def replace_text(find,replace)
60
+ aString = File.read(@config['current_session'])
61
+ aString.gsub!(find, replace)
62
+ file = File.open(@config['current_session'], "w")
63
+ file.puts aString
64
+ file.close
65
+ end
66
+
67
+ private
68
+ def read_config
69
+ if File.exists? File.expand_path(SESSION_CONFIG)
70
+ return YAML.load_file(File.expand_path(SESSION_CONFIG))
71
+ else
72
+ return {}
73
+ end
74
+ end
75
+
76
+ def write_config
77
+ File.open(File.expand_path(SESSION_CONFIG), 'w') { |yf| YAML::dump(@config, yf) }
78
+ end
79
+ end
@@ -0,0 +1,3 @@
1
+ module Charter
2
+ VERSION = '0.0.2'
3
+ end
data/lib/charter.rb ADDED
@@ -0,0 +1,9 @@
1
+ require 'charter/version.rb'
2
+ require 'fileutils'
3
+ require 'charter/doc.rb'
4
+ require 'redcarpet'
5
+ require 'yaml'
6
+ require 'time'
7
+ require 'date'
8
+
9
+ SESSION_CONFIG = "~/.charterrc"
metadata ADDED
@@ -0,0 +1,124 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: charter
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Mark Grossman
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-04-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rdoc
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: aruba
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: gli
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 2.9.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 2.9.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: redcarpet
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 3.1.1
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 3.1.1
83
+ description:
84
+ email: mark@testwith.me
85
+ executables:
86
+ - charter
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - bin/charter
91
+ - lib/charter.rb
92
+ - lib/charter/charter_template.md
93
+ - lib/charter/doc.rb
94
+ - lib/charter/version.rb
95
+ homepage: http://testwith.me
96
+ licenses: []
97
+ metadata: {}
98
+ post_install_message:
99
+ rdoc_options:
100
+ - "--title"
101
+ - charter
102
+ - "--main"
103
+ - README.rdoc
104
+ - "-ri"
105
+ require_paths:
106
+ - lib
107
+ - lib
108
+ required_ruby_version: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ required_rubygems_version: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ requirements: []
119
+ rubyforge_project:
120
+ rubygems_version: 2.2.2
121
+ signing_key:
122
+ specification_version: 4
123
+ summary: A CLI for creating a session based testing charter
124
+ test_files: []