dtf 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.rspec +1 -1
- data/.travis.yml +7 -2
- data/Gemfile +3 -2
- data/README.md +105 -6
- data/Rakefile +2 -0
- data/app/models/analysis_case.rb +1 -1
- data/app/models/case_test.rb +1 -1
- data/app/models/user.rb +3 -2
- data/app/models/verification_suite.rb +1 -1
- data/bin/dtf +23 -20
- data/db/seeds.rb +4 -0
- data/doc/AnalysisCase.html +123 -0
- data/doc/CaseTest.html +123 -0
- data/doc/Dtf.html +129 -0
- data/doc/Dtf/DtfCommands.html +471 -0
- data/doc/User.html +123 -0
- data/doc/VerificationSuite.html +123 -0
- data/doc/_index.html +171 -0
- data/doc/class_list.html +53 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +57 -0
- data/doc/css/style.css +328 -0
- data/doc/file.README.html +256 -0
- data/doc/file_list.html +55 -0
- data/doc/frames.html +28 -0
- data/doc/index.html +256 -0
- data/doc/js/app.js +214 -0
- data/doc/js/full_list.js +173 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +100 -0
- data/doc/top-level-namespace.html +274 -0
- data/dtf.gemspec +3 -1
- data/lib/config/environment.rb +1 -1
- data/lib/dtf.rb +85 -2
- data/lib/dtf/dtf_error_system.rb +16 -0
- data/lib/dtf/dtf_help_system.rb +55 -0
- data/lib/dtf/version.rb +2 -2
- data/lib/tasks/setup.thor +5 -3
- data/spec/acceptance/create_basic_associations.feature +13 -0
- data/spec/acceptance/implement_help_system.feature +16 -0
- data/spec/fabricators/analysis_case_fabricator.rb +1 -1
- data/spec/fabricators/case_test_fabricator.rb +1 -1
- data/spec/fabricators/user_fabricator.rb +4 -4
- data/spec/fabricators/verification_suite_fabricator.rb +1 -1
- data/spec/models/analysis_case_spec.rb +53 -11
- data/spec/models/case_test_spec.rb +57 -11
- data/spec/models/user_spec.rb +46 -11
- data/spec/models/verification_suite_spec.rb +52 -12
- data/spec/spec_helper.rb +21 -1
- data/spec/steps/feature_steps.rb +14 -12
- data/spec/support/custom_matchers/model_steps.rb +17 -18
- metadata +77 -18
- data/bin/dtf-create_user +0 -11
- data/bin/dtf-create_vs +0 -10
- data/bin/dtf-delete_user +0 -18
- data/bin/dtf-delete_vs +0 -14
- data/bin/dtf-setup +0 -7
- data/spec/acceptance/0001_create_basic_models.feature +0 -9
- data/spec/acceptance/0002_create_basic_associations.feature +0 -11
- data/spec/acceptance/0003_execute_help_switch.feature +0 -7
data/.rspec
CHANGED
@@ -1 +1 @@
|
|
1
|
-
-r turnip/rspec --color
|
1
|
+
-r turnip/rspec --color --format doc
|
data/.travis.yml
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
rvm:
|
2
2
|
- 1.9.3
|
3
|
+
before_install:
|
4
|
+
- gem update bundler
|
3
5
|
before_script:
|
4
6
|
- RAILS_ENV='development' bundle exec thor dtf_setup:config
|
5
7
|
- RAILS_ENV='development' bundle exec rake db:migrate
|
@@ -10,7 +12,10 @@ notifications:
|
|
10
12
|
irc:
|
11
13
|
channels:
|
12
14
|
- "irc.freenode.org#dtf-gems"
|
15
|
+
on_success: always
|
16
|
+
on_failure: always
|
13
17
|
email:
|
14
18
|
recipients:
|
15
|
-
- me@
|
16
|
-
|
19
|
+
- me@daviddwdowney.com
|
20
|
+
on_success: always
|
21
|
+
on_failure: always
|
data/Gemfile
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# encoding: UTF-8
|
3
2
|
source 'https://rubygems.org'
|
3
|
+
ruby "1.9.3"
|
4
4
|
|
5
5
|
# Specify your gem's dependencies in dtf.gemspec
|
6
6
|
group :development, :test do
|
@@ -21,6 +21,7 @@ group :development, :test do
|
|
21
21
|
gem "jist"
|
22
22
|
gem "pry-theme"
|
23
23
|
gem 'simplecov'
|
24
|
+
gem 'database_cleaner'
|
24
25
|
end
|
25
26
|
|
26
27
|
gemspec
|
data/README.md
CHANGED
@@ -77,12 +77,111 @@ really is when it comes to version numbers and what they mean. This _will_ be a
|
|
77
77
|
|
78
78
|
|
79
79
|
## Installation
|
80
|
-
|
81
|
-
|
80
|
+
DTF uses Thor for setup and configuration, and has 3 possible sub-tasks under task name 'dtf_setup':
|
81
|
+
|
82
|
+
```sh
|
83
|
+
∴ thor list
|
84
|
+
dtf_setup
|
85
|
+
---------
|
86
|
+
thor dtf_setup:config [NAME] # Copy db configuration file(s)
|
87
|
+
thor dtf_setup:install # Installs database migrations, the main schema, and configuration files
|
88
|
+
```
|
89
|
+
|
90
|
+
As you can see, you can copy just the db config files, and/or the migrations, and main schema.
|
91
|
+
|
92
|
+
```sh
|
93
|
+
∴ thor help dtf_setup
|
94
|
+
Tasks:
|
95
|
+
thor dtf_setup:config [NAME] # Copy db configuration file(s)
|
96
|
+
thor dtf_setup:help [TASK] # Describe available tasks or one specific task
|
97
|
+
thor dtf_setup:install # Installs database migrations, the main schema, and configuration files
|
98
|
+
```
|
99
|
+
|
100
|
+
To see how to install everything you would run the following command:
|
101
|
+
|
102
|
+
```sh
|
103
|
+
∴ thor dtf_setup:help install
|
104
|
+
Usage:
|
105
|
+
thor dtf_setup:install
|
106
|
+
|
107
|
+
Options:
|
108
|
+
[--force]
|
109
|
+
|
110
|
+
Installs database migrations, the main schema, and configuration files
|
111
|
+
```
|
112
|
+
|
113
|
+
To see how to install just the configuration files for accessing the database(s), you would run:
|
114
|
+
|
115
|
+
```sh
|
116
|
+
∴ thor dtf_setup:help config
|
117
|
+
Usage:
|
118
|
+
thor dtf_setup:config [NAME]
|
119
|
+
|
120
|
+
Options:
|
121
|
+
[--force]
|
122
|
+
|
123
|
+
Copy db configuration file(s)
|
124
|
+
```
|
125
|
+
|
126
|
+
Once the configuration files and/or database migrations are in place, the remaining setup is handled by 'rake'.
|
127
|
+
To see all possible commands, you would run 'rake -T', and pick the one(s) you need.
|
128
|
+
|
129
|
+
```sh
|
130
|
+
∴ rake -T
|
131
|
+
rake build # Build dtf-0.2.2.gem into the pkg directory
|
132
|
+
rake db:create # Create the database from config/database.yml for the current Rails.env (use db:create:all to create all dbs i...
|
133
|
+
rake db:drop # Drops the database for the current Rails.env (use db:drop:all to drop all databases)
|
134
|
+
rake db:fixtures:load # Load fixtures into the current environment's database.
|
135
|
+
rake db:migrate # Migrate the database (options: VERSION=x, VERBOSE=false).
|
136
|
+
rake db:migrate:status # Display status of migrations
|
137
|
+
rake db:new_migration # Create a new migration
|
138
|
+
rake db:rollback # Rolls the schema back to the previous version (specify steps w/ STEP=n).
|
139
|
+
rake db:schema:dump # Create a db/schema.rb file that can be portably used against any DB supported by AR
|
140
|
+
rake db:schema:load # Load a schema.rb file into the database
|
141
|
+
rake db:seed # Load the seed data from db/seeds.rb
|
142
|
+
rake db:setup # Create the database, load the schema, and initialize with the seed data (use db:reset to also drop the db first)
|
143
|
+
rake db:structure:dump # Dump the database structure to db/structure.sql. Specify another file with DB_STRUCTURE=db/my_structure.sql
|
144
|
+
rake db:version # Retrieves the current schema version number
|
145
|
+
rake install # Build and install dtf-0.2.2.gem into system gems
|
146
|
+
rake release # Create tag v0.2.2 and build and push dtf-0.2.2.gem to Rubygems
|
147
|
+
```
|
82
148
|
|
83
149
|
|
84
150
|
## Usage
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
151
|
+
Once you have finished configuring your database(s) and applying all migrations, you are now ready to work with
|
152
|
+
DTF directly. The following is a summary of all current possible commands, and their expected options/parameters:
|
153
|
+
|
154
|
+
```sh
|
155
|
+
dtf -v|--version -h|--help [[sub_cmds <options>] -h|--help]
|
156
|
+
|
157
|
+
Valid [sub_cmds] are: create_(user|vs), delete_(user|vs)
|
158
|
+
See 'dtf [sub_cmd] -h' for each sub_cmd's details and options
|
159
|
+
|
160
|
+
dtf create_user -h
|
161
|
+
Options:
|
162
|
+
--user-name, -u <s>: Username for new TF user - REQUIRED
|
163
|
+
--full-name, -n <s>: Real name for new TF user - REQUIRED
|
164
|
+
--email-address, -e <s>: Email address for new TF user - REQUIRED
|
165
|
+
--help, -h: Show this message
|
166
|
+
|
167
|
+
dtf delete_user -h
|
168
|
+
Options:
|
169
|
+
--user-name, -u <s>: Username of TF user to delete - REQUIRED
|
170
|
+
--delete-all, --no-delete-all, -d: Delete _all_ VSs this user owns (default: true)
|
171
|
+
--help, -h: Show this message
|
172
|
+
|
173
|
+
dtf create_vs -h
|
174
|
+
Options:
|
175
|
+
--user-name, -u <s>: TF user to associate this VS with - REQUIRED
|
176
|
+
--name, -n <s>: Name for new VS - REQUIRED
|
177
|
+
--description, -d <s>: Description of VS's intended use - OPTIONAL (default: )
|
178
|
+
--help, -h: Show this message
|
179
|
+
|
180
|
+
dtf delete_vs -h
|
181
|
+
Options:
|
182
|
+
--user-name, -u <s>: Username of VS owner - REQUIRED
|
183
|
+
--id, -i <i>: ID of VS to be deleted - REQUIRED
|
184
|
+
--help, -h: Show this message
|
185
|
+
```
|
186
|
+
|
187
|
+
Enjoy!
|
data/Rakefile
CHANGED
data/app/models/analysis_case.rb
CHANGED
data/app/models/case_test.rb
CHANGED
data/app/models/user.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
-
#
|
1
|
+
# encoding: UTF-8
|
2
2
|
|
3
3
|
class User < ActiveRecord::Base
|
4
4
|
|
5
5
|
attr_accessible :full_name, :email_address, :user_name
|
6
|
-
|
6
|
+
validates :full_name, :email_address, :user_name, :presence => true
|
7
|
+
validates :user_name, :email_address, :uniqueness => true
|
7
8
|
|
8
9
|
has_many :verification_suites, :dependent => :destroy
|
9
10
|
has_many :analysis_cases, :through => :verification_suites, :dependent => :destroy
|
data/bin/dtf
CHANGED
@@ -1,28 +1,31 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
# encoding: UTF-8
|
3
|
+
# (c) Copyright 2012 David Deryl Downey / Deryl R. Doucette. All Rights Reserved.
|
2
4
|
#
|
3
|
-
# This is the master script
|
4
|
-
# Analysis Cases, and Case Tests
|
5
|
-
#
|
6
|
-
# Ex: dtf create_user -u|--user @user_name -n|--name "John Public" -e|--email
|
7
|
-
# "j@public.com"
|
8
|
-
#
|
9
|
-
# -u -n and -e are _required_ parameters
|
10
|
-
#
|
11
|
-
# Accessing the help system
|
12
|
-
# Ex: dtf help create_user
|
5
|
+
# This is the master script for managing Users and Verification Suites
|
13
6
|
|
14
7
|
require 'dtf'
|
15
|
-
require 'optparse'
|
16
8
|
|
17
|
-
|
9
|
+
# -- LOAD HELP SYSTEM
|
10
|
+
require 'dtf/dtf_help_system'
|
11
|
+
|
12
|
+
# -- LOAD ERROR SYSTEM
|
13
|
+
require 'dtf/dtf_error_system'
|
18
14
|
|
19
|
-
|
20
|
-
|
15
|
+
|
16
|
+
# -- START MAIN APPLICATION
|
17
|
+
# Ensure we have *all* required options for each possible sub_cmd
|
18
|
+
case @cmd
|
19
|
+
when "create_user"
|
20
|
+
Dtf::DtfCommands.create_user(@cmd_opts)
|
21
|
+
|
22
|
+
when "delete_user"
|
23
|
+
Dtf::DtfCommands.delete_user(@cmd, @cmd_opts)
|
24
|
+
|
25
|
+
when "create_vs"
|
26
|
+
Dtf::DtfCommands.create_vs(@cmd_opts)
|
21
27
|
|
22
|
-
|
23
|
-
|
24
|
-
options[:help] = h
|
25
|
-
puts opts
|
26
|
-
end
|
28
|
+
when "delete_vs"
|
29
|
+
Dtf::DtfCommands.delete_vs(@cmd, @cmd_opts)
|
27
30
|
|
28
|
-
end
|
31
|
+
end
|
data/db/seeds.rb
ADDED
@@ -0,0 +1,123 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
6
|
+
<title>
|
7
|
+
Class: AnalysisCase
|
8
|
+
|
9
|
+
— Documentation by YARD 0.8.2.1
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
|
16
|
+
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
18
|
+
hasFrames = window.top.frames.main ? true : false;
|
19
|
+
relpath = '';
|
20
|
+
framesUrl = "frames.html#!" + escape(window.location.href);
|
21
|
+
</script>
|
22
|
+
|
23
|
+
|
24
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
25
|
+
|
26
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
27
|
+
|
28
|
+
|
29
|
+
</head>
|
30
|
+
<body>
|
31
|
+
<div id="header">
|
32
|
+
<div id="menu">
|
33
|
+
|
34
|
+
<a href="_index.html">Index (A)</a> »
|
35
|
+
|
36
|
+
|
37
|
+
<span class="title">AnalysisCase</span>
|
38
|
+
|
39
|
+
|
40
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
41
|
+
</div>
|
42
|
+
|
43
|
+
<div id="search">
|
44
|
+
|
45
|
+
<a class="full_list_link" id="class_list_link"
|
46
|
+
href="class_list.html">
|
47
|
+
Class List
|
48
|
+
</a>
|
49
|
+
|
50
|
+
<a class="full_list_link" id="method_list_link"
|
51
|
+
href="method_list.html">
|
52
|
+
Method List
|
53
|
+
</a>
|
54
|
+
|
55
|
+
<a class="full_list_link" id="file_list_link"
|
56
|
+
href="file_list.html">
|
57
|
+
File List
|
58
|
+
</a>
|
59
|
+
|
60
|
+
</div>
|
61
|
+
<div class="clear"></div>
|
62
|
+
</div>
|
63
|
+
|
64
|
+
<iframe id="search_frame"></iframe>
|
65
|
+
|
66
|
+
<div id="content"><h1>Class: AnalysisCase
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
</h1>
|
71
|
+
|
72
|
+
<dl class="box">
|
73
|
+
|
74
|
+
<dt class="r1">Inherits:</dt>
|
75
|
+
<dd class="r1">
|
76
|
+
<span class="inheritName">ActiveRecord::Base</span>
|
77
|
+
|
78
|
+
<ul class="fullTree">
|
79
|
+
<li>Object</li>
|
80
|
+
|
81
|
+
<li class="next">ActiveRecord::Base</li>
|
82
|
+
|
83
|
+
<li class="next">AnalysisCase</li>
|
84
|
+
|
85
|
+
</ul>
|
86
|
+
<a href="#" class="inheritanceTree">show all</a>
|
87
|
+
|
88
|
+
</dd>
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
<dt class="r2 last">Defined in:</dt>
|
99
|
+
<dd class="r2 last">app/models/analysis_case.rb</dd>
|
100
|
+
|
101
|
+
</dl>
|
102
|
+
<div class="clear"></div>
|
103
|
+
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
|
114
|
+
</div>
|
115
|
+
|
116
|
+
<div id="footer">
|
117
|
+
Generated on Fri Sep 14 22:41:21 2012 by
|
118
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
119
|
+
0.8.2.1 (ruby-1.9.3).
|
120
|
+
</div>
|
121
|
+
|
122
|
+
</body>
|
123
|
+
</html>
|
data/doc/CaseTest.html
ADDED
@@ -0,0 +1,123 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
6
|
+
<title>
|
7
|
+
Class: CaseTest
|
8
|
+
|
9
|
+
— Documentation by YARD 0.8.2.1
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
|
16
|
+
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
18
|
+
hasFrames = window.top.frames.main ? true : false;
|
19
|
+
relpath = '';
|
20
|
+
framesUrl = "frames.html#!" + escape(window.location.href);
|
21
|
+
</script>
|
22
|
+
|
23
|
+
|
24
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
25
|
+
|
26
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
27
|
+
|
28
|
+
|
29
|
+
</head>
|
30
|
+
<body>
|
31
|
+
<div id="header">
|
32
|
+
<div id="menu">
|
33
|
+
|
34
|
+
<a href="_index.html">Index (C)</a> »
|
35
|
+
|
36
|
+
|
37
|
+
<span class="title">CaseTest</span>
|
38
|
+
|
39
|
+
|
40
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
41
|
+
</div>
|
42
|
+
|
43
|
+
<div id="search">
|
44
|
+
|
45
|
+
<a class="full_list_link" id="class_list_link"
|
46
|
+
href="class_list.html">
|
47
|
+
Class List
|
48
|
+
</a>
|
49
|
+
|
50
|
+
<a class="full_list_link" id="method_list_link"
|
51
|
+
href="method_list.html">
|
52
|
+
Method List
|
53
|
+
</a>
|
54
|
+
|
55
|
+
<a class="full_list_link" id="file_list_link"
|
56
|
+
href="file_list.html">
|
57
|
+
File List
|
58
|
+
</a>
|
59
|
+
|
60
|
+
</div>
|
61
|
+
<div class="clear"></div>
|
62
|
+
</div>
|
63
|
+
|
64
|
+
<iframe id="search_frame"></iframe>
|
65
|
+
|
66
|
+
<div id="content"><h1>Class: CaseTest
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
</h1>
|
71
|
+
|
72
|
+
<dl class="box">
|
73
|
+
|
74
|
+
<dt class="r1">Inherits:</dt>
|
75
|
+
<dd class="r1">
|
76
|
+
<span class="inheritName">ActiveRecord::Base</span>
|
77
|
+
|
78
|
+
<ul class="fullTree">
|
79
|
+
<li>Object</li>
|
80
|
+
|
81
|
+
<li class="next">ActiveRecord::Base</li>
|
82
|
+
|
83
|
+
<li class="next">CaseTest</li>
|
84
|
+
|
85
|
+
</ul>
|
86
|
+
<a href="#" class="inheritanceTree">show all</a>
|
87
|
+
|
88
|
+
</dd>
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
<dt class="r2 last">Defined in:</dt>
|
99
|
+
<dd class="r2 last">app/models/case_test.rb</dd>
|
100
|
+
|
101
|
+
</dl>
|
102
|
+
<div class="clear"></div>
|
103
|
+
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
|
114
|
+
</div>
|
115
|
+
|
116
|
+
<div id="footer">
|
117
|
+
Generated on Fri Sep 14 22:41:21 2012 by
|
118
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
119
|
+
0.8.2.1 (ruby-1.9.3).
|
120
|
+
</div>
|
121
|
+
|
122
|
+
</body>
|
123
|
+
</html>
|