og 0.15.0 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. data/CHANGELOG +77 -0
  2. data/INSTALL +3 -0
  3. data/README +5 -3
  4. data/Rakefile +148 -5
  5. data/benchmark/bench.rb +1 -1
  6. data/doc/AUTHORS +4 -4
  7. data/doc/RELEASES +41 -1
  8. data/examples/mock_example.rb +1 -1
  9. data/examples/mysql_to_psql.rb +1 -1
  10. data/examples/run.rb +1 -1
  11. data/install.rb +1 -1
  12. data/lib/og.rb +4 -2
  13. data/lib/og/{adapter.rb → adapters/base.rb} +334 -152
  14. data/lib/og/adapters/filesys.rb +3 -7
  15. data/lib/og/adapters/mysql.rb +5 -9
  16. data/lib/og/adapters/oracle.rb +5 -9
  17. data/lib/og/adapters/psql.rb +5 -9
  18. data/lib/og/adapters/sqlite.rb +5 -9
  19. data/lib/og/adapters/sqlserver.rb +5 -9
  20. data/lib/og/database.rb +13 -11
  21. data/lib/og/enchant.rb +1 -1
  22. data/lib/og/errors.rb +21 -0
  23. data/lib/og/meta.rb +10 -9
  24. data/lib/og/mixins/hierarchical.rb +4 -4
  25. data/lib/og/mixins/orderable.rb +1 -1
  26. data/lib/og/mixins/timestamped.rb +24 -0
  27. data/lib/og/mixins/tree.rb +3 -1
  28. data/lib/og/testing/mock.rb +2 -2
  29. data/lib/og/typemacros.rb +1 -1
  30. data/lib/og/validation.rb +4 -4
  31. data/test/og/{tc_filesys.rb → adapters/tc_filesys.rb} +1 -1
  32. data/test/og/{tc_sqlite.rb → adapters/tc_sqlite.rb} +3 -4
  33. data/test/og/{tc_sqlserver.rb → adapters/tc_sqlserver.rb} +5 -2
  34. data/test/og/mixins/tc_hierarchical.rb +0 -1
  35. data/test/og/mixins/tc_orderable.rb +0 -1
  36. data/test/og/tc_automanage.rb +3 -2
  37. data/test/og/tc_lifecycle.rb +15 -14
  38. data/test/og/tc_many_to_many.rb +0 -1
  39. data/test/og/tc_meta.rb +5 -5
  40. data/test/og/tc_validation.rb +1 -1
  41. data/test/tc_og.rb +0 -20
  42. metadata +33 -34
  43. data/examples/test.db +0 -0
  44. data/lib/og/connection.rb +0 -325
  45. data/lib/og/observer.rb +0 -53
  46. data/test/og/tc_observer.rb +0 -85
@@ -1,6 +1,6 @@
1
1
  # * George Moschovitis <gm@navel.gr>
2
2
  # (c) 2004-2005 Navel, all rights reserved.
3
- # $Id: hierarchical.rb 341 2005-04-04 08:28:54Z gmosx $
3
+ # $Id: hierarchical.rb 1 2005-04-11 11:04:30Z gmosx $
4
4
 
5
5
  require 'glue/dynamic_include'
6
6
 
@@ -17,8 +17,8 @@ module NestedSets
17
17
  :right => 'rgt',
18
18
  :type => Fixnum,
19
19
  :scope => '"1 = 1"',
20
- :parent => N::Inflector.name(base),
21
- :children => N::Inflector.plural_name(base)
20
+ :parent => Inflector.name(base),
21
+ :children => Inflector.plural_name(base)
22
22
  }
23
23
  c.update(options) if options
24
24
 
@@ -26,7 +26,7 @@ module NestedSets
26
26
  left = c[:left]
27
27
  right = c[:right]
28
28
  children = c[:children]
29
- child = N::Inflector.singularize(children)
29
+ child = Inflector.singularize(children)
30
30
 
31
31
  if c[:scope].is_a?(Symbol) && c[:scope].to_s !~ /_oid$/
32
32
  c[:scope] = "#{c[:scope]}_oid".intern
@@ -1,6 +1,6 @@
1
1
  # * George Moschovitis <gm@navel.gr>
2
2
  # (c) 2004-2005 Navel, all rights reserved.
3
- # $Id: orderable.rb 340 2005-04-04 08:26:58Z gmosx $
3
+ # $Id: orderable.rb 1 2005-04-11 11:04:30Z gmosx $
4
4
 
5
5
  require 'glue/dynamic_include'
6
6
 
@@ -0,0 +1,24 @@
1
+ # * George Moschovitis <gm@navel.gr>
2
+ # (c) 2005 Navel, all rights reserved.
3
+ # $Id: timestamped.rb 23 2005-04-16 18:20:00Z gmosx $
4
+
5
+ module Og
6
+
7
+ # Adds timestamping functionality.
8
+
9
+ module Timestamped
10
+
11
+ property :create_time, Time
12
+ property :update_time, Time
13
+ property :access_time, Time
14
+
15
+ pre "@create_time = @update_time = Time.now", :on => :og_insert
16
+ pre "@update_time = Time.now", :on => :og_update
17
+
18
+ def touch!
19
+ @access_time = Time.now
20
+ end
21
+
22
+ end
23
+
24
+ end
@@ -1,9 +1,11 @@
1
1
  # * George Moschovitis <gm@navel.gr>
2
2
  # (c) 2004-2005 Navel, all rights reserved.
3
- # $Id: tree.rb 326 2005-03-28 11:07:17Z gmosx $
3
+ # $Id: tree.rb 1 2005-04-11 11:04:30Z gmosx $
4
4
 
5
5
  # NOT WORKING YET !!!
6
6
 
7
+ raise 'This is not working yet, do not require this file.'
8
+
7
9
  require 'glue/attribute'
8
10
 
9
11
  module Og
@@ -1,7 +1,7 @@
1
1
  # * George Moschovitis <gm@navel.gr>
2
2
  # * Thomas Quas <tquas@yahoo.com>
3
3
  # (c) 2004-2005 Navel, all rights reserved.
4
- # $Id$
4
+ # $Id: mock.rb 1 2005-04-11 11:04:30Z gmosx $
5
5
 
6
6
  require 'flexmock'
7
7
 
@@ -51,7 +51,7 @@ class MockDatabase < ::FlexMock
51
51
  # Initialize FlexMock
52
52
  super
53
53
 
54
- @managed_classes = N::SafeHash.new
54
+ @managed_classes = SafeHash.new
55
55
 
56
56
  Logger.info "Using mock database."
57
57
 
@@ -1,7 +1,7 @@
1
1
  # * George Moschovitis <gm@navel.gr>
2
2
  # * Michael Neumann <mneumann@ntecs.de>
3
3
  # (c) 2004-2005 Navel, all rights reserved.
4
- # $Id: typemacros.rb 340 2005-04-04 08:26:58Z gmosx $
4
+ # $Id: typemacros.rb 1 2005-04-11 11:04:30Z gmosx $
5
5
 
6
6
  module Og
7
7
 
@@ -1,10 +1,10 @@
1
1
  # * George Moschovitis <gm@navel.gr>
2
2
  # (c) 2004-2005 Navel, all rights reserved.
3
- # $Id: validation.rb 301 2005-03-16 13:24:25Z gmosx $
3
+ # $Id: validation.rb 1 2005-04-11 11:04:30Z gmosx $
4
4
 
5
5
  require 'glue/validation'
6
6
 
7
- module N
7
+ module Glue
8
8
 
9
9
  # Extend the Validation methods defined in glue/validation.rb with
10
10
  # extra db related options.
@@ -34,7 +34,7 @@ module Validation
34
34
 
35
35
  def validate_unique(*params)
36
36
  c = {
37
- :msg => N::Validation::Errors.not_unique,
37
+ :msg => Glue::Validation::Errors.not_unique,
38
38
  :on => :save
39
39
  }
40
40
  c.update(params.pop) if params.last.is_a?(Hash)
@@ -57,7 +57,7 @@ module Validation
57
57
 
58
58
  def validate_related(*params)
59
59
  c = {
60
- :msg => N::Validation::Errors.invalid_relation,
60
+ :msg => Glue::Validation::Errors.invalid_relation,
61
61
  :on => :save
62
62
  }
63
63
  c.update(params.pop) if params.last.is_a?(Hash)
@@ -7,7 +7,7 @@ require 'og'
7
7
  require 'og/adapters/filesys'
8
8
 
9
9
  class TC_OgFilesys < Test::Unit::TestCase # :nodoc: all
10
- include N, Og
10
+ include Og
11
11
 
12
12
  # Forward declaration.
13
13
 
@@ -1,15 +1,14 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__), '..', '..', 'lib')
2
2
 
3
- =begin
4
-
5
3
  require 'test/unit'
6
4
  require 'ostruct'
7
5
 
8
6
  require 'og'
9
7
  require 'og/adapters/sqlite'
10
8
 
9
+ if defined?(SQLite3)
10
+
11
11
  class TC_OgSqlite3 < Test::Unit::TestCase # :nodoc: all
12
- include N
13
12
 
14
13
  # Forward declaration.
15
14
 
@@ -84,4 +83,4 @@ class TC_OgSqlite3 < Test::Unit::TestCase # :nodoc: all
84
83
 
85
84
  end
86
85
 
87
- =end
86
+ end
@@ -4,10 +4,11 @@ require 'test/unit'
4
4
  require 'ostruct'
5
5
 
6
6
  require 'og'
7
- #require 'og/adapters/sqlserver'
7
+ require 'og/adapters/sqlserver'
8
+
9
+ if defined?(DBI)
8
10
 
9
11
  class TC_OgSqlserver < Test::Unit::TestCase # :nodoc: all
10
- include N
11
12
 
12
13
  # Forward declaration.
13
14
 
@@ -91,3 +92,5 @@ class TC_OgSqlserver < Test::Unit::TestCase # :nodoc: all
91
92
  end
92
93
 
93
94
  end
95
+
96
+ end
@@ -16,7 +16,6 @@ $og = Og::Database.new(
16
16
  )
17
17
 
18
18
  class TestCaseOgHierarchical < Test::Unit::TestCase # :nodoc: all
19
- include N
20
19
 
21
20
  class Comment
22
21
  property :body, String
@@ -16,7 +16,6 @@ $og = Og::Database.new(
16
16
  )
17
17
 
18
18
  class TestCaseOgOrderable < Test::Unit::TestCase # :nodoc: all
19
- include N
20
19
 
21
20
  class Comment; end
22
21
 
@@ -14,15 +14,16 @@ $og = Og::Database.new(
14
14
  )
15
15
 
16
16
  class TestCaseOgObserver < Test::Unit::TestCase # :nodoc: all
17
- include N
18
17
 
19
18
  # Define a class after the Database is created.
20
19
 
20
+ class Article; end
21
+
21
22
  class User
22
23
  property :name
23
24
 
24
25
  # auto forward ref.
25
- has_many :articles, TestCaseOgObserver::Article
26
+ has_many :articles, Article
26
27
  end
27
28
 
28
29
  class Article
@@ -3,35 +3,35 @@
3
3
 
4
4
  # * Thomas Quas <tquas@yahoo.com>
5
5
  # * George Moschovitis <gm@navel.gr>
6
- # $Id$
6
+ # $Id: tc_lifecycle.rb 17 2005-04-14 16:03:40Z gmosx $
7
7
 
8
8
  $LOAD_PATH.unshift 'lib'
9
9
 
10
10
  require 'test/unit'
11
11
  require 'glue/logger'
12
- require 'og/mock'
12
+ require 'og/testing/mock'
13
13
 
14
14
  $DBG = false
15
15
 
16
16
  class Dummy
17
- prop_accessor :date, Time
18
- attr_reader :call_stack
17
+ include Aspects
19
18
 
20
- def og_pre_insert( oid )
21
- @call_stack << 'pre_insert'
22
- end
19
+ prop_accessor :date, Time
20
+ attr_accessor :call_stack
23
21
 
24
- def og_post_insert( oid )
25
- @call_stack << 'post_insert'
26
- end
22
+ pre(:on => :og_insert) { |this| this.call_stack << 'pre_insert' }
23
+ post(:on => :og_insert) { |this| this.call_stack << 'post_insert' }
27
24
 
28
- def og_pre_update( oid )
25
+ def og_pre_update
29
26
  @call_stack << 'pre_update'
30
27
  end
28
+ pre :og_pre_update, :on => :og_update
31
29
 
32
- def og_post_update( oid )
33
- @call_stack << 'post_update'
34
- end
30
+ post(:on => :og_update) { |this| this.call_stack << 'post_update' }
31
+
32
+ # faster :)
33
+
34
+ post "@call_stack << 'post_update2'", :on => :og_update
35
35
 
36
36
  def self.og_pre_delete( conn, oid )
37
37
  raise 'undeletable'
@@ -63,6 +63,7 @@ class TC_CallbackTest < ::Test::Unit::TestCase
63
63
  obj.save
64
64
  assert( obj.call_stack.shift == "pre_update" )
65
65
  assert( obj.call_stack.shift == "post_update" )
66
+ assert( obj.call_stack.shift == "post_update2" )
66
67
  assert( obj.call_stack.empty? )
67
68
  end
68
69
 
@@ -6,7 +6,6 @@ require 'ostruct'
6
6
  require 'og'
7
7
 
8
8
  class TC_OgManyToMany < Test::Unit::TestCase # :nodoc: all
9
- include N
10
9
 
11
10
  class Attribute
12
11
  property :name, String
@@ -6,7 +6,7 @@ require 'ostruct'
6
6
  require 'og'
7
7
 
8
8
  class TC_OgMeta < Test::Unit::TestCase # :nodoc: all
9
- include N
9
+ include Og
10
10
 
11
11
  # Forward declaration.
12
12
 
@@ -40,13 +40,13 @@ class TC_OgMeta < Test::Unit::TestCase # :nodoc: all
40
40
  def test_all
41
41
  par = Article.__meta[:props_and_relations]
42
42
  assert_equal 3, par.size
43
- assert_equal N::Property, par[1].class
44
- assert_equal Og::HasMany, par[2].class
43
+ assert_equal Property, par[1].class
44
+ assert_equal HasMany, par[2].class
45
45
 
46
46
  par = Comment.__meta[:props_and_relations]
47
47
  assert_equal 3, par.size
48
- assert_equal N::Property, par[0].class
49
- assert_equal Og::BelongsTo, par[1].class
48
+ assert_equal Property, par[0].class
49
+ assert_equal BelongsTo, par[1].class
50
50
  assert_equal 'article_oid', par[1].meta[:property].to_s
51
51
  assert_equal String, par[0].klass
52
52
  assert_equal Article, par[1].foreign_class
@@ -5,7 +5,7 @@ require 'test/unit'
5
5
  require 'og'
6
6
  require 'og/validation'
7
7
 
8
- N::Property.type_checking = false
8
+ Property.type_checking = false
9
9
 
10
10
  class TC_OgValidation < Test::Unit::TestCase # :nodoc: all
11
11
 
@@ -48,18 +48,6 @@ class Article
48
48
  @body = body
49
49
  @options = {"hello" => "world"}
50
50
  end
51
-
52
- def og_pre_insert(conn)
53
- puts "-- PRE INSERT CALLED FOR ARTICLE"
54
- end
55
-
56
- def og_post_insert_update(conn)
57
- puts "-- POST INSERT UPDATE CALLED FOR ARTICLE"
58
- end
59
-
60
- def og_post_update(conn)
61
- puts "-- POST UPDATE CALLED FOR ARTICLE"
62
- end
63
51
  end
64
52
 
65
53
  class Comment
@@ -72,14 +60,6 @@ class Comment
72
60
  @create_time = Time.now
73
61
  @body = body
74
62
  end
75
-
76
- def og_pre_insert(conn)
77
- puts "-- PRE INSERT CALLED FOR COMMENT"
78
- end
79
-
80
- def og_post_insert(conn)
81
- puts "-- POST INSERT CALLED FOR COMMENT"
82
- end
83
63
  end
84
64
 
85
65
  module MyMixin
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.10
3
3
  specification_version: 1
4
4
  name: og
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.15.0
7
- date: 2005-04-04
6
+ version: 0.16.0
7
+ date: 2005-04-18
8
8
  summary: Og (ObjectGraph)
9
9
  require_paths:
10
10
  - lib
@@ -21,67 +21,66 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
21
21
  -
22
22
  - ">="
23
23
  - !ruby/object:Gem::Version
24
- version: 1.8.1
24
+ version: 1.8.2
25
25
  version:
26
26
  platform: ruby
27
27
  authors:
28
28
  - George Moschovitis
29
29
  files:
30
+ - CHANGELOG
30
31
  - Rakefile
31
32
  - INSTALL
32
- - CHANGELOG
33
33
  - README
34
34
  - install.rb
35
- - benchmark/sqlite-prepare.2.txt
36
- - benchmark/sqlite-no-prepare.2.txt
37
- - benchmark/sqlite-no-prepare.1.txt
38
35
  - benchmark/bench.rb
36
+ - benchmark/sqlite-no-prepare.1.txt
37
+ - benchmark/sqlite-no-prepare.2.txt
39
38
  - benchmark/sqlite-prepare.1.txt
40
- - examples/test.db
41
- - examples/mysql_to_psql.rb
42
- - examples/run.rb
39
+ - benchmark/sqlite-prepare.2.txt
43
40
  - examples/mock_example.rb
41
+ - examples/run.rb
42
+ - examples/mysql_to_psql.rb
44
43
  - examples/README
45
- - doc/config.txt
44
+ - doc/tutorial.txt
46
45
  - doc/LICENSE
47
- - doc/AUTHORS
46
+ - doc/config.txt
48
47
  - doc/RELEASES
49
- - doc/tutorial.txt
48
+ - doc/AUTHORS
50
49
  - lib/og
51
50
  - lib/og.rb
52
- - lib/og/adapter.rb
53
- - lib/og/testing
54
- - lib/og/mixins
55
51
  - lib/og/adapters
52
+ - lib/og/mixins
53
+ - lib/og/testing
54
+ - lib/og/typemacros.rb
56
55
  - lib/og/enchant.rb
57
- - lib/og/connection.rb
58
- - lib/og/observer.rb
59
56
  - lib/og/database.rb
60
57
  - lib/og/meta.rb
61
58
  - lib/og/validation.rb
62
- - lib/og/typemacros.rb
63
- - lib/og/testing/mock.rb
64
- - lib/og/mixins/hierarchical.rb
65
- - lib/og/mixins/orderable.rb
66
- - lib/og/mixins/tree.rb
67
- - lib/og/adapters/oracle.rb
59
+ - lib/og/errors.rb
68
60
  - lib/og/adapters/filesys.rb
69
- - lib/og/adapters/mysql.rb
61
+ - lib/og/adapters/psql.rb
70
62
  - lib/og/adapters/sqlite.rb
63
+ - lib/og/adapters/mysql.rb
64
+ - lib/og/adapters/oracle.rb
71
65
  - lib/og/adapters/sqlserver.rb
72
- - lib/og/adapters/psql.rb
73
- - test/tc_og.rb
66
+ - lib/og/adapters/base.rb
67
+ - lib/og/mixins/hierarchical.rb
68
+ - lib/og/mixins/tree.rb
69
+ - lib/og/mixins/orderable.rb
70
+ - lib/og/mixins/timestamped.rb
71
+ - lib/og/testing/mock.rb
74
72
  - test/og
73
+ - test/tc_og.rb
74
+ - test/og/adapters
75
75
  - test/og/mixins
76
- - test/og/tc_sqlite.rb
76
+ - test/og/tc_many_to_many.rb
77
77
  - test/og/tc_validation.rb
78
- - test/og/tc_observer.rb
78
+ - test/og/tc_lifecycle.rb
79
79
  - test/og/tc_automanage.rb
80
- - test/og/tc_filesys.rb
81
- - test/og/tc_sqlserver.rb
82
80
  - test/og/tc_meta.rb
83
- - test/og/tc_many_to_many.rb
84
- - test/og/tc_lifecycle.rb
81
+ - test/og/adapters/tc_filesys.rb
82
+ - test/og/adapters/tc_sqlite.rb
83
+ - test/og/adapters/tc_sqlserver.rb
85
84
  - test/og/mixins/tc_hierarchical.rb
86
85
  - test/og/mixins/tc_orderable.rb
87
86
  test_files: []
@@ -109,5 +108,5 @@ dependencies:
109
108
  -
110
109
  - "="
111
110
  - !ruby/object:Gem::Version
112
- version: 0.15.0
111
+ version: 0.16.0
113
112
  version: