caruby-core 1.5.5 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +9 -0
- data/History.md +5 -1
- data/lib/caruby.rb +3 -5
- data/lib/caruby/caruby-src.tar.gz +0 -0
- data/lib/caruby/database.rb +53 -69
- data/lib/caruby/database/application_service.rb +25 -0
- data/lib/caruby/database/cache.rb +60 -0
- data/lib/caruby/database/fetched_matcher.rb +52 -38
- data/lib/caruby/database/lazy_loader.rb +4 -4
- data/lib/caruby/database/operation.rb +34 -0
- data/lib/caruby/database/persistable.rb +171 -86
- data/lib/caruby/database/persistence_service.rb +32 -34
- data/lib/caruby/database/persistifier.rb +100 -43
- data/lib/caruby/database/reader.rb +107 -85
- data/lib/caruby/database/reader_template_builder.rb +60 -0
- data/lib/caruby/database/saved_matcher.rb +3 -3
- data/lib/caruby/database/sql_executor.rb +88 -17
- data/lib/caruby/database/writer.rb +213 -177
- data/lib/caruby/database/writer_template_builder.rb +334 -0
- data/lib/caruby/{util → helpers}/controlled_value.rb +0 -0
- data/lib/caruby/{util → helpers}/coordinate.rb +4 -4
- data/lib/caruby/{util → helpers}/person.rb +3 -3
- data/lib/caruby/{util → helpers}/properties.rb +7 -9
- data/lib/caruby/{util → helpers}/roman.rb +2 -2
- data/lib/caruby/{util → helpers}/version.rb +1 -1
- data/lib/caruby/json/deserializer.rb +2 -2
- data/lib/caruby/json/serializer.rb +49 -7
- data/lib/caruby/metadata.rb +30 -0
- data/lib/caruby/metadata/java_property.rb +21 -0
- data/lib/caruby/metadata/propertied.rb +191 -0
- data/lib/caruby/metadata/property.rb +22 -0
- data/lib/caruby/metadata/property_characteristics.rb +201 -0
- data/lib/caruby/migration/migratable.rb +11 -182
- data/lib/caruby/rdbi/driver/jdbc.rb +446 -0
- data/lib/caruby/resource.rb +20 -823
- data/lib/caruby/version.rb +1 -1
- data/test/lib/caruby/database/cache_test.rb +54 -0
- data/test/lib/caruby/{util → helpers}/controlled_value_test.rb +3 -5
- data/test/lib/caruby/{util → helpers}/person_test.rb +4 -6
- data/test/lib/caruby/helpers/properties_test.rb +34 -0
- data/test/lib/caruby/{util → helpers}/roman_test.rb +2 -3
- data/test/lib/caruby/{util → helpers}/version_test.rb +2 -3
- data/test/lib/helper.rb +7 -0
- metadata +161 -214
- data/lib/caruby/cli/application.rb +0 -36
- data/lib/caruby/cli/command.rb +0 -202
- data/lib/caruby/csv/csv_mapper.rb +0 -159
- data/lib/caruby/csv/csvio.rb +0 -203
- data/lib/caruby/database/search_template_builder.rb +0 -56
- data/lib/caruby/database/store_template_builder.rb +0 -278
- data/lib/caruby/domain.rb +0 -193
- data/lib/caruby/domain/attribute.rb +0 -584
- data/lib/caruby/domain/attributes.rb +0 -628
- data/lib/caruby/domain/dependency.rb +0 -225
- data/lib/caruby/domain/id_alias.rb +0 -22
- data/lib/caruby/domain/importer.rb +0 -183
- data/lib/caruby/domain/introspection.rb +0 -176
- data/lib/caruby/domain/inverse.rb +0 -172
- data/lib/caruby/domain/inversible.rb +0 -90
- data/lib/caruby/domain/java_attribute.rb +0 -173
- data/lib/caruby/domain/merge.rb +0 -185
- data/lib/caruby/domain/metadata.rb +0 -142
- data/lib/caruby/domain/mixin.rb +0 -35
- data/lib/caruby/domain/properties.rb +0 -95
- data/lib/caruby/domain/reference_visitor.rb +0 -428
- data/lib/caruby/domain/uniquify.rb +0 -50
- data/lib/caruby/import/java.rb +0 -387
- data/lib/caruby/migration/migrator.rb +0 -918
- data/lib/caruby/migration/resource_module.rb +0 -9
- data/lib/caruby/migration/uniquify.rb +0 -17
- data/lib/caruby/util/attribute_path.rb +0 -44
- data/lib/caruby/util/cache.rb +0 -56
- data/lib/caruby/util/class.rb +0 -149
- data/lib/caruby/util/collection.rb +0 -1152
- data/lib/caruby/util/domain_extent.rb +0 -46
- data/lib/caruby/util/file_separator.rb +0 -65
- data/lib/caruby/util/inflector.rb +0 -27
- data/lib/caruby/util/log.rb +0 -95
- data/lib/caruby/util/math.rb +0 -12
- data/lib/caruby/util/merge.rb +0 -59
- data/lib/caruby/util/module.rb +0 -18
- data/lib/caruby/util/options.rb +0 -97
- data/lib/caruby/util/partial_order.rb +0 -35
- data/lib/caruby/util/pretty_print.rb +0 -204
- data/lib/caruby/util/stopwatch.rb +0 -74
- data/lib/caruby/util/topological_sync_enumerator.rb +0 -62
- data/lib/caruby/util/transitive_closure.rb +0 -55
- data/lib/caruby/util/tree.rb +0 -48
- data/lib/caruby/util/trie.rb +0 -37
- data/lib/caruby/util/uniquifier.rb +0 -30
- data/lib/caruby/util/validation.rb +0 -20
- data/lib/caruby/util/visitor.rb +0 -365
- data/lib/caruby/util/weak_hash.rb +0 -36
- data/test/lib/caruby/csv/csv_mapper_test.rb +0 -40
- data/test/lib/caruby/csv/csvio_test.rb +0 -69
- data/test/lib/caruby/database/persistable_test.rb +0 -92
- data/test/lib/caruby/domain/domain_test.rb +0 -112
- data/test/lib/caruby/domain/inversible_test.rb +0 -99
- data/test/lib/caruby/domain/reference_visitor_test.rb +0 -130
- data/test/lib/caruby/import/java_test.rb +0 -80
- data/test/lib/caruby/import/mixed_case_test.rb +0 -14
- data/test/lib/caruby/migration/test_case.rb +0 -102
- data/test/lib/caruby/test_case.rb +0 -230
- data/test/lib/caruby/util/cache_test.rb +0 -23
- data/test/lib/caruby/util/class_test.rb +0 -61
- data/test/lib/caruby/util/collection_test.rb +0 -398
- data/test/lib/caruby/util/command_test.rb +0 -55
- data/test/lib/caruby/util/domain_extent_test.rb +0 -60
- data/test/lib/caruby/util/file_separator_test.rb +0 -30
- data/test/lib/caruby/util/inflector_test.rb +0 -12
- data/test/lib/caruby/util/lazy_hash_test.rb +0 -34
- data/test/lib/caruby/util/merge_test.rb +0 -83
- data/test/lib/caruby/util/module_test.rb +0 -25
- data/test/lib/caruby/util/options_test.rb +0 -59
- data/test/lib/caruby/util/partial_order_test.rb +0 -42
- data/test/lib/caruby/util/pretty_print_test.rb +0 -85
- data/test/lib/caruby/util/properties_test.rb +0 -50
- data/test/lib/caruby/util/stopwatch_test.rb +0 -18
- data/test/lib/caruby/util/topological_sync_enumerator_test.rb +0 -69
- data/test/lib/caruby/util/transitive_closure_test.rb +0 -67
- data/test/lib/caruby/util/tree_test.rb +0 -23
- data/test/lib/caruby/util/trie_test.rb +0 -14
- data/test/lib/caruby/util/visitor_test.rb +0 -278
- data/test/lib/caruby/util/weak_hash_test.rb +0 -45
- data/test/lib/examples/clinical_trials/migration/migration_test.rb +0 -58
- data/test/lib/examples/clinical_trials/migration/test_case.rb +0 -38
@@ -1,45 +0,0 @@
|
|
1
|
-
$:.unshift 'lib'
|
2
|
-
$:.unshift 'examples/clinical_trials/lib'
|
3
|
-
|
4
|
-
require 'caruby/util/log'
|
5
|
-
CaRuby::Log.instance.open('test/results/log/clinical_trials.log', :shift_age => 10, :shift_size => 1048576, :debug => true)
|
6
|
-
|
7
|
-
require 'caruby/util/weak_hash'
|
8
|
-
require 'clinical_trials'
|
9
|
-
require File.join(File.dirname(__FILE__), '..', 'test_case')
|
10
|
-
|
11
|
-
class WeakHashTest < Test::Unit::TestCase
|
12
|
-
def setup
|
13
|
-
@hash = CaRuby::WeakHash.new
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_accessors
|
17
|
-
study = ClinicalTrials::Study.new(:identifier => 1)
|
18
|
-
@hash[1] = study
|
19
|
-
assert_equal(study, @hash[1], "Value not found for key")
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_each
|
23
|
-
study = ClinicalTrials::Study.new(:identifier => 1)
|
24
|
-
@hash[1] = study
|
25
|
-
assert_equal([[1, study]], @hash.to_a, "Weak hash enumeration incorrect")
|
26
|
-
end
|
27
|
-
|
28
|
-
# Verify that a strongly referenced hash entry is not reclaimed and weakly referenced entries are
|
29
|
-
# eventually reclaimend.
|
30
|
-
def test_stress
|
31
|
-
# a strongly referenced entry
|
32
|
-
pinned = @hash[1] = ClinicalTrials::Study.new(:identifier => 1)
|
33
|
-
# make weakly referenced entries until one is reclaimed
|
34
|
-
2.upto(1000000) do |n|
|
35
|
-
@hash[n] = ClinicalTrials::Study.new(:identifier => n)
|
36
|
-
# the strongly referenced entry should always be retained.
|
37
|
-
# note that the test fails if the reference is @hash[1]. jRuby or Java probably
|
38
|
-
# optimize @hash[1] into a strong reference, but not @hash[pinned.identifier].
|
39
|
-
assert_not_nil(@hash[pinned.identifier], "Strongly referenced hash entry reclaimed")
|
40
|
-
# done when the second entry is reclaimed
|
41
|
-
return unless @hash[2]
|
42
|
-
end
|
43
|
-
fail("Weak hash entries not garbage-collected after 1,000,000 entries")
|
44
|
-
end
|
45
|
-
end
|
@@ -1,58 +0,0 @@
|
|
1
|
-
require 'test/lib/caruby/migration/test_case'
|
2
|
-
require 'examples/clinical_trials/lib/clinical_trials'
|
3
|
-
|
4
|
-
module ClinicalTrials
|
5
|
-
# Tests the ClinicalTrials example migration.
|
6
|
-
class MigrationTest < Test::Unit::TestCase
|
7
|
-
include CaRuby::MigrationTestCase
|
8
|
-
|
9
|
-
def setup
|
10
|
-
super(FIXTURES)
|
11
|
-
end
|
12
|
-
|
13
|
-
# def test_subject
|
14
|
-
# verify_target(:subject, :target => ClinicalTrials::Subject, :mapping=> SUBJECT_MAPPING) do |sbj|
|
15
|
-
# assert_not_nil(sbj.ssn, "Missing SSN")
|
16
|
-
# end
|
17
|
-
# end
|
18
|
-
#
|
19
|
-
# def test_ssn_filter
|
20
|
-
# verify_target(:ssn_filter, :target => ClinicalTrials::Subject, :mapping=> SUBJECT_MAPPING, :shims => SSN_SHIMS) do |sbj|
|
21
|
-
# assert_not_nil(sbj.ssn, "Missing SSN")
|
22
|
-
# end
|
23
|
-
# end
|
24
|
-
|
25
|
-
def test_activity_filter
|
26
|
-
verify_target(:activity_filter, :target => ClinicalTrials::Study, :mapping=> STUDY_MAPPING, :defaults => STUDY_DEFAULTS, :filters => STUDY_FILTERS) do |std|
|
27
|
-
expected = std.name.split(' ').first
|
28
|
-
assert_equal(expected, std.activity_status, "Incorrect activity status")
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
private
|
33
|
-
|
34
|
-
# The migration input data directory.
|
35
|
-
FIXTURES = 'examples/clinical_trials/data'
|
36
|
-
|
37
|
-
# The migration input shim directory.
|
38
|
-
SHIMS = 'examples/clinical_trials/lib/clinical_trials/migration'
|
39
|
-
|
40
|
-
# The migration configuration directory.
|
41
|
-
CONFIGS = 'examples/clinical_trials/conf/migration'
|
42
|
-
|
43
|
-
# The subject input file.
|
44
|
-
SUBJECT_MAPPING = File.join(CONFIGS, "subject_fields.yaml")
|
45
|
-
|
46
|
-
# The study input file.
|
47
|
-
STUDY_MAPPING = File.join(CONFIGS, "study_fields.yaml")
|
48
|
-
|
49
|
-
# The study default values.
|
50
|
-
STUDY_DEFAULTS = File.join(CONFIGS, "study_defaults.yaml")
|
51
|
-
|
52
|
-
# The study default values.
|
53
|
-
STUDY_FILTERS = File.join(CONFIGS, "study_filters.yaml")
|
54
|
-
|
55
|
-
# The filter shims file.
|
56
|
-
SSN_SHIMS = File.join(SHIMS, "ssn_shim.rb")
|
57
|
-
end
|
58
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
require 'test/lib/caruby/migration/test_case'
|
2
|
-
require 'examples/clinical_trials/lib/clinical_trials'
|
3
|
-
|
4
|
-
# Tests the ClinicalTrials example migration.
|
5
|
-
module ClinicalTrials
|
6
|
-
module MigrationTestCase
|
7
|
-
include CaRuby::MigrationTestCase
|
8
|
-
|
9
|
-
def setup
|
10
|
-
super(FIXTURES)
|
11
|
-
end
|
12
|
-
|
13
|
-
# Adds the +:target+, +:mapping+ and +:shims+ to the options and delegates
|
14
|
-
# to the superclass.
|
15
|
-
#
|
16
|
-
# @see {CaTissue::MigrationTestCase#create_migrator}
|
17
|
-
def create_migrator(fixture, opts={})
|
18
|
-
opts[:mapping] ||= File.join(CONFIGS, "#{fixture}_fields.yaml")
|
19
|
-
shims = File.join(SHIMS, "#{fixture}_shims.rb")
|
20
|
-
if File.exists?(shims) then
|
21
|
-
sopt = opts[:shims] ||= []
|
22
|
-
sopt << shims
|
23
|
-
end
|
24
|
-
super
|
25
|
-
end
|
26
|
-
|
27
|
-
private
|
28
|
-
|
29
|
-
# The migration input data directory.
|
30
|
-
FIXTURES = 'examples/clinical_trials/data'
|
31
|
-
|
32
|
-
# The migration input shim directory.
|
33
|
-
SHIMS = 'examples/clinical_trials/lib/clinical_trials/migration'
|
34
|
-
|
35
|
-
# The migration configuration directory.
|
36
|
-
CONFIGS = 'examples/clinical_trials/conf/migration'
|
37
|
-
end
|
38
|
-
end
|