jazrb 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +20 -0
- data/README.rdoc +134 -0
- data/bin/autojaz +4 -0
- data/bin/jazrb +230 -0
- data/doc/jasmine/files.html +460 -0
- data/doc/jasmine/index.html +322 -0
- data/doc/jasmine/symbols/_global_.html +1083 -0
- data/doc/jasmine/symbols/jasmine.Block.html +417 -0
- data/doc/jasmine/symbols/jasmine.Clock.html +678 -0
- data/doc/jasmine/symbols/jasmine.Env.html +1135 -0
- data/doc/jasmine/symbols/jasmine.EnvjsReporter.html +328 -0
- data/doc/jasmine/symbols/jasmine.JsApiReporter.html +822 -0
- data/doc/jasmine/symbols/jasmine.Matchers.html +1106 -0
- data/doc/jasmine/symbols/jasmine.MultiReporter.html +394 -0
- data/doc/jasmine/symbols/jasmine.NestedResults.html +710 -0
- data/doc/jasmine/symbols/jasmine.Reporter.html +574 -0
- data/doc/jasmine/symbols/jasmine.Runner.html +710 -0
- data/doc/jasmine/symbols/jasmine.Spec.html +1372 -0
- data/doc/jasmine/symbols/jasmine.Spy.html +855 -0
- data/doc/jasmine/symbols/jasmine.Suite.html +705 -0
- data/doc/jasmine/symbols/jasmine.XMLReporter.html +328 -0
- data/doc/jasmine/symbols/jasmine.html +1359 -0
- data/doc/jasmine/symbols/jasmine.util.html +535 -0
- data/doc/jasmine/symbols/src/lib_EnvjsReporter.js.html +149 -0
- data/doc/jasmine/symbols/src/lib_TrivialReporter.js.html +127 -0
- data/doc/jasmine/symbols/src/lib_XMLReporter.js.html +210 -0
- data/doc/jasmine/symbols/src/src_Block.js.html +35 -0
- data/doc/jasmine/symbols/src/src_Env.js.html +233 -0
- data/doc/jasmine/symbols/src/src_JsApiReporter.js.html +110 -0
- data/doc/jasmine/symbols/src/src_Matchers.js.html +399 -0
- data/doc/jasmine/symbols/src/src_MultiReporter.js.html +36 -0
- data/doc/jasmine/symbols/src/src_NestedResults.js.html +88 -0
- data/doc/jasmine/symbols/src/src_PrettyPrinter.js.html +128 -0
- data/doc/jasmine/symbols/src/src_Queue.js.html +119 -0
- data/doc/jasmine/symbols/src/src_Reporter.js.html +35 -0
- data/doc/jasmine/symbols/src/src_Reporters.js.html +51 -0
- data/doc/jasmine/symbols/src/src_Runner.js.html +75 -0
- data/doc/jasmine/symbols/src/src_Spec.js.html +228 -0
- data/doc/jasmine/symbols/src/src_Suite.js.html +77 -0
- data/doc/jasmine/symbols/src/src_WaitsBlock.js.html +21 -0
- data/doc/jasmine/symbols/src/src_WaitsForBlock.js.html +45 -0
- data/doc/jasmine/symbols/src/src_base.js.html +566 -0
- data/doc/jasmine/symbols/src/src_mock-timeout.js.html +185 -0
- data/doc/jasmine/symbols/src/src_util.js.html +75 -0
- data/lib/autotest/discover.rb +3 -0
- data/lib/autotest/jazrb.rb +55 -0
- data/lib/jazrb/intro.js +46 -0
- data/lib/jazrb/jasmine/EnvjsReporter.js +141 -0
- data/lib/jazrb/jasmine/TrivialReporter.js +155 -0
- data/lib/jazrb/jasmine/XMLReporter.js +241 -0
- data/lib/jazrb/jasmine/consolex.js +28 -0
- data/lib/jazrb/jasmine/jasmine-0.10.0.js +2526 -0
- data/lib/jazrb/jasmine/jasmine.js +2526 -0
- data/lib/jazrb/jasmine/json2.js +478 -0
- data/lib/jazrb/options.rb +26 -0
- data/lib/jazrb/outro.js +3 -0
- data/lib/jazrb/qintro.js +113 -0
- data/lib/jazrb/qoutro.js +3 -0
- data/lib/jazrb/qunit/qunit.css +17 -0
- data/lib/jazrb/qunit/qunit.js +1027 -0
- data/lib/jazrb.rb +0 -0
- data/spec/example/hello_world_spec.js +29 -0
- data/spec/example/nested/HelloWorldSpec.js +13 -0
- data/spec/example/nested/SpecHelper.js +1 -0
- data/spec/example/plain_spec.js +8 -0
- data/spec/example/spec_helper.js +1 -0
- data/spec/spec_helper.js +18 -0
- data/spec/spec_runner.js +143 -0
- data/test/jazrb_test.rb +7 -0
- data/test/test_helper.rb +10 -0
- data/vendor/jasmine/MIT.LICENSE +20 -0
- data/vendor/jasmine/README.markdown +479 -0
- data/vendor/jasmine/Rakefile +155 -0
- data/vendor/jasmine/contrib/ruby/jasmine_runner.rb +334 -0
- data/vendor/jasmine/contrib/ruby/jasmine_spec_builder.rb +153 -0
- data/vendor/jasmine/contrib/ruby/run.html +47 -0
- data/vendor/jasmine/contrib/ruby/spec/jasmine_runner_spec.rb +71 -0
- data/vendor/jasmine/doc/files.html +460 -0
- data/vendor/jasmine/doc/index.html +322 -0
- data/vendor/jasmine/doc/symbols/_global_.html +1083 -0
- data/vendor/jasmine/doc/symbols/jasmine.Block.html +417 -0
- data/vendor/jasmine/doc/symbols/jasmine.Clock.html +678 -0
- data/vendor/jasmine/doc/symbols/jasmine.Env.html +1135 -0
- data/vendor/jasmine/doc/symbols/jasmine.EnvjsReporter.html +328 -0
- data/vendor/jasmine/doc/symbols/jasmine.JsApiReporter.html +822 -0
- data/vendor/jasmine/doc/symbols/jasmine.Matchers.html +1106 -0
- data/vendor/jasmine/doc/symbols/jasmine.MultiReporter.html +394 -0
- data/vendor/jasmine/doc/symbols/jasmine.NestedResults.html +710 -0
- data/vendor/jasmine/doc/symbols/jasmine.Reporter.html +574 -0
- data/vendor/jasmine/doc/symbols/jasmine.Runner.html +710 -0
- data/vendor/jasmine/doc/symbols/jasmine.Spec.html +1372 -0
- data/vendor/jasmine/doc/symbols/jasmine.Spy.html +855 -0
- data/vendor/jasmine/doc/symbols/jasmine.Suite.html +705 -0
- data/vendor/jasmine/doc/symbols/jasmine.XMLReporter.html +328 -0
- data/vendor/jasmine/doc/symbols/jasmine.html +1359 -0
- data/vendor/jasmine/doc/symbols/jasmine.util.html +535 -0
- data/vendor/jasmine/doc/symbols/src/lib_EnvjsReporter.js.html +149 -0
- data/vendor/jasmine/doc/symbols/src/lib_TrivialReporter.js.html +127 -0
- data/vendor/jasmine/doc/symbols/src/lib_XMLReporter.js.html +210 -0
- data/vendor/jasmine/doc/symbols/src/src_Block.js.html +35 -0
- data/vendor/jasmine/doc/symbols/src/src_Env.js.html +233 -0
- data/vendor/jasmine/doc/symbols/src/src_JsApiReporter.js.html +110 -0
- data/vendor/jasmine/doc/symbols/src/src_Matchers.js.html +399 -0
- data/vendor/jasmine/doc/symbols/src/src_MultiReporter.js.html +36 -0
- data/vendor/jasmine/doc/symbols/src/src_NestedResults.js.html +88 -0
- data/vendor/jasmine/doc/symbols/src/src_PrettyPrinter.js.html +128 -0
- data/vendor/jasmine/doc/symbols/src/src_Queue.js.html +119 -0
- data/vendor/jasmine/doc/symbols/src/src_Reporter.js.html +35 -0
- data/vendor/jasmine/doc/symbols/src/src_Reporters.js.html +51 -0
- data/vendor/jasmine/doc/symbols/src/src_Runner.js.html +75 -0
- data/vendor/jasmine/doc/symbols/src/src_Spec.js.html +228 -0
- data/vendor/jasmine/doc/symbols/src/src_Suite.js.html +77 -0
- data/vendor/jasmine/doc/symbols/src/src_WaitsBlock.js.html +21 -0
- data/vendor/jasmine/doc/symbols/src/src_WaitsForBlock.js.html +45 -0
- data/vendor/jasmine/doc/symbols/src/src_base.js.html +566 -0
- data/vendor/jasmine/doc/symbols/src/src_mock-timeout.js.html +185 -0
- data/vendor/jasmine/doc/symbols/src/src_util.js.html +75 -0
- data/vendor/jasmine/examples/html/example_suite.html +27 -0
- data/vendor/jasmine/examples/html/spec/example_suite.js +11 -0
- data/vendor/jasmine/examples/ruby/Rakefile +33 -0
- data/vendor/jasmine/examples/ruby/spec/example/example_spec.js +11 -0
- data/vendor/jasmine/examples/ruby/spec/jasmine_helper.rb +41 -0
- data/vendor/jasmine/examples/ruby/spec/jasmine_spec.rb +31 -0
- data/vendor/jasmine/examples/ruby/spec/saucelabs.yml +24 -0
- data/vendor/jasmine/geminstaller.yml +23 -0
- data/vendor/jasmine/images/fail-16.png +0 -0
- data/vendor/jasmine/images/fail.png +0 -0
- data/vendor/jasmine/images/go-16.png +0 -0
- data/vendor/jasmine/images/go.png +0 -0
- data/vendor/jasmine/images/pending-16.png +0 -0
- data/vendor/jasmine/images/pending.png +0 -0
- data/vendor/jasmine/images/question-bk.png +0 -0
- data/vendor/jasmine/images/questionbk-16.png +0 -0
- data/vendor/jasmine/images/spinner.gif +0 -0
- data/vendor/jasmine/jasmine.watchr +70 -0
- data/vendor/jasmine/lib/EnvjsReporter.js +141 -0
- data/vendor/jasmine/lib/TrivialReporter.js +155 -0
- data/vendor/jasmine/lib/XMLReporter.js +241 -0
- data/vendor/jasmine/lib/consolex.js +28 -0
- data/vendor/jasmine/lib/jasmine-0.10.0.js +2526 -0
- data/vendor/jasmine/lib/jasmine.css +86 -0
- data/vendor/jasmine/lib/json2.js +478 -0
- data/vendor/jasmine/spec/jasmine_helper.rb +44 -0
- data/vendor/jasmine/spec/jasmine_spec.rb +31 -0
- data/vendor/jasmine/spec/runner.html +43 -0
- data/vendor/jasmine/spec/runner.js +78 -0
- data/vendor/jasmine/spec/saucelabs.yml +24 -0
- data/vendor/jasmine/spec/suites/EnvSpec.js +71 -0
- data/vendor/jasmine/spec/suites/ExceptionsSpec.js +107 -0
- data/vendor/jasmine/spec/suites/JsApiReporterSpec.js +82 -0
- data/vendor/jasmine/spec/suites/MatchersSpec.js +589 -0
- data/vendor/jasmine/spec/suites/MockClockSpec.js +34 -0
- data/vendor/jasmine/spec/suites/MultiReporterSpec.js +30 -0
- data/vendor/jasmine/spec/suites/NestedResultsSpec.js +54 -0
- data/vendor/jasmine/spec/suites/PrettyPrintSpec.js +93 -0
- data/vendor/jasmine/spec/suites/QueueSpec.js +23 -0
- data/vendor/jasmine/spec/suites/ReporterSpec.js +60 -0
- data/vendor/jasmine/spec/suites/RunnerSpec.js +258 -0
- data/vendor/jasmine/spec/suites/SpecRunningSpec.js +1117 -0
- data/vendor/jasmine/spec/suites/SpecSpec.js +110 -0
- data/vendor/jasmine/spec/suites/SpySpec.js +187 -0
- data/vendor/jasmine/spec/suites/SuiteSpec.js +101 -0
- data/vendor/jasmine/spec/suites/TrivialReporterSpec.js +140 -0
- data/vendor/jasmine/spec/suites/UtilSpec.js +23 -0
- data/vendor/jasmine/src/Block.js +34 -0
- data/vendor/jasmine/src/Env.js +236 -0
- data/vendor/jasmine/src/JsApiReporter.js +103 -0
- data/vendor/jasmine/src/Matchers.js +326 -0
- data/vendor/jasmine/src/MultiReporter.js +28 -0
- data/vendor/jasmine/src/NestedResults.js +99 -0
- data/vendor/jasmine/src/PrettyPrinter.js +122 -0
- data/vendor/jasmine/src/Queue.js +210 -0
- data/vendor/jasmine/src/Reporter.js +27 -0
- data/vendor/jasmine/src/Reporters.js +43 -0
- data/vendor/jasmine/src/Runner.js +68 -0
- data/vendor/jasmine/src/Spec.js +254 -0
- data/vendor/jasmine/src/Suite.js +70 -0
- data/vendor/jasmine/src/WaitsBlock.js +13 -0
- data/vendor/jasmine/src/WaitsForBlock.js +38 -0
- data/vendor/jasmine/src/base.js +604 -0
- data/vendor/jasmine/src/mock-timeout.js +177 -0
- data/vendor/jasmine/src/util.js +67 -0
- data/vendor/jasmine/src/version.json +5 -0
- metadata +279 -0
data/lib/jazrb.rb
ADDED
File without changes
|
@@ -0,0 +1,29 @@
|
|
1
|
+
jasmine.include(jazrb_root + "/spec/example/spec_helper.js");
|
2
|
+
|
3
|
+
(function($){
|
4
|
+
|
5
|
+
describe("hello_world",function(){
|
6
|
+
|
7
|
+
describe("contents",function(){
|
8
|
+
|
9
|
+
var loops = 500000;
|
10
|
+
|
11
|
+
for(var i = 0; i < 10; i++ ) {
|
12
|
+
|
13
|
+
it("should contain the text 'Hello, World'",function(){
|
14
|
+
expect($("div:contains('Hello, World')").size()).toBeGreaterThan(0);
|
15
|
+
for(var j = 0; j<loops; j++);
|
16
|
+
});
|
17
|
+
|
18
|
+
it("should contain the text 'Hello, World'",function(){
|
19
|
+
expect($("div:contains('Hello, World')").size()).toBeGreaterThan(0);
|
20
|
+
for(var j = 0; j<loops; j++);
|
21
|
+
});
|
22
|
+
|
23
|
+
}
|
24
|
+
|
25
|
+
});
|
26
|
+
|
27
|
+
});
|
28
|
+
|
29
|
+
})(jQuery);
|
@@ -0,0 +1,13 @@
|
|
1
|
+
jasmine.include(jazrb_root + "/spec/example/nested/SpecHelper.js");
|
2
|
+
|
3
|
+
(function($){
|
4
|
+
|
5
|
+
describe("hello_world",function(){
|
6
|
+
|
7
|
+
it("should contain the text 'Hello, World'",function(){
|
8
|
+
expect($("div:contains('Hello, World')").size()).toBeGreaterThan(0);
|
9
|
+
});
|
10
|
+
|
11
|
+
});
|
12
|
+
|
13
|
+
})(jQuery);
|
@@ -0,0 +1 @@
|
|
1
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
|
data/spec/spec_helper.js
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
if(!this.jasmine){
|
2
|
+
document.write("<script type='text/javascript' src='" + jazrb_root + "/lib/jazrb/jasmine/jasmine.js'></script>");
|
3
|
+
document.write("<script type='text/javascript' src='" + jazrb_root + "/lib/jazrb/jasmine/TrivialReporter.js'></script>");
|
4
|
+
if(this.Envjs){
|
5
|
+
document.write("<script type='text/javascript' src='" + jazrb_root + "/lib/jazrb/jasmine/EnvjsReporter.js'></script>");
|
6
|
+
}
|
7
|
+
(function(){
|
8
|
+
var headID = document.getElementsByTagName("head")[0];
|
9
|
+
var cssNode = document.createElement('link');
|
10
|
+
cssNode.type = 'text/css';
|
11
|
+
cssNode.rel = 'stylesheet';
|
12
|
+
cssNode.href = jazrb_root + "/vendor/jasmine/lib/jasmine.css";
|
13
|
+
cssNode.media = 'screen';
|
14
|
+
headID.appendChild(cssNode);
|
15
|
+
})();
|
16
|
+
};
|
17
|
+
document.write("<script type='text/javascript' src='" + jazrb_root + "/vendor/jquery/dist/jquery.js'></script>");
|
18
|
+
document.write("<script type='text/javascript' src='" + jazrb_root + "/spec/spec_runner.js'></script>");
|
data/spec/spec_runner.js
ADDED
@@ -0,0 +1,143 @@
|
|
1
|
+
(function($){
|
2
|
+
|
3
|
+
var print = ( this.Envjs && this.print ) || ( this.console && this.console.debug ) || function(){};
|
4
|
+
|
5
|
+
var construct_path = function( source, result ) {
|
6
|
+
var levels = 0;
|
7
|
+
while( source.slice( source.length - 3 ) == "/.." ) {
|
8
|
+
levels++;
|
9
|
+
source = source.slice( 0, source.length - 3 );
|
10
|
+
}
|
11
|
+
var prefixes = [];
|
12
|
+
while(levels-->0) {
|
13
|
+
var slash = source.lastIndexOf("/");
|
14
|
+
if (slash<0) {
|
15
|
+
return "";
|
16
|
+
}
|
17
|
+
prefixes.unshift(source.slice(slash+1));
|
18
|
+
source = source.slice(0,slash);
|
19
|
+
}
|
20
|
+
return result+prefixes.join("/");
|
21
|
+
};
|
22
|
+
|
23
|
+
var spec_filename = function() {
|
24
|
+
var window = this;
|
25
|
+
path = window.location.toString();
|
26
|
+
var q = path.lastIndexOf("?");
|
27
|
+
if ( q >= 0 ) {
|
28
|
+
path = path.slice(0,q);
|
29
|
+
// print(path);
|
30
|
+
}
|
31
|
+
var slash = path.lastIndexOf("/");
|
32
|
+
if ( slash < 0 ) {
|
33
|
+
return path;
|
34
|
+
}
|
35
|
+
path = path.slice(slash+1);
|
36
|
+
var dot = path.lastIndexOf(".");
|
37
|
+
if ( dot > 0 ) {
|
38
|
+
path = path.slice(0,dot);
|
39
|
+
}
|
40
|
+
return path;
|
41
|
+
};
|
42
|
+
|
43
|
+
var find_specs = function() {
|
44
|
+
var path = window.location.toString();
|
45
|
+
var slash = path.lastIndexOf("/");
|
46
|
+
if ( slash < 0 ) {
|
47
|
+
return "";
|
48
|
+
}
|
49
|
+
var filename = path.slice(slash+1);
|
50
|
+
path = path.slice(0,slash);
|
51
|
+
path = construct_path( path + "/" + jazrb_root, jazrb_root + "/spec/" );
|
52
|
+
return [ path, spec_filename() ];
|
53
|
+
};
|
54
|
+
|
55
|
+
var load_file = function(filename) {
|
56
|
+
var contents = undefined;
|
57
|
+
$.ajax({ url: filename,
|
58
|
+
dataType: "text",
|
59
|
+
async: false,
|
60
|
+
error: function( xhr ) {
|
61
|
+
if(xhr.status != 404) {
|
62
|
+
throw "error on load_file xhr for " + filename + ": " + xhr.status;
|
63
|
+
}
|
64
|
+
},
|
65
|
+
success: function(data) { contents = data; } });
|
66
|
+
if ( contents ) {
|
67
|
+
return contents;
|
68
|
+
}
|
69
|
+
|
70
|
+
};
|
71
|
+
|
72
|
+
var load_first = function( fn, endings ) {
|
73
|
+
for (var i=0; i<endings.length; i++) {
|
74
|
+
var filename = fn + endings[i] + ".js";
|
75
|
+
if ( window.Envjs ) {
|
76
|
+
var root = window.location.toString();
|
77
|
+
var slash = root.lastIndexOf("/");
|
78
|
+
root = root.slice(0,slash+1);
|
79
|
+
root = root.replace(/^file:\/\//,"");
|
80
|
+
window.load(root + filename);
|
81
|
+
return;
|
82
|
+
} else {
|
83
|
+
var contents = load_file( filename );
|
84
|
+
if ( contents ) {
|
85
|
+
try {
|
86
|
+
eval(contents);
|
87
|
+
} catch(e) {
|
88
|
+
print("could not eval spec: ",e);
|
89
|
+
}
|
90
|
+
return;
|
91
|
+
}
|
92
|
+
}
|
93
|
+
}
|
94
|
+
};
|
95
|
+
|
96
|
+
var load_specs = function(specs) {
|
97
|
+
var path = specs[0], filename = specs[1];
|
98
|
+
var endings = [ "_spec", "Spec" ];
|
99
|
+
// Guess ending ... FIX: allow spec'ing of default order ...
|
100
|
+
if (filename.lastIndexOf("_") >= 0) {
|
101
|
+
endings = [ "_spec", "Spec" ];
|
102
|
+
} else if (filename.match(/[A-Z]/)) {
|
103
|
+
endings = [ "Spec", "_spec" ];
|
104
|
+
}
|
105
|
+
load_first( path+"/"+filename, endings );
|
106
|
+
};
|
107
|
+
|
108
|
+
var run_specs = function(){
|
109
|
+
if(!this.jazrb_root) {
|
110
|
+
return;
|
111
|
+
}
|
112
|
+
var specs = find_specs();
|
113
|
+
if (specs) {
|
114
|
+
load_specs(specs);
|
115
|
+
}
|
116
|
+
};
|
117
|
+
|
118
|
+
run_specs();
|
119
|
+
|
120
|
+
if(this.jasmine && !this.Envjs) {
|
121
|
+
var embedded = window.location != "about:blank";
|
122
|
+
|
123
|
+
var jasmineEnv = jasmine.getEnv();
|
124
|
+
jasmineEnv.updateInterval = 1000;
|
125
|
+
|
126
|
+
if(embedded) {
|
127
|
+
var trivialReporter = new jasmine.TrivialReporter();
|
128
|
+
jasmineEnv.addReporter(trivialReporter);
|
129
|
+
jasmineEnv.specFilter = function(spec) {
|
130
|
+
return trivialReporter.specFilter(spec);
|
131
|
+
};
|
132
|
+
}
|
133
|
+
|
134
|
+
if(window.Envjs && jasmine.EnvjsReporter){
|
135
|
+
jasmineEnv.addReporter(new jasmine.EnvjsReporter());
|
136
|
+
}
|
137
|
+
|
138
|
+
$(function() {
|
139
|
+
jasmineEnv.execute();
|
140
|
+
});
|
141
|
+
}
|
142
|
+
|
143
|
+
})(jQuery);
|
data/test/jazrb_test.rb
ADDED
data/test/test_helper.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2008 Pivotal Labs
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|