caruby-core 1.4.4 → 1.4.5

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.
Files changed (37) hide show
  1. data/History.txt +2 -0
  2. data/README.md +0 -2
  3. data/lib/caruby/migration/migrator.rb +1 -1
  4. data/lib/caruby/version.rb +1 -1
  5. data/test/lib/caruby/csv/csv_mapper_test.rb +40 -0
  6. data/test/lib/caruby/csv/csvio_test.rb +69 -0
  7. data/test/lib/caruby/database/persistable_test.rb +92 -0
  8. data/test/lib/caruby/domain/domain_test.rb +126 -0
  9. data/test/lib/caruby/domain/inversible_test.rb +99 -0
  10. data/test/lib/caruby/domain/reference_visitor_test.rb +130 -0
  11. data/test/lib/caruby/import/java_test.rb +58 -0
  12. data/test/lib/caruby/util/cache_test.rb +23 -0
  13. data/test/lib/caruby/util/class_test.rb +61 -0
  14. data/test/lib/caruby/util/collection_test.rb +379 -0
  15. data/test/lib/caruby/util/command_test.rb +55 -0
  16. data/test/lib/caruby/util/controlled_value_test.rb +26 -0
  17. data/test/lib/caruby/util/domain_extent_test.rb +60 -0
  18. data/test/lib/caruby/util/file_separator_test.rb +30 -0
  19. data/test/lib/caruby/util/inflector_test.rb +12 -0
  20. data/test/lib/caruby/util/lazy_hash_test.rb +34 -0
  21. data/test/lib/caruby/util/merge_test.rb +83 -0
  22. data/test/lib/caruby/util/module_test.rb +29 -0
  23. data/test/lib/caruby/util/options_test.rb +59 -0
  24. data/test/lib/caruby/util/partial_order_test.rb +41 -0
  25. data/test/lib/caruby/util/person_test.rb +115 -0
  26. data/test/lib/caruby/util/pretty_print_test.rb +85 -0
  27. data/test/lib/caruby/util/properties_test.rb +50 -0
  28. data/test/lib/caruby/util/stopwatch_test.rb +18 -0
  29. data/test/lib/caruby/util/topological_sync_enumerator_test.rb +69 -0
  30. data/test/lib/caruby/util/transitive_closure_test.rb +59 -0
  31. data/test/lib/caruby/util/tree_test.rb +23 -0
  32. data/test/lib/caruby/util/trie_test.rb +14 -0
  33. data/test/lib/caruby/util/validation_test.rb +14 -0
  34. data/test/lib/caruby/util/version_test.rb +31 -0
  35. data/test/lib/caruby/util/visitor_test.rb +277 -0
  36. data/test/lib/caruby/util/weak_hash_test.rb +45 -0
  37. metadata +179 -161
@@ -0,0 +1,45 @@
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
metadata CHANGED
@@ -1,178 +1,196 @@
1
1
  --- !ruby/object:Gem::Specification
2
- extensions: []
2
+ name: caruby-core
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 1.4.5
6
+ platform: ruby
7
+ authors:
8
+ - OHSU
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
3
12
 
4
- homepage: http://rubyforge.org/projects/caruby
13
+ date: 2011-02-26 00:00:00 -08:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: dbi
18
+ prerelease: false
19
+ requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: "0"
25
+ type: :runtime
26
+ version_requirements: *id001
27
+ - !ruby/object:Gem::Dependency
28
+ name: fastercsv
29
+ prerelease: false
30
+ requirement: &id002 !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: "0"
36
+ type: :runtime
37
+ version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: uom
40
+ prerelease: false
41
+ requirement: &id003 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: "0"
47
+ type: :runtime
48
+ version_requirements: *id003
49
+ description: " caRuby is a JRuby facade for interaction with caBIG applications.\n"
50
+ email: caruby.org@gmail.com
5
51
  executables: []
6
52
 
7
- version: !ruby/object:Gem::Version
8
- prerelease: false
9
- version: 1.4.4
10
- segments:
11
- - 1
12
- - 4
13
- - 4
14
- post_install_message:
15
- date: 2010-11-30 08:00:00 +00:00
16
- files:
17
- - lib/caruby.rb
18
- - lib/caruby/database.rb
19
- - lib/caruby/resource.rb
20
- - lib/caruby/version.rb
21
- - lib/caruby/active_support/inflections.rb
22
- - lib/caruby/active_support/inflector.rb
23
- - lib/caruby/active_support/README.txt
24
- - lib/caruby/active_support/core_ext/string.rb
25
- - lib/caruby/active_support/core_ext/string/inflections.rb
26
- - lib/caruby/cli/application.rb
27
- - lib/caruby/cli/command.rb
28
- - lib/caruby/csv/csv_mapper.rb
29
- - lib/caruby/csv/csvio.rb
30
- - lib/caruby/database/fetched_matcher.rb
31
- - lib/caruby/database/lazy_loader.rb
32
- - lib/caruby/database/persistable.rb
33
- - lib/caruby/database/persistence_service.rb
34
- - lib/caruby/database/persistifier.rb
35
- - lib/caruby/database/reader.rb
36
- - lib/caruby/database/saved_matcher.rb
37
- - lib/caruby/database/search_template_builder.rb
38
- - lib/caruby/database/sql_executor.rb
39
- - lib/caruby/database/store_template_builder.rb
40
- - lib/caruby/database/writer.rb
41
- - lib/caruby/domain/attribute_initializer.rb
42
- - lib/caruby/domain/attribute_metadata.rb
43
- - lib/caruby/domain/id_alias.rb
44
- - lib/caruby/domain/inversible.rb
45
- - lib/caruby/domain/java_attribute_metadata.rb
46
- - lib/caruby/domain/merge.rb
47
- - lib/caruby/domain/properties.rb
48
- - lib/caruby/domain/reference_visitor.rb
49
- - lib/caruby/domain/resource_attributes.rb
50
- - lib/caruby/domain/resource_dependency.rb
51
- - lib/caruby/domain/resource_introspection.rb
52
- - lib/caruby/domain/resource_inverse.rb
53
- - lib/caruby/domain/resource_metadata.rb
54
- - lib/caruby/domain/resource_module.rb
55
- - lib/caruby/domain/uniquify.rb
56
- - lib/caruby/import/java.rb
57
- - lib/caruby/migration/migratable.rb
58
- - lib/caruby/migration/migrator.rb
59
- - lib/caruby/migration/resource_module.rb
60
- - lib/caruby/migration/uniquify.rb
61
- - lib/caruby/util/attribute_path.rb
62
- - lib/caruby/util/cache.rb
63
- - lib/caruby/util/class.rb
64
- - lib/caruby/util/collection.rb
65
- - lib/caruby/util/controlled_value.rb
66
- - lib/caruby/util/coordinate.rb
67
- - lib/caruby/util/domain_extent.rb
68
- - lib/caruby/util/file_separator.rb
69
- - lib/caruby/util/inflector.rb
70
- - lib/caruby/util/log.rb
71
- - lib/caruby/util/math.rb
72
- - lib/caruby/util/merge.rb
73
- - lib/caruby/util/module.rb
74
- - lib/caruby/util/options.rb
75
- - lib/caruby/util/partial_order.rb
76
- - lib/caruby/util/person.rb
77
- - lib/caruby/util/pretty_print.rb
78
- - lib/caruby/util/properties.rb
79
- - lib/caruby/util/stopwatch.rb
80
- - lib/caruby/util/topological_sync_enumerator.rb
81
- - lib/caruby/util/transitive_closure.rb
82
- - lib/caruby/util/tree.rb
83
- - lib/caruby/util/trie.rb
84
- - lib/caruby/util/uniquifier.rb
85
- - lib/caruby/util/validation.rb
86
- - lib/caruby/util/version.rb
87
- - lib/caruby/util/visitor.rb
88
- - lib/caruby/util/weak_hash.rb
89
- - lib/caruby/yard/resource_metadata_handler.rb
90
- - History.txt
91
- - LEGAL
92
- - LICENSE
93
- - README.md
94
- rubygems_version: 1.3.7
95
- rdoc_options: []
53
+ extensions: []
96
54
 
97
- signing_key:
98
- cert_chain: []
55
+ extra_rdoc_files: []
99
56
 
100
- name: caruby-core
101
- has_rdoc: yard
102
- platform: ruby
103
- summary: Ruby facade for caBIG applications.
104
- default_executable:
105
- bindir: bin
57
+ files:
58
+ - lib/caruby.rb
59
+ - lib/caruby/database.rb
60
+ - lib/caruby/resource.rb
61
+ - lib/caruby/version.rb
62
+ - lib/caruby/active_support/inflections.rb
63
+ - lib/caruby/active_support/inflector.rb
64
+ - lib/caruby/active_support/README.txt
65
+ - lib/caruby/active_support/core_ext/string.rb
66
+ - lib/caruby/active_support/core_ext/string/inflections.rb
67
+ - lib/caruby/cli/application.rb
68
+ - lib/caruby/cli/command.rb
69
+ - lib/caruby/csv/csv_mapper.rb
70
+ - lib/caruby/csv/csvio.rb
71
+ - lib/caruby/database/fetched_matcher.rb
72
+ - lib/caruby/database/lazy_loader.rb
73
+ - lib/caruby/database/persistable.rb
74
+ - lib/caruby/database/persistence_service.rb
75
+ - lib/caruby/database/persistifier.rb
76
+ - lib/caruby/database/reader.rb
77
+ - lib/caruby/database/saved_matcher.rb
78
+ - lib/caruby/database/search_template_builder.rb
79
+ - lib/caruby/database/sql_executor.rb
80
+ - lib/caruby/database/store_template_builder.rb
81
+ - lib/caruby/database/writer.rb
82
+ - lib/caruby/domain/attribute_initializer.rb
83
+ - lib/caruby/domain/attribute_metadata.rb
84
+ - lib/caruby/domain/id_alias.rb
85
+ - lib/caruby/domain/inversible.rb
86
+ - lib/caruby/domain/java_attribute_metadata.rb
87
+ - lib/caruby/domain/merge.rb
88
+ - lib/caruby/domain/properties.rb
89
+ - lib/caruby/domain/reference_visitor.rb
90
+ - lib/caruby/domain/resource_attributes.rb
91
+ - lib/caruby/domain/resource_dependency.rb
92
+ - lib/caruby/domain/resource_introspection.rb
93
+ - lib/caruby/domain/resource_inverse.rb
94
+ - lib/caruby/domain/resource_metadata.rb
95
+ - lib/caruby/domain/resource_module.rb
96
+ - lib/caruby/domain/uniquify.rb
97
+ - lib/caruby/import/java.rb
98
+ - lib/caruby/migration/migratable.rb
99
+ - lib/caruby/migration/migrator.rb
100
+ - lib/caruby/migration/resource_module.rb
101
+ - lib/caruby/migration/uniquify.rb
102
+ - lib/caruby/util/attribute_path.rb
103
+ - lib/caruby/util/cache.rb
104
+ - lib/caruby/util/class.rb
105
+ - lib/caruby/util/collection.rb
106
+ - lib/caruby/util/controlled_value.rb
107
+ - lib/caruby/util/coordinate.rb
108
+ - lib/caruby/util/domain_extent.rb
109
+ - lib/caruby/util/file_separator.rb
110
+ - lib/caruby/util/inflector.rb
111
+ - lib/caruby/util/log.rb
112
+ - lib/caruby/util/math.rb
113
+ - lib/caruby/util/merge.rb
114
+ - lib/caruby/util/module.rb
115
+ - lib/caruby/util/options.rb
116
+ - lib/caruby/util/partial_order.rb
117
+ - lib/caruby/util/person.rb
118
+ - lib/caruby/util/pretty_print.rb
119
+ - lib/caruby/util/properties.rb
120
+ - lib/caruby/util/stopwatch.rb
121
+ - lib/caruby/util/topological_sync_enumerator.rb
122
+ - lib/caruby/util/transitive_closure.rb
123
+ - lib/caruby/util/tree.rb
124
+ - lib/caruby/util/trie.rb
125
+ - lib/caruby/util/uniquifier.rb
126
+ - lib/caruby/util/validation.rb
127
+ - lib/caruby/util/version.rb
128
+ - lib/caruby/util/visitor.rb
129
+ - lib/caruby/util/weak_hash.rb
130
+ - lib/caruby/yard/resource_metadata_handler.rb
131
+ - test/lib/caruby/csv/csv_mapper_test.rb
132
+ - test/lib/caruby/csv/csvio_test.rb
133
+ - test/lib/caruby/database/persistable_test.rb
134
+ - test/lib/caruby/domain/domain_test.rb
135
+ - test/lib/caruby/domain/inversible_test.rb
136
+ - test/lib/caruby/domain/reference_visitor_test.rb
137
+ - test/lib/caruby/import/java_test.rb
138
+ - test/lib/caruby/util/cache_test.rb
139
+ - test/lib/caruby/util/class_test.rb
140
+ - test/lib/caruby/util/collection_test.rb
141
+ - test/lib/caruby/util/command_test.rb
142
+ - test/lib/caruby/util/controlled_value_test.rb
143
+ - test/lib/caruby/util/domain_extent_test.rb
144
+ - test/lib/caruby/util/file_separator_test.rb
145
+ - test/lib/caruby/util/inflector_test.rb
146
+ - test/lib/caruby/util/lazy_hash_test.rb
147
+ - test/lib/caruby/util/merge_test.rb
148
+ - test/lib/caruby/util/module_test.rb
149
+ - test/lib/caruby/util/options_test.rb
150
+ - test/lib/caruby/util/partial_order_test.rb
151
+ - test/lib/caruby/util/person_test.rb
152
+ - test/lib/caruby/util/pretty_print_test.rb
153
+ - test/lib/caruby/util/properties_test.rb
154
+ - test/lib/caruby/util/stopwatch_test.rb
155
+ - test/lib/caruby/util/topological_sync_enumerator_test.rb
156
+ - test/lib/caruby/util/transitive_closure_test.rb
157
+ - test/lib/caruby/util/tree_test.rb
158
+ - test/lib/caruby/util/trie_test.rb
159
+ - test/lib/caruby/util/validation_test.rb
160
+ - test/lib/caruby/util/version_test.rb
161
+ - test/lib/caruby/util/visitor_test.rb
162
+ - test/lib/caruby/util/weak_hash_test.rb
163
+ - History.txt
164
+ - LEGAL
165
+ - LICENSE
166
+ - README.md
167
+ has_rdoc: true
168
+ homepage: http://rubyforge.org/projects/caruby
106
169
  licenses:
107
- - MIT
108
- required_rubygems_version: !ruby/object:Gem::Requirement
109
- none: false
110
- requirements:
111
- - - '>='
112
- - !ruby/object:Gem::Version
113
- version: "0"
114
- segments:
115
- - 0
170
+ - MIT
171
+ post_install_message:
172
+ rdoc_options: []
173
+
174
+ require_paths:
175
+ - lib
116
176
  required_ruby_version: !ruby/object:Gem::Requirement
117
177
  none: false
118
178
  requirements:
119
- - - '>='
120
- - !ruby/object:Gem::Version
121
- version: "0"
122
- segments:
123
- - 0
124
- require_paths:
125
- - lib
126
- specification_version: 3
127
- test_files: []
128
-
129
- dependencies:
130
- - !ruby/object:Gem::Dependency
131
- prerelease: false
132
- type: :runtime
133
- name: dbi
134
- version_requirements: &id001 !ruby/object:Gem::Requirement
135
- none: false
136
- requirements:
137
- - - '>='
138
- - !ruby/object:Gem::Version
139
- version: "0"
140
- segments:
141
- - 0
142
- requirement: *id001
143
- - !ruby/object:Gem::Dependency
144
- prerelease: false
145
- type: :runtime
146
- name: fastercsv
147
- version_requirements: &id002 !ruby/object:Gem::Requirement
148
- none: false
149
- requirements:
150
- - - '>='
179
+ - - ">="
151
180
  - !ruby/object:Gem::Version
152
181
  version: "0"
153
- segments:
154
- - 0
155
- requirement: *id002
156
- - !ruby/object:Gem::Dependency
157
- prerelease: false
158
- type: :runtime
159
- name: uom
160
- version_requirements: &id003 !ruby/object:Gem::Requirement
161
- none: false
162
- requirements:
163
- - - '>='
182
+ required_rubygems_version: !ruby/object:Gem::Requirement
183
+ none: false
184
+ requirements:
185
+ - - ">="
164
186
  - !ruby/object:Gem::Version
165
187
  version: "0"
166
- segments:
167
- - 0
168
- requirement: *id003
169
- description: " caRuby is a JRuby facade for interaction with caBIG applications.\n"
170
- email: caruby.org@gmail.com
171
- authors:
172
- - OHSU
173
- extra_rdoc_files: []
174
-
175
188
  requirements: []
176
189
 
177
190
  rubyforge_project: caruby
178
- autorequire:
191
+ rubygems_version: 1.5.2
192
+ signing_key:
193
+ specification_version: 3
194
+ summary: Ruby facade for caBIG applications.
195
+ test_files: []
196
+