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.
Files changed (126) hide show
  1. data/Gemfile +9 -0
  2. data/History.md +5 -1
  3. data/lib/caruby.rb +3 -5
  4. data/lib/caruby/caruby-src.tar.gz +0 -0
  5. data/lib/caruby/database.rb +53 -69
  6. data/lib/caruby/database/application_service.rb +25 -0
  7. data/lib/caruby/database/cache.rb +60 -0
  8. data/lib/caruby/database/fetched_matcher.rb +52 -38
  9. data/lib/caruby/database/lazy_loader.rb +4 -4
  10. data/lib/caruby/database/operation.rb +34 -0
  11. data/lib/caruby/database/persistable.rb +171 -86
  12. data/lib/caruby/database/persistence_service.rb +32 -34
  13. data/lib/caruby/database/persistifier.rb +100 -43
  14. data/lib/caruby/database/reader.rb +107 -85
  15. data/lib/caruby/database/reader_template_builder.rb +60 -0
  16. data/lib/caruby/database/saved_matcher.rb +3 -3
  17. data/lib/caruby/database/sql_executor.rb +88 -17
  18. data/lib/caruby/database/writer.rb +213 -177
  19. data/lib/caruby/database/writer_template_builder.rb +334 -0
  20. data/lib/caruby/{util → helpers}/controlled_value.rb +0 -0
  21. data/lib/caruby/{util → helpers}/coordinate.rb +4 -4
  22. data/lib/caruby/{util → helpers}/person.rb +3 -3
  23. data/lib/caruby/{util → helpers}/properties.rb +7 -9
  24. data/lib/caruby/{util → helpers}/roman.rb +2 -2
  25. data/lib/caruby/{util → helpers}/version.rb +1 -1
  26. data/lib/caruby/json/deserializer.rb +2 -2
  27. data/lib/caruby/json/serializer.rb +49 -7
  28. data/lib/caruby/metadata.rb +30 -0
  29. data/lib/caruby/metadata/java_property.rb +21 -0
  30. data/lib/caruby/metadata/propertied.rb +191 -0
  31. data/lib/caruby/metadata/property.rb +22 -0
  32. data/lib/caruby/metadata/property_characteristics.rb +201 -0
  33. data/lib/caruby/migration/migratable.rb +11 -182
  34. data/lib/caruby/rdbi/driver/jdbc.rb +446 -0
  35. data/lib/caruby/resource.rb +20 -823
  36. data/lib/caruby/version.rb +1 -1
  37. data/test/lib/caruby/database/cache_test.rb +54 -0
  38. data/test/lib/caruby/{util → helpers}/controlled_value_test.rb +3 -5
  39. data/test/lib/caruby/{util → helpers}/person_test.rb +4 -6
  40. data/test/lib/caruby/helpers/properties_test.rb +34 -0
  41. data/test/lib/caruby/{util → helpers}/roman_test.rb +2 -3
  42. data/test/lib/caruby/{util → helpers}/version_test.rb +2 -3
  43. data/test/lib/helper.rb +7 -0
  44. metadata +161 -214
  45. data/lib/caruby/cli/application.rb +0 -36
  46. data/lib/caruby/cli/command.rb +0 -202
  47. data/lib/caruby/csv/csv_mapper.rb +0 -159
  48. data/lib/caruby/csv/csvio.rb +0 -203
  49. data/lib/caruby/database/search_template_builder.rb +0 -56
  50. data/lib/caruby/database/store_template_builder.rb +0 -278
  51. data/lib/caruby/domain.rb +0 -193
  52. data/lib/caruby/domain/attribute.rb +0 -584
  53. data/lib/caruby/domain/attributes.rb +0 -628
  54. data/lib/caruby/domain/dependency.rb +0 -225
  55. data/lib/caruby/domain/id_alias.rb +0 -22
  56. data/lib/caruby/domain/importer.rb +0 -183
  57. data/lib/caruby/domain/introspection.rb +0 -176
  58. data/lib/caruby/domain/inverse.rb +0 -172
  59. data/lib/caruby/domain/inversible.rb +0 -90
  60. data/lib/caruby/domain/java_attribute.rb +0 -173
  61. data/lib/caruby/domain/merge.rb +0 -185
  62. data/lib/caruby/domain/metadata.rb +0 -142
  63. data/lib/caruby/domain/mixin.rb +0 -35
  64. data/lib/caruby/domain/properties.rb +0 -95
  65. data/lib/caruby/domain/reference_visitor.rb +0 -428
  66. data/lib/caruby/domain/uniquify.rb +0 -50
  67. data/lib/caruby/import/java.rb +0 -387
  68. data/lib/caruby/migration/migrator.rb +0 -918
  69. data/lib/caruby/migration/resource_module.rb +0 -9
  70. data/lib/caruby/migration/uniquify.rb +0 -17
  71. data/lib/caruby/util/attribute_path.rb +0 -44
  72. data/lib/caruby/util/cache.rb +0 -56
  73. data/lib/caruby/util/class.rb +0 -149
  74. data/lib/caruby/util/collection.rb +0 -1152
  75. data/lib/caruby/util/domain_extent.rb +0 -46
  76. data/lib/caruby/util/file_separator.rb +0 -65
  77. data/lib/caruby/util/inflector.rb +0 -27
  78. data/lib/caruby/util/log.rb +0 -95
  79. data/lib/caruby/util/math.rb +0 -12
  80. data/lib/caruby/util/merge.rb +0 -59
  81. data/lib/caruby/util/module.rb +0 -18
  82. data/lib/caruby/util/options.rb +0 -97
  83. data/lib/caruby/util/partial_order.rb +0 -35
  84. data/lib/caruby/util/pretty_print.rb +0 -204
  85. data/lib/caruby/util/stopwatch.rb +0 -74
  86. data/lib/caruby/util/topological_sync_enumerator.rb +0 -62
  87. data/lib/caruby/util/transitive_closure.rb +0 -55
  88. data/lib/caruby/util/tree.rb +0 -48
  89. data/lib/caruby/util/trie.rb +0 -37
  90. data/lib/caruby/util/uniquifier.rb +0 -30
  91. data/lib/caruby/util/validation.rb +0 -20
  92. data/lib/caruby/util/visitor.rb +0 -365
  93. data/lib/caruby/util/weak_hash.rb +0 -36
  94. data/test/lib/caruby/csv/csv_mapper_test.rb +0 -40
  95. data/test/lib/caruby/csv/csvio_test.rb +0 -69
  96. data/test/lib/caruby/database/persistable_test.rb +0 -92
  97. data/test/lib/caruby/domain/domain_test.rb +0 -112
  98. data/test/lib/caruby/domain/inversible_test.rb +0 -99
  99. data/test/lib/caruby/domain/reference_visitor_test.rb +0 -130
  100. data/test/lib/caruby/import/java_test.rb +0 -80
  101. data/test/lib/caruby/import/mixed_case_test.rb +0 -14
  102. data/test/lib/caruby/migration/test_case.rb +0 -102
  103. data/test/lib/caruby/test_case.rb +0 -230
  104. data/test/lib/caruby/util/cache_test.rb +0 -23
  105. data/test/lib/caruby/util/class_test.rb +0 -61
  106. data/test/lib/caruby/util/collection_test.rb +0 -398
  107. data/test/lib/caruby/util/command_test.rb +0 -55
  108. data/test/lib/caruby/util/domain_extent_test.rb +0 -60
  109. data/test/lib/caruby/util/file_separator_test.rb +0 -30
  110. data/test/lib/caruby/util/inflector_test.rb +0 -12
  111. data/test/lib/caruby/util/lazy_hash_test.rb +0 -34
  112. data/test/lib/caruby/util/merge_test.rb +0 -83
  113. data/test/lib/caruby/util/module_test.rb +0 -25
  114. data/test/lib/caruby/util/options_test.rb +0 -59
  115. data/test/lib/caruby/util/partial_order_test.rb +0 -42
  116. data/test/lib/caruby/util/pretty_print_test.rb +0 -85
  117. data/test/lib/caruby/util/properties_test.rb +0 -50
  118. data/test/lib/caruby/util/stopwatch_test.rb +0 -18
  119. data/test/lib/caruby/util/topological_sync_enumerator_test.rb +0 -69
  120. data/test/lib/caruby/util/transitive_closure_test.rb +0 -67
  121. data/test/lib/caruby/util/tree_test.rb +0 -23
  122. data/test/lib/caruby/util/trie_test.rb +0 -14
  123. data/test/lib/caruby/util/visitor_test.rb +0 -278
  124. data/test/lib/caruby/util/weak_hash_test.rb +0 -45
  125. data/test/lib/examples/clinical_trials/migration/migration_test.rb +0 -58
  126. 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