caruby-core 1.4.1
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.
- data/History.txt +4 -0
- data/LEGAL +5 -0
- data/LICENSE +22 -0
- data/README.md +51 -0
- data/doc/website/css/site.css +1 -5
- data/doc/website/images/avatar.png +0 -0
- data/doc/website/images/favicon.ico +0 -0
- data/doc/website/images/logo.png +0 -0
- data/doc/website/index.html +82 -0
- data/doc/website/install.html +87 -0
- data/doc/website/quick_start.html +87 -0
- data/doc/website/tissue.html +85 -0
- data/doc/website/uom.html +10 -0
- data/lib/caruby.rb +3 -0
- data/lib/caruby/active_support/README.txt +2 -0
- data/lib/caruby/active_support/core_ext/string.rb +7 -0
- data/lib/caruby/active_support/core_ext/string/inflections.rb +167 -0
- data/lib/caruby/active_support/inflections.rb +55 -0
- data/lib/caruby/active_support/inflector.rb +398 -0
- data/lib/caruby/cli/application.rb +36 -0
- data/lib/caruby/cli/command.rb +169 -0
- data/lib/caruby/csv/csv_mapper.rb +157 -0
- data/lib/caruby/csv/csvio.rb +185 -0
- data/lib/caruby/database.rb +252 -0
- data/lib/caruby/database/fetched_matcher.rb +66 -0
- data/lib/caruby/database/persistable.rb +432 -0
- data/lib/caruby/database/persistence_service.rb +162 -0
- data/lib/caruby/database/reader.rb +599 -0
- data/lib/caruby/database/saved_merger.rb +131 -0
- data/lib/caruby/database/search_template_builder.rb +59 -0
- data/lib/caruby/database/sql_executor.rb +75 -0
- data/lib/caruby/database/store_template_builder.rb +200 -0
- data/lib/caruby/database/writer.rb +469 -0
- data/lib/caruby/domain/annotatable.rb +25 -0
- data/lib/caruby/domain/annotation.rb +23 -0
- data/lib/caruby/domain/attribute_metadata.rb +447 -0
- data/lib/caruby/domain/java_attribute_metadata.rb +160 -0
- data/lib/caruby/domain/merge.rb +91 -0
- data/lib/caruby/domain/properties.rb +95 -0
- data/lib/caruby/domain/reference_visitor.rb +289 -0
- data/lib/caruby/domain/resource_attributes.rb +528 -0
- data/lib/caruby/domain/resource_dependency.rb +205 -0
- data/lib/caruby/domain/resource_introspection.rb +159 -0
- data/lib/caruby/domain/resource_metadata.rb +117 -0
- data/lib/caruby/domain/resource_module.rb +285 -0
- data/lib/caruby/domain/uniquify.rb +38 -0
- data/lib/caruby/import/annotatable_class.rb +28 -0
- data/lib/caruby/import/annotation_class.rb +27 -0
- data/lib/caruby/import/annotation_module.rb +67 -0
- data/lib/caruby/import/java.rb +338 -0
- data/lib/caruby/migration/migratable.rb +167 -0
- data/lib/caruby/migration/migrator.rb +533 -0
- data/lib/caruby/migration/resource.rb +8 -0
- data/lib/caruby/migration/resource_module.rb +11 -0
- data/lib/caruby/migration/uniquify.rb +20 -0
- data/lib/caruby/resource.rb +969 -0
- data/lib/caruby/util/attribute_path.rb +46 -0
- data/lib/caruby/util/cache.rb +53 -0
- data/lib/caruby/util/class.rb +99 -0
- data/lib/caruby/util/collection.rb +1053 -0
- data/lib/caruby/util/controlled_value.rb +35 -0
- data/lib/caruby/util/coordinate.rb +75 -0
- data/lib/caruby/util/domain_extent.rb +49 -0
- data/lib/caruby/util/file_separator.rb +65 -0
- data/lib/caruby/util/inflector.rb +20 -0
- data/lib/caruby/util/log.rb +95 -0
- data/lib/caruby/util/math.rb +12 -0
- data/lib/caruby/util/merge.rb +59 -0
- data/lib/caruby/util/module.rb +34 -0
- data/lib/caruby/util/options.rb +92 -0
- data/lib/caruby/util/partial_order.rb +36 -0
- data/lib/caruby/util/person.rb +119 -0
- data/lib/caruby/util/pretty_print.rb +184 -0
- data/lib/caruby/util/properties.rb +112 -0
- data/lib/caruby/util/stopwatch.rb +66 -0
- data/lib/caruby/util/topological_sync_enumerator.rb +53 -0
- data/lib/caruby/util/transitive_closure.rb +45 -0
- data/lib/caruby/util/tree.rb +48 -0
- data/lib/caruby/util/trie.rb +37 -0
- data/lib/caruby/util/uniquifier.rb +30 -0
- data/lib/caruby/util/validation.rb +48 -0
- data/lib/caruby/util/version.rb +56 -0
- data/lib/caruby/util/visitor.rb +351 -0
- data/lib/caruby/util/weak_hash.rb +36 -0
- data/lib/caruby/version.rb +3 -0
- metadata +186 -0
data/History.txt
ADDED
data/LEGAL
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2010 Oregon Health & Science University Knight Cancer Institute
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person
|
4
|
+
obtaining a copy of this software and associated documentation
|
5
|
+
files (the "Software"), to deal in the Software without
|
6
|
+
restriction, including without limitation the rights to use,
|
7
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
+
copies of the Software, and to permit persons to whom the
|
9
|
+
Software is furnished to do so, subject to the following
|
10
|
+
conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be
|
13
|
+
included in all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
17
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
19
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
20
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
21
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
22
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
caRuby: Simplifying caBIG(TM)
|
2
|
+
=============================
|
3
|
+
|
4
|
+
**Home**: [http://caruby.rubyforge.com](http://caruby.rubyforge.com)
|
5
|
+
**Git**: [http://github.com/caruby/core](http://github.com/caruby/core)
|
6
|
+
**Author**: OHSU Knight Cancer Institute
|
7
|
+
**Copyright**: 2010
|
8
|
+
**License**: MIT License
|
9
|
+
**Latest Version**: 1.4.1
|
10
|
+
**Release Date**: November 23rd 2010
|
11
|
+
|
12
|
+
Synopsis
|
13
|
+
--------
|
14
|
+
|
15
|
+
caRuby presents a JRuby facade that simplifies interaction with caBIG applications.
|
16
|
+
|
17
|
+
Feature List
|
18
|
+
------------
|
19
|
+
|
20
|
+
1. caCORE API wrapper.
|
21
|
+
|
22
|
+
2. Resolves persistence dependencies.
|
23
|
+
|
24
|
+
3. Enforces inverse association integrity.
|
25
|
+
|
26
|
+
4. Run-time declaration of defaults.
|
27
|
+
|
28
|
+
5. Client-side create validation.
|
29
|
+
|
30
|
+
Installing
|
31
|
+
----------
|
32
|
+
caRuby is installed automatically when an application gem, e.g. caruby-tissue,
|
33
|
+
is installed.
|
34
|
+
|
35
|
+
Usage
|
36
|
+
-----
|
37
|
+
|
38
|
+
See the project [http://caruby.rubyforge.com](Home) Page for usage examples.
|
39
|
+
|
40
|
+
Changelog
|
41
|
+
---------
|
42
|
+
|
43
|
+
- **November 23, 2010**: 1.4.1 release
|
44
|
+
- Initial public release
|
45
|
+
|
46
|
+
Copyright
|
47
|
+
---------
|
48
|
+
|
49
|
+
caRuby © 2010 by [Oregon Health & Science University](mailto:loneyf@ohsu.edu).
|
50
|
+
caRuby is licensed under the MIT license. Please see the LICENSE and LEGAL
|
51
|
+
files for more information.
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,82 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
|
6
|
+
<meta name="author" content="Fred Loney, OHSU" />
|
7
|
+
<meta name="keywords" content="caRuby, caBIG, caSmall, Ruby, JRuby" />
|
8
|
+
<meta name="description" content="caRuby landing page." />
|
9
|
+
<meta name="robots" content="all" />
|
10
|
+
<title>caRuby: caBIG Simplified</title>
|
11
|
+
|
12
|
+
<!-- to correct the unsightly Flash of Unstyled Content. http://www.bluerobot.com/web/css/fouc.asp -->
|
13
|
+
<script type="text/javascript"></script>
|
14
|
+
|
15
|
+
<style type="text/css" title="currentStyle" media="screen">
|
16
|
+
@import "/css/site.css";
|
17
|
+
</style>
|
18
|
+
<link rel='stylesheet' href='css/site.css' type='text/css' media="screen, projection">
|
19
|
+
<link rel="Shortcut Icon" href="images/favicon.ico" />
|
20
|
+
</head>
|
21
|
+
|
22
|
+
<body id="caruby">
|
23
|
+
|
24
|
+
<div id="container">
|
25
|
+
<div id="head">
|
26
|
+
<h1><a href="index.html">caRuby:</a></h1>
|
27
|
+
<h2><a href="http://cabig.nci.nih.gov">caBIG®</a> Simplified</h2>
|
28
|
+
<ul>
|
29
|
+
<li><span class="currentPage">Home</li>
|
30
|
+
<li><a href='quick_start.html'><em>Quick Start</em></a></li>
|
31
|
+
<li><a href='http://caruby.tenderapp.com/'>Help</a></li>
|
32
|
+
<li><a href='http://github.com/caruby'>Source</a></li>
|
33
|
+
<li><a href='/about.html'>About</a></li>
|
34
|
+
</ul>
|
35
|
+
<img src="images/logo.png"/>
|
36
|
+
</div>
|
37
|
+
|
38
|
+
<div id="features">
|
39
|
+
<h3>Features</h3>
|
40
|
+
<ul>
|
41
|
+
<li><a href="/api.html">API</a></li>
|
42
|
+
<li><a href="/tissue.html">Tissue</a></li>
|
43
|
+
<li><a href="/migrator.html">Migrator</a></li>
|
44
|
+
<li><a href="/casmall.html">caSmall</a></li>
|
45
|
+
</ul>
|
46
|
+
</div>
|
47
|
+
|
48
|
+
<div id="supportingText">
|
49
|
+
<h3>Overview</h3>
|
50
|
+
<p>
|
51
|
+
caRuby simplifies interaction with <a href="http://cabig.nci.nih.gov">caBIG®</a> application
|
52
|
+
services. caRuby presents a <a href="http://jruby.org">JRuby</a> caBIG façade that
|
53
|
+
supports the following uses:
|
54
|
+
<ul>
|
55
|
+
<li>Migration from legacy systems</li>
|
56
|
+
<li>Incremental update from source applications</li>
|
57
|
+
<li>Extract from a caBIG database</li>
|
58
|
+
<li>Utility administrative tasks</li>
|
59
|
+
<li>Workflow data transformations</li>
|
60
|
+
<li>Lightweight web services</li>
|
61
|
+
<li>Site-specific user interfaces</li>
|
62
|
+
</ul>
|
63
|
+
</p>
|
64
|
+
<h3>Getting Started</h3>
|
65
|
+
<p>
|
66
|
+
<ol>
|
67
|
+
<li>Peruse the <strong>Features</strong> to see what caRuby offers.</li>
|
68
|
+
<li>Follow the <a href='/quick_start.html'>Quick Start</a> instructions to install caRuby.</li>
|
69
|
+
<li>Consult the <a href='/faq.html'>FAQ</a> for usage tips.</li>
|
70
|
+
<li>Visit caRuby <a href='http://caruby.tenderapp.com/'>Support</a> if you run into a problem.</li>
|
71
|
+
<li><a href='/contribute.html'>Contribute</a> a solution if you're feeling ambitious!</li>
|
72
|
+
<li><a href='mailto:caruby.org@gmail.com'>Let us know</a> what you think.</li>
|
73
|
+
</ol>
|
74
|
+
</p>
|
75
|
+
|
76
|
+
<div id="footer">
|
77
|
+
</div>
|
78
|
+
</div>
|
79
|
+
</div>
|
80
|
+
|
81
|
+
</body>
|
82
|
+
</html>
|
@@ -0,0 +1,87 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
|
6
|
+
<meta name="author" content="Fred Loney, OHSU" />
|
7
|
+
<meta name="keywords" content="caRuby" />
|
8
|
+
<meta name="description" content="caRuby Quick Start page." />
|
9
|
+
<meta name="robots" content="all" />
|
10
|
+
<title>caRuby: Installation</title>
|
11
|
+
|
12
|
+
<!-- to correct the unsightly Flash of Unstyled Content. http://www.bluerobot.com/web/css/fouc.asp -->
|
13
|
+
<script type="text/javascript"></script>
|
14
|
+
|
15
|
+
<style type="text/css" title="currentStyle" media="screen">
|
16
|
+
@import "/css/site.css";
|
17
|
+
</style>
|
18
|
+
<link rel='stylesheet' href='css/site.css' type='text/css' media="screen, projection">
|
19
|
+
<link rel="Shortcut Icon" href="images/favicon.ico" />
|
20
|
+
</head>
|
21
|
+
|
22
|
+
<body id="quick_start">
|
23
|
+
|
24
|
+
<div id="container">
|
25
|
+
<div id="head">
|
26
|
+
<h1><a href="index.html">caRuby:</a></h1>
|
27
|
+
<h2><a href="http://cabig.nci.nih.gov">caBIG®</a> Simplified</h2>
|
28
|
+
<ul>
|
29
|
+
<li><a href="/index.html">Home</a></li>
|
30
|
+
<li><span class="currentPage"><em>Quick Start</em></li>
|
31
|
+
<li><a href='http://caruby.tenderapp.com/'>Help</a></li>
|
32
|
+
<li><a href='http://github.com/caruby'>Source</a></li>
|
33
|
+
<li><a href='/about.html'>About</a></li>
|
34
|
+
</ul>
|
35
|
+
<img src="images/logo.png"/>
|
36
|
+
</div>
|
37
|
+
|
38
|
+
<div id="features">
|
39
|
+
<h3>Features</h3>
|
40
|
+
<ul>
|
41
|
+
<li><a href="/api.html">API</a></li>
|
42
|
+
<li><a href="/tissue.html">Tissue</a></li>
|
43
|
+
<li><a href="/migrator.html">Migrator</a></li>
|
44
|
+
<li><a href="/casmall.html">caSmall</a></li>
|
45
|
+
</ul>
|
46
|
+
</div>
|
47
|
+
|
48
|
+
<div id="supportingText">
|
49
|
+
<p>
|
50
|
+
Each caRuby <a href="/components.html">component</a> is packaged as a standard Ruby <a href="http://docs.rubygems.org/shelf/index">gem</a>.
|
51
|
+
Once you've installed <a href="http://jruby.org">JRuby</a> and the target caBIG application API, installing a caRuby gem is done with a one-line
|
52
|
+
command. caRuby runs on any on any workstation or server that supports the target caBIG application Java API.
|
53
|
+
Set up a caRuby environment as follows:
|
54
|
+
<ol>
|
55
|
+
<li>Install the target caBIG application Java API client.
|
56
|
+
Consult the caBIG application Technical Guide for details, available from the caBIG application
|
57
|
+
<a href="https://cabig-kc.nci.nih.gov/MediaWiki/index.php/Knowledge_Center_Index">Knowledge Center</a>.
|
58
|
+
</li>
|
59
|
+
<li>Install <a href="http://jruby.org">JRuby</a>.</li>
|
60
|
+
<li>Open a command console and enter the following:
|
61
|
+
<pre>
|
62
|
+
gem install rubygems
|
63
|
+
</pre>
|
64
|
+
</li>
|
65
|
+
</ol>
|
66
|
+
</p>
|
67
|
+
<p>
|
68
|
+
The preceding steps set up a standard JRuby environment. Now the desired caRuby gem is installed using the <code>gem install</code> command, e.g.:
|
69
|
+
<pre>
|
70
|
+
gem install caruby-tissue
|
71
|
+
</pre>
|
72
|
+
</p>
|
73
|
+
<p>
|
74
|
+
and updated using the <code>gem update</code> command, e.g.:
|
75
|
+
<pre>
|
76
|
+
gem update caruby-tissue
|
77
|
+
</pre>
|
78
|
+
</p>
|
79
|
+
<p>The caRuby gem is now ready for use. Consult the gem <a href="/documentation.html">documentation</a> for usage and examples.
|
80
|
+
</p>
|
81
|
+
<div id="footer">
|
82
|
+
</div>
|
83
|
+
</div>
|
84
|
+
</div>
|
85
|
+
|
86
|
+
</body>
|
87
|
+
</html>
|
@@ -0,0 +1,87 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
|
6
|
+
<meta name="author" content="Fred Loney, OHSU" />
|
7
|
+
<meta name="keywords" content="caRuby" />
|
8
|
+
<meta name="description" content="caRuby Quick Start page." />
|
9
|
+
<meta name="robots" content="all" />
|
10
|
+
<title>caRuby: Quick Start</title>
|
11
|
+
|
12
|
+
<!-- to correct the unsightly Flash of Unstyled Content. http://www.bluerobot.com/web/css/fouc.asp -->
|
13
|
+
<script type="text/javascript"></script>
|
14
|
+
|
15
|
+
<style type="text/css" title="currentStyle" media="screen">
|
16
|
+
@import "/css/site.css";
|
17
|
+
</style>
|
18
|
+
<link rel='stylesheet' href='css/site.css' type='text/css' media="screen, projection">
|
19
|
+
<link rel="Shortcut Icon" href="images/favicon.ico" />
|
20
|
+
</head>
|
21
|
+
|
22
|
+
<body id="quick_start">
|
23
|
+
|
24
|
+
<div id="container">
|
25
|
+
<div id="head">
|
26
|
+
<h1><a href="index.html">caRuby:</a></h1>
|
27
|
+
<h2><a href="http://cabig.nci.nih.gov">caBIG®</a> Simplified</h2>
|
28
|
+
<ul>
|
29
|
+
<li><a href="/index.html">Home</a></li>
|
30
|
+
<li><span class="currentPage"><em>Quick Start</em></li>
|
31
|
+
<li><a href='http://caruby.tenderapp.com/'>Help</a></li>
|
32
|
+
<li><a href='http://github.com/caruby'>Source</a></li>
|
33
|
+
<li><a href='/about.html'>About</a></li>
|
34
|
+
</ul>
|
35
|
+
<img src="images/logo.png"/>
|
36
|
+
</div>
|
37
|
+
|
38
|
+
<div id="features">
|
39
|
+
<h3>Features</h3>
|
40
|
+
<ul>
|
41
|
+
<li><a href="/api.html">API</a></li>
|
42
|
+
<li><a href="/tissue.html">Tissue</a></li>
|
43
|
+
<li><a href="/migrator.html">Migrator</a></li>
|
44
|
+
<li><a href="/casmall.html">caSmall</a></li>
|
45
|
+
</ul>
|
46
|
+
</div>
|
47
|
+
|
48
|
+
<div id="supportingText">
|
49
|
+
<p>
|
50
|
+
Each caRuby <a href="/components.html">component</a> is packaged as a standard Ruby <a href="http://docs.rubygems.org/shelf/index">gem</a>.
|
51
|
+
Once you've installed <a href="http://jruby.org">JRuby</a> and the target caBIG application API, installing a caRuby gem is done with a one-line
|
52
|
+
command. caRuby runs on any on any workstation or server that supports the target caBIG application Java API.
|
53
|
+
Set up a caRuby environment as follows:
|
54
|
+
<ol>
|
55
|
+
<li>Install the target caBIG application Java API client.
|
56
|
+
Consult the caBIG application Technical Guide for details, available from the caBIG application
|
57
|
+
<a href="https://cabig-kc.nci.nih.gov/MediaWiki/index.php/Knowledge_Center_Index">Knowledge Center</a>.
|
58
|
+
</li>
|
59
|
+
<li>Install <a href="http://jruby.org">JRuby</a>.</li>
|
60
|
+
<li>Open a command console and enter the following:
|
61
|
+
<pre>
|
62
|
+
gem install rubygems
|
63
|
+
</pre>
|
64
|
+
</li>
|
65
|
+
</ol>
|
66
|
+
</p>
|
67
|
+
<p>
|
68
|
+
The preceding steps set up a standard JRuby environment. Now the desired caRuby gem is installed using the <code>gem install</code> command, e.g.:
|
69
|
+
<pre>
|
70
|
+
gem install caruby-tissue
|
71
|
+
</pre>
|
72
|
+
</p>
|
73
|
+
<p>
|
74
|
+
and updated using the <code>gem update</code> command, e.g.:
|
75
|
+
<pre>
|
76
|
+
gem update caruby-tissue
|
77
|
+
</pre>
|
78
|
+
</p>
|
79
|
+
<p>The caRuby gem is now ready for use. Consult the gem <a href="/documentation.html">documentation</a> for usage and examples.
|
80
|
+
</p>
|
81
|
+
<div id="footer">
|
82
|
+
</div>
|
83
|
+
</div>
|
84
|
+
</div>
|
85
|
+
|
86
|
+
</body>
|
87
|
+
</html>
|
@@ -0,0 +1,85 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
|
6
|
+
<meta name="author" content="Fred Loney, OHSU" />
|
7
|
+
<meta name="keywords" content="caRuby, caTissue" />
|
8
|
+
<meta name="description" content="caRuby Tissue page." />
|
9
|
+
<meta name="robots" content="all" />
|
10
|
+
<title>caRuby: Quick Start</title>
|
11
|
+
|
12
|
+
<!-- to correct the unsightly Flash of Unstyled Content. http://www.bluerobot.com/web/css/fouc.asp -->
|
13
|
+
<script type="text/javascript"></script>
|
14
|
+
|
15
|
+
<style type="text/css" title="currentStyle" media="screen">
|
16
|
+
@import "/css/site.css";
|
17
|
+
</style>
|
18
|
+
<link rel='stylesheet' href='css/site.css' type='text/css' media="screen, projection">
|
19
|
+
<link rel="Shortcut Icon" href="images/favicon.ico" />
|
20
|
+
</head>
|
21
|
+
|
22
|
+
<body id="tissue">
|
23
|
+
|
24
|
+
<div id="container">
|
25
|
+
<div id="head">
|
26
|
+
<h1><a href="index.html">caRuby:</a></h1>
|
27
|
+
<h2>Tissue</h2>
|
28
|
+
<ul>
|
29
|
+
<li><a href='quick_start.html'><em>Quick Start</em></a></li>
|
30
|
+
<li><a href='faq.html'>FAQ</a></li>
|
31
|
+
<li><a href='http://caruby.tenderapp.com/'>Help</a></li>
|
32
|
+
<li><a href='contribute.html'>Contribute</a></li>
|
33
|
+
<li><a href='about.html'>About</a></li>
|
34
|
+
</ul>
|
35
|
+
<img src="images/logo.png"/>
|
36
|
+
</div>
|
37
|
+
|
38
|
+
<div id="supportingText">
|
39
|
+
<p>
|
40
|
+
The caRuby Tissue component applies the caRuby facade to the
|
41
|
+
<a href="https://cabig-kc.nci.nih.gov/Biospecimen/KC/index.php/CaTissue_Suite">caTissue</a>
|
42
|
+
application. This offers the following features:
|
43
|
+
<ul>
|
44
|
+
<li>flexible server interaction</li>
|
45
|
+
<li>data migration and extraction</li>
|
46
|
+
<li>a foundation for a <a href="casmall.html">caSmall</a> framework</li>
|
47
|
+
</ul>
|
48
|
+
</p>
|
49
|
+
<p>
|
50
|
+
Since the caRuby Tissue component is built on the caTissue API, all of the caTissue business logic applies.
|
51
|
+
In addition, caRuby augments the API as follows:
|
52
|
+
<ul>
|
53
|
+
<li>supplies default attribute values</li>
|
54
|
+
<li>validates mandatory attributes before submission to caTissue</li>
|
55
|
+
<li>validates additional attributes which are permitted by the caTissue API but corrupt the database</li>
|
56
|
+
<li>migrates an input CSV record to a caTissue object based on one simple configuration file</li>
|
57
|
+
<li>validates migration input diagnosis and tissue site permissible values</li>
|
58
|
+
<li>optionally maps diagnosis and tissue site migration input values to caTissue permissible values</li>
|
59
|
+
<li>determines how to save the caTissue object based on the caTissue object model</li>
|
60
|
+
<li>finds referenced objects based on secondary keys and alternative search strategies</li>
|
61
|
+
<li>creates whatever needs to be created in the required order based on the data model associations</li>
|
62
|
+
<li>works around caCORE and caTissue bugs and traps</li>
|
63
|
+
<li>provides helper methods for common tasks, e.g. aliquoting</li>
|
64
|
+
</ul>
|
65
|
+
</p>
|
66
|
+
<p>
|
67
|
+
The sole configuration is the migration mapping file and a small caTissue server access properties file.
|
68
|
+
The defaults and other metadata are defined in Ruby declarations rather than a configuration.
|
69
|
+
These declarations express basic model characteristics, and are expected to be stable and sufficient for most uses.
|
70
|
+
They can, however, be modified in small Ruby shim files.
|
71
|
+
Special-purpose migration code can be added in the shim files as well, as described in the
|
72
|
+
<a href='shims.html'>Shims</a> description.
|
73
|
+
</p>
|
74
|
+
<p>
|
75
|
+
There is almost no class-specific caRuby business logic code similar to that found in caTissue.
|
76
|
+
Rather, there are basic design patterns driven by the model characteristics defined in the Ruby declarations.
|
77
|
+
</p>
|
78
|
+
<div id="footer">
|
79
|
+
</div>
|
80
|
+
</div>
|
81
|
+
</div>
|
82
|
+
|
83
|
+
</body>
|
84
|
+
</html>
|
85
|
+
|