og 0.26.0 → 0.27.0

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 (52) hide show
  1. data/INSTALL +10 -5
  2. data/ProjectInfo +9 -2
  3. data/README +3 -3
  4. data/Rakefile +5 -1
  5. data/doc/AUTHORS +3 -0
  6. data/doc/RELEASES +57 -0
  7. data/lib/glue/orderable.rb +8 -8
  8. data/lib/og.rb +6 -6
  9. data/lib/og/collection.rb +12 -3
  10. data/lib/og/entity.rb +2 -2
  11. data/lib/og/manager.rb +2 -1
  12. data/lib/og/store.rb +5 -8
  13. data/lib/og/store/kirby.rb +93 -12
  14. data/lib/og/store/mysql.rb +7 -21
  15. data/lib/og/store/psql.rb +9 -3
  16. data/lib/og/store/sql.rb +4 -2
  17. data/lib/og/store/sqlite.rb +3 -1
  18. data/lib/og/vendor/mysql.rb +1 -1
  19. data/setup.rb +1585 -0
  20. data/test/og/mixin/tc_hierarchical.rb +2 -0
  21. data/test/og/mixin/tc_optimistic_locking.rb +2 -0
  22. data/test/og/mixin/tc_orderable.rb +2 -0
  23. data/test/og/mixin/tc_taggable.rb +2 -0
  24. data/test/og/mixin/tc_timestamped.rb +2 -0
  25. data/test/og/store/tc_filesys.rb +2 -0
  26. data/test/og/store/tc_kirby.rb +2 -0
  27. data/test/og/tc_accumulator.rb +92 -0
  28. data/test/og/tc_delete_all.rb +2 -0
  29. data/test/og/tc_finder.rb +2 -0
  30. data/test/og/tc_inheritance.rb +2 -0
  31. data/test/og/tc_inheritance2.rb +35 -0
  32. data/test/og/tc_join.rb +2 -0
  33. data/test/og/tc_multi_validations.rb +19 -0
  34. data/test/og/tc_multiple.rb +2 -0
  35. data/test/og/tc_override.rb +2 -0
  36. data/test/og/tc_polymorphic.rb +3 -1
  37. data/test/og/tc_relation.rb +2 -0
  38. data/test/og/tc_reverse.rb +2 -0
  39. data/test/og/tc_scoped.rb +2 -0
  40. data/test/og/tc_select.rb +3 -0
  41. data/test/og/tc_store.rb +2 -0
  42. data/test/og/tc_types.rb +2 -0
  43. data/test/og/tc_validation.rb +2 -0
  44. data/test/og/tc_validation2.rb +207 -0
  45. data/test/og/tc_validation_loop.rb +36 -0
  46. metadata +124 -120
  47. data/benchmark/bench.rb +0 -75
  48. data/benchmark/sqlite-no-prepare.1.txt +0 -13
  49. data/benchmark/sqlite-no-prepare.2.txt +0 -13
  50. data/benchmark/sqlite-prepare.1.txt +0 -13
  51. data/benchmark/sqlite-prepare.2.txt +0 -13
  52. data/install.rb +0 -37
@@ -0,0 +1,36 @@
1
+ require 'test/unit'
2
+
3
+ require 'rubygems'
4
+
5
+ require 'og'
6
+
7
+ class ManagedClass
8
+ prop_accessor :thing
9
+
10
+ validate_unique :thing
11
+ end
12
+
13
+ Og.start
14
+
15
+ class TC_Loop < Test::Unit::TestCase
16
+ def setup
17
+ @thing_1 = ManagedClass.new
18
+ @thing_1.thing = 'thing'
19
+ @thing_1.save
20
+ end
21
+
22
+ def test_loop
23
+ thing_2 = ManagedClass.new
24
+ thing_2.thing = @thing_1.thing
25
+ # assert_raises(NoMethodError) {
26
+ # thing_2.valid?
27
+ # assert thing_2.errors
28
+ # }
29
+ end
30
+
31
+ def teardown
32
+ ManagedClass.all.each { |i| i.delete }
33
+ end
34
+ end
35
+
36
+ # * Bryan Soto <bryan.a.soto@gmail.com>
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.10
2
+ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: og
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.26.0
7
- date: 2005-12-21
6
+ version: 0.27.0
7
+ date: 2006-01-16 00:00:00 +02:00
8
8
  summary: State of the art object-relational mapping system.
9
9
  require_paths:
10
- - lib
10
+ - lib
11
11
  email: gm@navel.gr
12
12
  homepage: http://www.nitrohq.com
13
13
  rubyforge_project: nitro
@@ -15,132 +15,136 @@ description:
15
15
  autorequire:
16
16
  default_executable:
17
17
  bindir: bin
18
- has_rdoc: false
18
+ has_rdoc: true
19
19
  required_ruby_version: !ruby/object:Gem::Version::Requirement
20
20
  requirements:
21
- -
22
- - ">"
23
- - !ruby/object:Gem::Version
24
- version: 0.0.0
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
25
24
  version:
26
25
  platform: ruby
26
+ signing_key:
27
+ cert_chain:
27
28
  authors:
28
- - George Moschovitis
29
+ - George Moschovitis
29
30
  files:
30
- - benchmark
31
- - doc
32
- - examples
33
- - INSTALL
34
- - install.rb
35
- - lib
36
- - ProjectInfo
37
- - Rakefile
38
- - README
39
- - test
40
- - benchmark/bench.rb
41
- - benchmark/sqlite-no-prepare.1.txt
42
- - benchmark/sqlite-no-prepare.2.txt
43
- - benchmark/sqlite-prepare.1.txt
44
- - benchmark/sqlite-prepare.2.txt
45
- - doc/AUTHORS
46
- - doc/CHANGELOG.1
47
- - doc/config.txt
48
- - doc/LICENSE
49
- - doc/RELEASES
50
- - doc/tutorial.txt
51
- - examples/mysql_to_psql.rb
52
- - examples/README
53
- - examples/run.rb
54
- - lib/glue
55
- - lib/og
56
- - lib/og.rb
57
- - lib/glue/hierarchical.rb
58
- - lib/glue/optimistic_locking.rb
59
- - lib/glue/orderable.rb
60
- - lib/glue/revisable.rb
61
- - lib/glue/searchable.rb
62
- - lib/glue/taggable.rb
63
- - lib/glue/timestamped.rb
64
- - lib/glue/tree.rb
65
- - lib/og/collection.rb
66
- - lib/og/entity.rb
67
- - lib/og/errors.rb
68
- - lib/og/evolution.rb
69
- - lib/og/manager.rb
70
- - lib/og/markers.rb
71
- - lib/og/relation
72
- - lib/og/relation.rb
73
- - lib/og/store
74
- - lib/og/store.rb
75
- - lib/og/test
76
- - lib/og/test.rb
77
- - lib/og/types.rb
78
- - lib/og/validation.rb
79
- - lib/og/vendor
80
- - lib/og/relation/all.rb
81
- - lib/og/relation/belongs_to.rb
82
- - lib/og/relation/has_many.rb
83
- - lib/og/relation/has_one.rb
84
- - lib/og/relation/joins_many.rb
85
- - lib/og/relation/many_to_many.rb
86
- - lib/og/relation/refers_to.rb
87
- - lib/og/store/alpha
88
- - lib/og/store/kirby.rb
89
- - lib/og/store/mysql.rb
90
- - lib/og/store/psql
91
- - lib/og/store/psql.rb
92
- - lib/og/store/sql.rb
93
- - lib/og/store/sqlite.rb
94
- - lib/og/store/alpha/filesys.rb
95
- - lib/og/store/alpha/kirby.rb
96
- - lib/og/store/alpha/memory.rb
97
- - lib/og/store/alpha/sqlserver.rb
98
- - lib/og/test/assertions.rb
99
- - lib/og/test/testcase.rb
100
- - lib/og/vendor/mysql.rb
101
- - lib/og/vendor/mysql411.rb
102
- - lib/og/vendor/README
103
- - test/glue
104
- - test/og
105
- - test/glue/tc_revisable.rb
106
- - test/og/CONFIG.rb
107
- - test/og/mixin
108
- - test/og/store
109
- - test/og/tc_delete_all.rb
110
- - test/og/tc_finder.rb
111
- - test/og/tc_inheritance.rb
112
- - test/og/tc_join.rb
113
- - test/og/tc_multiple.rb
114
- - test/og/tc_override.rb
115
- - test/og/tc_polymorphic.rb
116
- - test/og/tc_relation.rb
117
- - test/og/tc_reverse.rb
118
- - test/og/tc_scoped.rb
119
- - test/og/tc_select.rb
120
- - test/og/tc_store.rb
121
- - test/og/tc_types.rb
122
- - test/og/tc_validation.rb
123
- - test/og/mixin/tc_hierarchical.rb
124
- - test/og/mixin/tc_optimistic_locking.rb
125
- - test/og/mixin/tc_orderable.rb
126
- - test/og/mixin/tc_taggable.rb
127
- - test/og/mixin/tc_timestamped.rb
128
- - test/og/store/tc_filesys.rb
129
- - test/og/store/tc_kirby.rb
31
+ - doc
32
+ - examples
33
+ - lib
34
+ - test
35
+ - ProjectInfo
36
+ - Rakefile
37
+ - README
38
+ - setup.rb
39
+ - INSTALL
40
+ - doc/tutorial.txt
41
+ - doc/config.txt
42
+ - doc/RELEASES
43
+ - doc/LICENSE
44
+ - doc/CHANGELOG.1
45
+ - doc/AUTHORS
46
+ - examples/run.rb
47
+ - examples/README
48
+ - examples/mysql_to_psql.rb
49
+ - lib/og
50
+ - lib/glue
51
+ - lib/og.rb
52
+ - lib/og/relation
53
+ - lib/og/store
54
+ - lib/og/test
55
+ - lib/og/vendor
56
+ - lib/og/validation.rb
57
+ - lib/og/types.rb
58
+ - lib/og/test.rb
59
+ - lib/og/store.rb
60
+ - lib/og/relation.rb
61
+ - lib/og/manager.rb
62
+ - lib/og/evolution.rb
63
+ - lib/og/errors.rb
64
+ - lib/og/entity.rb
65
+ - lib/og/collection.rb
66
+ - lib/og/markers.rb
67
+ - lib/og/relation/many_to_many.rb
68
+ - lib/og/relation/refers_to.rb
69
+ - lib/og/relation/joins_many.rb
70
+ - lib/og/relation/has_one.rb
71
+ - lib/og/relation/has_many.rb
72
+ - lib/og/relation/belongs_to.rb
73
+ - lib/og/relation/all.rb
74
+ - lib/og/store/alpha
75
+ - lib/og/store/sqlite.rb
76
+ - lib/og/store/sql.rb
77
+ - lib/og/store/psql.rb
78
+ - lib/og/store/mysql.rb
79
+ - lib/og/store/kirby.rb
80
+ - lib/og/store/alpha/sqlserver.rb
81
+ - lib/og/store/alpha/memory.rb
82
+ - lib/og/store/alpha/kirby.rb
83
+ - lib/og/store/alpha/filesys.rb
84
+ - lib/og/test/testcase.rb
85
+ - lib/og/test/assertions.rb
86
+ - lib/og/vendor/mysql411.rb
87
+ - lib/og/vendor/mysql.rb
88
+ - lib/og/vendor/README
89
+ - lib/glue/taggable.rb
90
+ - lib/glue/tree.rb
91
+ - lib/glue/hierarchical.rb
92
+ - lib/glue/timestamped.rb
93
+ - lib/glue/revisable.rb
94
+ - lib/glue/orderable.rb
95
+ - lib/glue/optimistic_locking.rb
96
+ - lib/glue/searchable.rb
97
+ - test/og
98
+ - test/glue
99
+ - test/og/mixin
100
+ - test/og/store
101
+ - test/og/tc_delete_all.rb
102
+ - test/og/tc_types.rb
103
+ - test/og/tc_store.rb
104
+ - test/og/tc_select.rb
105
+ - test/og/tc_reverse.rb
106
+ - test/og/tc_relation.rb
107
+ - test/og/tc_override.rb
108
+ - test/og/tc_polymorphic.rb
109
+ - test/og/tc_multiple.rb
110
+ - test/og/tc_join.rb
111
+ - test/og/tc_validation2.rb
112
+ - test/og/tc_inheritance.rb
113
+ - test/og/CONFIG.rb
114
+ - test/og/tc_scoped.rb
115
+ - test/og/tc_finder.rb
116
+ - test/og/tc_validation.rb
117
+ - test/og/tc_accumulator.rb
118
+ - test/og/tc_inheritance2.rb
119
+ - test/og/tc_multi_validations.rb
120
+ - test/og/tc_validation_loop.rb
121
+ - test/og/mixin/tc_timestamped.rb
122
+ - test/og/mixin/tc_taggable.rb
123
+ - test/og/mixin/tc_orderable.rb
124
+ - test/og/mixin/tc_hierarchical.rb
125
+ - test/og/mixin/tc_optimistic_locking.rb
126
+ - test/og/store/tc_filesys.rb
127
+ - test/og/store/tc_kirby.rb
128
+ - test/glue/tc_revisable.rb
130
129
  test_files: []
130
+
131
131
  rdoc_options: []
132
+
132
133
  extra_rdoc_files: []
134
+
133
135
  executables: []
136
+
134
137
  extensions: []
138
+
135
139
  requirements: []
140
+
136
141
  dependencies:
137
- - !ruby/object:Gem::Dependency
138
- name: glue
139
- version_requirement:
140
- version_requirements: !ruby/object:Gem::Version::Requirement
141
- requirements:
142
- -
143
- - "="
144
- - !ruby/object:Gem::Version
145
- version: 0.26.0
146
- version:
142
+ - !ruby/object:Gem::Dependency
143
+ name: glue
144
+ version_requirement:
145
+ version_requirements: !ruby/object:Gem::Version::Requirement
146
+ requirements:
147
+ - - "="
148
+ - !ruby/object:Gem::Version
149
+ version: 0.27.0
150
+ version:
@@ -1,75 +0,0 @@
1
- # * George Moschovitis <gm@navel.gr>
2
- # (c) 2004-2005 Navel, all rights reserved.
3
- # $Id: bench.rb 182 2005-07-22 10:07:50Z gmosx $
4
-
5
- require 'og'; include Og
6
-
7
-
8
- config = {
9
- :adapter => 'sqlite',
10
- :database => 'test',
11
- :connection_count => 5
12
- }
13
-
14
- class Article
15
- prop_accessor :title, String
16
- prop_accessor :body, String
17
- prop_accessor :hits, Fixnum
18
- prop_accessor :rate, Fixnum
19
-
20
- def initialize(title = nil, body = nil)
21
- @title = title
22
- @body = body
23
- @hits = rand(5)
24
- @rate = rand(100)
25
- end
26
- end
27
-
28
- Database.drop_db!(config)
29
- db = Database.new(config)
30
-
31
- # Benchmark the insert speed. Useful for finding
32
- # the improvement when using prepared statements.
33
-
34
- articles = []
35
-
36
- 500.times do |i|
37
- articles << Article.new("Title#{i}", "Body#{i}")
38
- end
39
-
40
- sum = 0
41
- min = 999999
42
- max = -min
43
-
44
- GC.disable
45
-
46
- 10.times do |i|
47
-
48
- db.exec "DELETE FROM #{Article::DBTABLE}"
49
-
50
- for article in articles
51
- article.oid = nil
52
- end
53
-
54
- Article.create("Dummy", "Dummy")
55
-
56
- t1 = Time.now
57
- articles.each do |a|
58
- a.save!
59
- end
60
- t2 = Time.now
61
-
62
- d = t2 - t1
63
- sum += d
64
- min = d if d < min
65
- max = d if d > max
66
-
67
- puts "Insert test #{i}: #{d} seconds"
68
-
69
- end
70
-
71
- puts %{
72
- Min: #{min}
73
- Max: #{max}
74
- Average: #{sum/10}
75
- }
@@ -1,13 +0,0 @@
1
- Insert test 0: 3.53403 seconds
2
- Insert test 1: 4.222878 seconds
3
- Insert test 2: 3.84379 seconds
4
- Insert test 3: 3.877513 seconds
5
- Insert test 4: 3.793392 seconds
6
- Insert test 5: 3.725927 seconds
7
- Insert test 6: 3.814542 seconds
8
- Insert test 7: 3.760054 seconds
9
- Insert test 8: 3.936868 seconds
10
- Insert test 9: 4.061833 seconds
11
- Min: 3.53403
12
- Max: 4.222878
13
- Average: 3.8570827
@@ -1,13 +0,0 @@
1
- Insert test 0: 4.050384 seconds
2
- Insert test 1: 4.098912 seconds
3
- Insert test 2: 3.739213 seconds
4
- Insert test 3: 4.030227 seconds
5
- Insert test 4: 4.061516 seconds
6
- Insert test 5: 3.963748 seconds
7
- Insert test 6: 4.088462 seconds
8
- Insert test 7: 4.047734 seconds
9
- Insert test 8: 3.966496 seconds
10
- Insert test 9: 3.948346 seconds
11
- Min: 3.739213
12
- Max: 4.098912
13
- Average: 3.9995038
@@ -1,13 +0,0 @@
1
- Insert test 0: 3.578891 seconds
2
- Insert test 1: 4.257714 seconds
3
- Insert test 2: 3.535036 seconds
4
- Insert test 3: 3.742329 seconds
5
- Insert test 4: 3.874829 seconds
6
- Insert test 5: 3.608657 seconds
7
- Insert test 6: 3.843804 seconds
8
- Insert test 7: 3.688756 seconds
9
- Insert test 8: 3.858303 seconds
10
- Insert test 9: 3.739155 seconds
11
- Min: 3.535036
12
- Max: 4.257714
13
- Average: 3.7727474
@@ -1,13 +0,0 @@
1
- Insert test 0: 3.859916 seconds
2
- Insert test 1: 4.321912 seconds
3
- Insert test 2: 3.836067 seconds
4
- Insert test 3: 4.077798 seconds
5
- Insert test 4: 4.171512 seconds
6
- Insert test 5: 4.148027 seconds
7
- Insert test 6: 3.841498 seconds
8
- Insert test 7: 3.94367 seconds
9
- Insert test 8: 3.758128 seconds
10
- Insert test 9: 4.25072 seconds
11
- Min: 3.758128
12
- Max: 4.321912
13
- Average: 4.0209248
data/install.rb DELETED
@@ -1,37 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'rbconfig'
4
- require 'ftools'
5
-
6
- dst_dir = Config::CONFIG['sitelibdir']
7
-
8
- Dir.chdir('lib') do
9
- Dir['**/*.rb'].each do |file|
10
- File.mkpath File.join(dst_dir, File.dirname(file)), true
11
- File.install file, File.join(dst_dir, file), 0644, true
12
- end
13
- end
14
-
15
- puts %{
16
-
17
-
18
- ---
19
- Congratulations, you have successfully installed Og!
20
- The libraries where installed in '#{dst_dir}'.
21
-
22
- You probably need to install the Glue library
23
- as well. (http://nitro.rubyforge.org)
24
-
25
- To verify that everything works correctly, try to run an
26
- example by issuing:
27
-
28
- $ cd examples
29
- $ ruby run.rb
30
-
31
- at the command line.
32
-
33
- Enjoy the magic of Og!
34
- }
35
-
36
- # * George Moschovitis <gm@navel.gr>
37
-