nitro 0.7.0 → 0.8.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.
- data/AUTHORS +14 -4
- data/ChangeLog +192 -1
- data/README +50 -6
- data/RELEASES +60 -0
- data/Rakefile +1 -1
- data/bin/cluster.rb +2 -2
- data/bin/new_form.rb +1 -1
- data/examples/blog/config.rb +5 -4
- data/examples/blog/lib/blog.rb +56 -36
- data/examples/blog/root/comments.xhtml +5 -2
- data/examples/blog/root/entry_form.xhtml +7 -2
- data/examples/blog/root/login.xhtml +1 -1
- data/examples/blog/root/style.xsl +7 -0
- data/examples/og/mock_example.rb +6 -9
- data/examples/og/mysql_to_psql.rb +100 -0
- data/examples/og/run.rb +8 -17
- data/lib/glue.rb +7 -8
- data/lib/glue/array.rb +1 -1
- data/lib/glue/attribute.rb +86 -0
- data/lib/glue/cache.rb +1 -1
- data/lib/glue/hash.rb +1 -1
- data/lib/glue/inflector.rb +1 -1
- data/lib/glue/logger.rb +118 -18
- data/lib/glue/mixins.rb +1 -1
- data/lib/glue/number.rb +1 -1
- data/lib/glue/pool.rb +1 -1
- data/lib/glue/property.rb +48 -31
- data/lib/glue/string.rb +1 -1
- data/lib/glue/time.rb +2 -2
- data/lib/glue/validation.rb +400 -0
- data/lib/nitro/application.rb +6 -6
- data/lib/nitro/builders/form.rb +5 -5
- data/lib/nitro/builders/rss.rb +1 -1
- data/lib/nitro/builders/xhtml.rb +119 -0
- data/lib/nitro/builders/xml.rb +111 -0
- data/lib/nitro/config.rb +6 -6
- data/lib/nitro/events.rb +1 -1
- data/lib/nitro/html.rb +1 -1
- data/lib/nitro/markup.rb +15 -20
- data/lib/nitro/scaffold.rb +2 -2
- data/lib/nitro/server/appserver.rb +3 -3
- data/lib/nitro/server/cluster.rb +2 -2
- data/lib/nitro/server/dispatcher.rb +2 -2
- data/lib/nitro/server/filters/autologin.rb +1 -1
- data/lib/nitro/server/fragment.rb +2 -2
- data/lib/nitro/server/handlers.rb +2 -2
- data/lib/nitro/server/render.rb +17 -15
- data/lib/nitro/server/request.rb +6 -6
- data/lib/nitro/server/script.rb +2 -2
- data/lib/nitro/server/server.rb +2 -2
- data/lib/nitro/server/session.rb +6 -6
- data/lib/nitro/server/shaders.rb +2 -2
- data/lib/nitro/server/webrick.rb +1 -1
- data/lib/nitro/sitemap.rb +2 -2
- data/lib/nitro/uri.rb +1 -1
- data/lib/nitro/version.rb +7 -5
- data/lib/og.rb +95 -129
- data/lib/og/backend.rb +47 -46
- data/lib/og/backends/mysql.rb +64 -63
- data/lib/og/backends/psql.rb +73 -72
- data/lib/og/connection.rb +7 -8
- data/lib/og/enchant.rb +80 -0
- data/lib/og/meta.rb +21 -21
- data/lib/og/mock.rb +31 -88
- data/lib/og/version.rb +6 -5
- data/lib/parts/README +9 -0
- data/lib/parts/content.rb +23 -9
- data/test/glue/tc_attribute.rb +22 -0
- data/test/glue/tc_cache.rb +4 -6
- data/test/glue/tc_hash.rb +2 -2
- data/test/glue/tc_logger.rb +36 -0
- data/test/glue/tc_numbers.rb +2 -2
- data/test/glue/tc_property_mixins.rb +35 -4
- data/test/glue/tc_strings.rb +32 -32
- data/test/glue/tc_validation.rb +186 -0
- data/test/nitro/builders/tc_xhtml.rb +38 -0
- data/test/nitro/builders/tc_xml.rb +47 -0
- data/test/nitro/server/tc_request.rb +2 -2
- data/test/nitro/server/tc_session.rb +1 -1
- data/test/nitro/tc_sitemap.rb +1 -1
- data/test/nitro/ui/tc_pager.rb +1 -10
- data/test/tc_og.rb +3 -3
- data/vendor/blankslate.rb +53 -0
- data/vendor/extensions/_base.rb +153 -0
- data/vendor/extensions/_template.rb +36 -0
- data/vendor/extensions/all.rb +21 -0
- data/vendor/extensions/array.rb +68 -0
- data/vendor/extensions/binding.rb +224 -0
- data/vendor/extensions/class.rb +50 -0
- data/vendor/extensions/continuation.rb +71 -0
- data/vendor/extensions/enumerable.rb +250 -0
- data/vendor/extensions/hash.rb +23 -0
- data/vendor/extensions/io.rb +58 -0
- data/vendor/extensions/kernel.rb +42 -0
- data/vendor/extensions/module.rb +114 -0
- data/vendor/extensions/numeric.rb +230 -0
- data/vendor/extensions/object.rb +164 -0
- data/vendor/extensions/ostruct.rb +41 -0
- data/vendor/extensions/string.rb +316 -0
- data/vendor/extensions/symbol.rb +28 -0
- metadata +35 -13
- data/lib/glue/property.rb.old +0 -307
data/lib/og/connection.rb
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# (c) 2004 Navel, all rights reserved.
|
|
5
5
|
# $Id: connection.rb 167 2004-11-23 14:03:10Z gmosx $
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
class Og;
|
|
8
8
|
|
|
9
9
|
require "glue/property"
|
|
10
10
|
require "glue/array"
|
|
@@ -38,14 +38,14 @@ class Connection
|
|
|
38
38
|
@og = og
|
|
39
39
|
@db = @og.config[:backend].new(@og.config)
|
|
40
40
|
@deserialize = true
|
|
41
|
-
|
|
41
|
+
Logger.debug "Created DB connection." if $DBG
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
# Close the connection to the database
|
|
45
45
|
#
|
|
46
46
|
def close()
|
|
47
47
|
@db.close()
|
|
48
|
-
|
|
48
|
+
Logger.debug "Closed DB connection." if $DBG
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
# Save an object to the database. Insert if this is a new object or
|
|
@@ -252,14 +252,13 @@ class Connection
|
|
|
252
252
|
yield(@db)
|
|
253
253
|
@db.commit()
|
|
254
254
|
rescue => ex
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
255
|
+
Logger.error "DB Error: ERROR IN TRANSACTION"
|
|
256
|
+
Logger.error #{ex}
|
|
257
|
+
Logger.error #{ex.backtrace}
|
|
258
258
|
@db.rollback()
|
|
259
259
|
end
|
|
260
260
|
end
|
|
261
261
|
|
|
262
262
|
end
|
|
263
263
|
|
|
264
|
-
end
|
|
265
|
-
|
|
264
|
+
end
|
data/lib/og/enchant.rb
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# code:
|
|
2
|
+
# * George Moschovitis <gm@navel.gr>
|
|
3
|
+
#
|
|
4
|
+
# (c) 2004 Navel, all rights reserved.
|
|
5
|
+
# $Id: meta.rb 198 2004-12-22 11:26:59Z gmosx $
|
|
6
|
+
|
|
7
|
+
class Og
|
|
8
|
+
|
|
9
|
+
module Enchant
|
|
10
|
+
|
|
11
|
+
# Enchant a managed class. Add useful DB related methods to the
|
|
12
|
+
# class and its instances.
|
|
13
|
+
#
|
|
14
|
+
def enchant(klass)
|
|
15
|
+
klass.module_eval <<-"end_eval", __FILE__, __LINE__
|
|
16
|
+
def self.create(*params)
|
|
17
|
+
obj = #{klass}.new(*params)
|
|
18
|
+
obj.save!
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def self.save(obj)
|
|
22
|
+
Og.db << obj
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def self.load(oid_or_name)
|
|
26
|
+
Og.db.load(oid_or_name, #{klass})
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.[](oid_or_name)
|
|
30
|
+
Og.db.load(oid_or_name, #{klass})
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def self.load_all(extra_sql = nil)
|
|
34
|
+
Og.db.load_all(#{klass}, extra_sql)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def self.all(extra_sql = nil)
|
|
38
|
+
Og.db.load_all(#{klass}, extra_sql)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def self.count(sql = "SELECT COUNT(*) FROM #{klass::DBTABLE}")
|
|
42
|
+
Og.db.count(sql, #{klass})
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def self.select(sql)
|
|
46
|
+
Og.db.select(sql, #{klass})
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def self.select_one(sql)
|
|
50
|
+
Og.db.select_one(sql, #{klass})
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def self.one(sql)
|
|
54
|
+
Og.db.select_one(sql, #{klass})
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def self.delete(obj_or_oid)
|
|
58
|
+
Og.db.delete(obj_or_oid, #{klass})
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def save
|
|
62
|
+
Og.db << self
|
|
63
|
+
return self
|
|
64
|
+
end
|
|
65
|
+
alias_method :save!, :save
|
|
66
|
+
|
|
67
|
+
def update_properties(updatesql)
|
|
68
|
+
Og.db.pupdate(updatesql, self.oid, #{klass})
|
|
69
|
+
end
|
|
70
|
+
alias_method :pupdate!, :update_properties
|
|
71
|
+
|
|
72
|
+
def delete!
|
|
73
|
+
Og.db.delete(@oid, #{klass})
|
|
74
|
+
end
|
|
75
|
+
end_eval
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
end # namespace
|
data/lib/og/meta.rb
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
require 'og/backend'
|
|
8
8
|
require 'glue/inflector'
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
class Og
|
|
11
11
|
|
|
12
12
|
# = MetaUtils
|
|
13
13
|
#
|
|
@@ -66,7 +66,7 @@ module MetaLanguage
|
|
|
66
66
|
#{prop_eval}
|
|
67
67
|
|
|
68
68
|
def #{name}
|
|
69
|
-
|
|
69
|
+
Og.db.load_by_oid(@#{name}_oid, #{klass})
|
|
70
70
|
end
|
|
71
71
|
|
|
72
72
|
def #{name}=(obj_or_oid)
|
|
@@ -104,7 +104,7 @@ module MetaLanguage
|
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
def #{name}(extrasql = nil)
|
|
107
|
-
|
|
107
|
+
Og.db.select_one("SELECT * FROM #{Og::Backend.table(klass)} WHERE #{linkback}=\#\@oid \#\{extrasql\}", #{klass})
|
|
108
108
|
end
|
|
109
109
|
}
|
|
110
110
|
end
|
|
@@ -123,7 +123,7 @@ module MetaLanguage
|
|
|
123
123
|
# def children; ... end
|
|
124
124
|
#
|
|
125
125
|
def has_many(name, klass, options = {})
|
|
126
|
-
name_s =
|
|
126
|
+
name_s = N::Inflector.singularize(name.to_s)
|
|
127
127
|
|
|
128
128
|
# linkback is the property of the child object that 'links back'
|
|
129
129
|
# to this object.
|
|
@@ -140,11 +140,11 @@ module MetaLanguage
|
|
|
140
140
|
end
|
|
141
141
|
|
|
142
142
|
def #{name}(extrasql = nil)
|
|
143
|
-
|
|
143
|
+
Og.db.select("SELECT * FROM #{Og::Backend.table(klass)} WHERE #{linkback}=\#\@oid \#\{extrasql\}", #{klass})
|
|
144
144
|
end
|
|
145
145
|
|
|
146
146
|
def #{name}_count(extrasql = nil)
|
|
147
|
-
|
|
147
|
+
Og.db.count("SELECT COUNT(*) FROM #{Og::Backend.table(klass)} WHERE #{linkback}=\#\@oid \#\{extrasql\}")
|
|
148
148
|
end
|
|
149
149
|
|
|
150
150
|
def add_#{name_s}(obj, extra = nil)
|
|
@@ -179,9 +179,9 @@ module MetaLanguage
|
|
|
179
179
|
#++
|
|
180
180
|
def many_to_many(name, klass, options = {})
|
|
181
181
|
list_o = name.to_s
|
|
182
|
-
prop_o =
|
|
183
|
-
list_m = options[:linkback] ||
|
|
184
|
-
prop_m =
|
|
182
|
+
prop_o = N::Inflector.singularize(list_o)
|
|
183
|
+
list_m = options[:linkback] || N::Inflector.plural_name(self)
|
|
184
|
+
prop_m = N::Inflector.singularize(list_m)
|
|
185
185
|
|
|
186
186
|
# exit if the class is allready indirectly 'enchanted' from the
|
|
187
187
|
# other class of the many_to_many relation.
|
|
@@ -197,24 +197,24 @@ module MetaLanguage
|
|
|
197
197
|
|
|
198
198
|
module_eval %{
|
|
199
199
|
def #{list_o}(extrasql = nil)
|
|
200
|
-
|
|
200
|
+
Og.db.select("SELECT d.* FROM #{Og::Backend.table(klass)} AS d, #{Og::Backend.join_table(self, klass)} AS j WHERE j.key1=\#\@oid AND j.key2=d.oid \#\{extrasql\}", #{klass})
|
|
201
201
|
end
|
|
202
202
|
|
|
203
203
|
def #{list_o}_count(extrasql = nil)
|
|
204
|
-
|
|
204
|
+
Og.db.select("SELECT COUNT(*) FROM #{Og::Backend.table(klass)} AS d, #{Og::Backend.join_table(self, klass)} AS j WHERE j.key1=\#\@oid AND j.key2=d.oid \#\{extrasql\}", #{klass})
|
|
205
205
|
end
|
|
206
206
|
|
|
207
207
|
def add_#{prop_o}(obj, extra = nil)
|
|
208
|
-
|
|
208
|
+
Og.db.exec("INSERT INTO #{Og::Backend.join_table(self, klass)} (key1, key2) VALUES (\#\@oid, \#\{obj.oid\})")
|
|
209
209
|
end
|
|
210
210
|
|
|
211
211
|
def del_#{prop_o}(obj_or_oid, extra = nil)
|
|
212
|
-
|
|
212
|
+
Og.db.exec("DELETE FROM #{Og::Backend.join_table(self, klass)} WHERE key2=\#\{obj_or_oid.to_i\}")
|
|
213
213
|
end
|
|
214
214
|
alias_method :delete_#{prop_o}, :del_#{prop_o}
|
|
215
215
|
|
|
216
216
|
def clear_#{list_o}
|
|
217
|
-
|
|
217
|
+
Og.db.exec("DELETE FROM #{Og::Backend.join_table(self, klass)} WHERE key1=\#\@oid")
|
|
218
218
|
end
|
|
219
219
|
}
|
|
220
220
|
|
|
@@ -222,24 +222,24 @@ module MetaLanguage
|
|
|
222
222
|
|
|
223
223
|
klass.module_eval %{
|
|
224
224
|
def #{list_m}(extrasql = nil)
|
|
225
|
-
|
|
225
|
+
Og.db.select("SELECT s.* FROM #{Og::Backend.table(self)} AS s, #{Og::Backend.join_table(self, klass)} AS j WHERE j.key2=\#\@oid AND j.key1=s.oid \#\{extrasql\}", #{self})
|
|
226
226
|
end
|
|
227
227
|
|
|
228
228
|
def #{list_m}_count(extrasql = nil)
|
|
229
|
-
|
|
229
|
+
Og.db.select("SELECT COUNT(*) FROM #{Og::Backend.table(self)} AS s, #{Og::Backend.join_table(self, klass)} AS j WHERE j.key2=\#\@oid AND j.key1=s.oid \#\{extrasql\}", #{self})
|
|
230
230
|
end
|
|
231
231
|
|
|
232
232
|
def add_#{prop_m}(obj, extra = nil)
|
|
233
|
-
|
|
233
|
+
Og.db.exec("INSERT INTO #{Og::Backend.join_table(self, klass)} (key1, key2) VALUES (\#\{obj.oid\}, \#\@oid)")
|
|
234
234
|
end
|
|
235
235
|
|
|
236
236
|
def del_#{prop_m}(obj_or_oid, extra = nil)
|
|
237
|
-
|
|
237
|
+
Og.db.exec("DELETE FROM #{Og::Backend.join_table(self, klass)} WHERE key1=\#\{obj_or_oid.to_i\}")
|
|
238
238
|
end
|
|
239
239
|
alias_method :delete_#{prop_m}, :del_#{prop_m}
|
|
240
240
|
|
|
241
241
|
def clear_#{list_m}
|
|
242
|
-
|
|
242
|
+
Og.db.exec("DELETE FROM #{Og::Backend.join_table(self, klass)} WHERE key2=\#\@oid")
|
|
243
243
|
end
|
|
244
244
|
}
|
|
245
245
|
end
|
|
@@ -247,13 +247,13 @@ module MetaLanguage
|
|
|
247
247
|
|
|
248
248
|
end
|
|
249
249
|
|
|
250
|
-
end #
|
|
250
|
+
end # namespace
|
|
251
251
|
|
|
252
252
|
# Include the meta-language extensions into Module. If the flag is
|
|
253
253
|
# false the developer is responsible for including the MetaLanguage
|
|
254
254
|
# module where needed.
|
|
255
255
|
#
|
|
256
|
-
if
|
|
256
|
+
if Og.include_meta_language
|
|
257
257
|
class Module # :nodoc: all
|
|
258
258
|
include Og::MetaLanguage
|
|
259
259
|
end
|
data/lib/og/mock.rb
CHANGED
|
@@ -10,7 +10,7 @@ require 'og'
|
|
|
10
10
|
require 'rubygems'
|
|
11
11
|
require_gem 'flexmock'
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
class Og
|
|
14
14
|
|
|
15
15
|
# = MockDatabase
|
|
16
16
|
#
|
|
@@ -22,6 +22,7 @@ module Og
|
|
|
22
22
|
# to avoid code duplication.
|
|
23
23
|
#++
|
|
24
24
|
class MockDatabase < ::FlexMock
|
|
25
|
+
include Og::Enchant
|
|
25
26
|
|
|
26
27
|
# Managed class metadata
|
|
27
28
|
#
|
|
@@ -53,11 +54,11 @@ class MockDatabase < ::FlexMock
|
|
|
53
54
|
# Initialize FlexMock
|
|
54
55
|
super
|
|
55
56
|
|
|
56
|
-
@managed_classes =
|
|
57
|
+
@managed_classes = N::SafeHash.new
|
|
57
58
|
|
|
58
|
-
|
|
59
|
+
Logger.info "Using mock database."
|
|
59
60
|
|
|
60
|
-
if
|
|
61
|
+
if Og.auto_manage_classes
|
|
61
62
|
# automatically manage classes with properties and metadata.
|
|
62
63
|
# gmosx: Any idea how to optimize this?
|
|
63
64
|
classes_to_manage = []
|
|
@@ -66,10 +67,13 @@ class MockDatabase < ::FlexMock
|
|
|
66
67
|
classes_to_manage << c
|
|
67
68
|
end
|
|
68
69
|
end
|
|
69
|
-
|
|
70
|
-
|
|
70
|
+
Logger.info "Og auto manages the following classes:"
|
|
71
|
+
Logger.info "#{classes_to_manage.inspect}"
|
|
71
72
|
manage_classes(*classes_to_manage)
|
|
72
73
|
end
|
|
74
|
+
|
|
75
|
+
# use the newly created database.
|
|
76
|
+
Og.use(self)
|
|
73
77
|
end
|
|
74
78
|
|
|
75
79
|
# Shutdown the database interface.
|
|
@@ -78,6 +82,20 @@ class MockDatabase < ::FlexMock
|
|
|
78
82
|
end
|
|
79
83
|
alias_method :close, :shutdown
|
|
80
84
|
|
|
85
|
+
# Get a connection from the pool to access the database.
|
|
86
|
+
# Stores the connection in a thread-local variable.
|
|
87
|
+
#
|
|
88
|
+
def get_connection
|
|
89
|
+
# nop
|
|
90
|
+
end
|
|
91
|
+
alias_method :connection, :get_connection
|
|
92
|
+
|
|
93
|
+
# Restore an unused connection to the pool.
|
|
94
|
+
#
|
|
95
|
+
def put_connection
|
|
96
|
+
# nop
|
|
97
|
+
end
|
|
98
|
+
|
|
81
99
|
# Register a standard Ruby class as managed.
|
|
82
100
|
#
|
|
83
101
|
def manage(klass)
|
|
@@ -89,7 +107,7 @@ class MockDatabase < ::FlexMock
|
|
|
89
107
|
convert(klass)
|
|
90
108
|
|
|
91
109
|
# Add helper methods to the class.
|
|
92
|
-
enchant(klass) if
|
|
110
|
+
enchant(klass) if Og.enchant_managed_classes
|
|
93
111
|
end
|
|
94
112
|
|
|
95
113
|
# Helper method to set multiple managed classes.
|
|
@@ -116,72 +134,14 @@ class MockDatabase < ::FlexMock
|
|
|
116
134
|
#
|
|
117
135
|
def convert(klass)
|
|
118
136
|
klass.class_eval %{
|
|
119
|
-
DBTABLE = "#{Og::
|
|
120
|
-
DBSEQ = "#{Og::
|
|
137
|
+
DBTABLE = "#{Og::Backend.table(klass)}"
|
|
138
|
+
DBSEQ = "#{Og::Backend.table(klass)}_oids_seq"
|
|
121
139
|
|
|
122
140
|
def to_i()
|
|
123
141
|
@oid
|
|
124
142
|
end
|
|
125
143
|
}
|
|
126
144
|
end
|
|
127
|
-
|
|
128
|
-
# Enchant a managed class. Add useful DB related methods to the
|
|
129
|
-
# class and its instances.
|
|
130
|
-
#
|
|
131
|
-
def enchant(klass)
|
|
132
|
-
klass.class_eval %{
|
|
133
|
-
def self.save(obj)
|
|
134
|
-
$og << obj
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
def self.load(oid_or_name)
|
|
138
|
-
$og.load(oid_or_name, #{klass})
|
|
139
|
-
end
|
|
140
|
-
|
|
141
|
-
def self.[](oid_or_name)
|
|
142
|
-
$og.load(oid_or_name, #{klass})
|
|
143
|
-
end
|
|
144
|
-
|
|
145
|
-
def self.load_all(extra_sql = nil)
|
|
146
|
-
$og.load_all(#{klass}, extra_sql)
|
|
147
|
-
end
|
|
148
|
-
|
|
149
|
-
def self.all(extra_sql = nil)
|
|
150
|
-
$og.load_all(#{klass}, extra_sql)
|
|
151
|
-
end
|
|
152
|
-
|
|
153
|
-
def self.count(sql = "SELECT COUNT(*) FROM #{klass::DBTABLE}")
|
|
154
|
-
$og.count(sql, #{klass})
|
|
155
|
-
end
|
|
156
|
-
|
|
157
|
-
def self.select(sql)
|
|
158
|
-
$og.select(sql, #{klass})
|
|
159
|
-
end
|
|
160
|
-
|
|
161
|
-
def self.select_one(sql)
|
|
162
|
-
$og.select_one(sql, #{klass})
|
|
163
|
-
end
|
|
164
|
-
|
|
165
|
-
def self.delete(obj_or_oid)
|
|
166
|
-
$og.delete(obj_or_oid, #{klass})
|
|
167
|
-
end
|
|
168
|
-
|
|
169
|
-
def save
|
|
170
|
-
$og << self
|
|
171
|
-
return self
|
|
172
|
-
end
|
|
173
|
-
alias_method :save!, :save
|
|
174
|
-
|
|
175
|
-
def update_properties(updatesql)
|
|
176
|
-
$og.pupdate(updatesql, self.oid, #{klass})
|
|
177
|
-
end
|
|
178
|
-
alias_method :pupdate!, :update_properties
|
|
179
|
-
|
|
180
|
-
def delete!
|
|
181
|
-
$og.delete(@oid, #{klass})
|
|
182
|
-
end
|
|
183
|
-
}
|
|
184
|
-
end
|
|
185
145
|
|
|
186
146
|
# Automatically wrap connection methods.
|
|
187
147
|
#
|
|
@@ -193,31 +153,14 @@ class MockDatabase < ::FlexMock
|
|
|
193
153
|
end
|
|
194
154
|
}
|
|
195
155
|
end
|
|
196
|
-
|
|
197
|
-
wrap_method :create_table, "klass"
|
|
198
|
-
wrap_method :drop_table, "klass"
|
|
199
|
-
wrap_method :save, "obj"; alias_method :<<, :save; alias_method :put, :save
|
|
200
|
-
wrap_method :insert, "obj"
|
|
201
|
-
wrap_method :update, "obj"
|
|
202
|
-
wrap_method :update_properties, "update_sql, obj_or_oid, klass = nil"
|
|
203
|
-
wrap_method :pupdate, "update_sql, obj_or_oid, klass = nil"
|
|
204
|
-
wrap_method :load, "oid, klass"; alias_method :get, :load
|
|
205
|
-
wrap_method :load_by_oid, "oid, klass"
|
|
206
|
-
wrap_method :load_by_name, "name, klass"
|
|
207
|
-
wrap_method :load_all, "klass, extrasql = nil"
|
|
208
|
-
wrap_method :select, "sql, klass"
|
|
209
|
-
wrap_method :select_one, "sql, klass"
|
|
210
|
-
wrap_method :count, "sql, klass = nil"
|
|
211
|
-
wrap_method :delete, "obj_or_oid, klass = nil"
|
|
212
|
-
wrap_method :query, "sql"
|
|
213
|
-
wrap_method :exec, "sql"
|
|
214
|
-
=end
|
|
156
|
+
|
|
215
157
|
def self.create_db!(config)
|
|
158
|
+
# nop
|
|
216
159
|
end
|
|
217
160
|
|
|
218
161
|
def self.drop_db!(config)
|
|
162
|
+
# nop
|
|
219
163
|
end
|
|
220
164
|
end
|
|
221
165
|
|
|
222
|
-
end #
|
|
223
|
-
|
|
166
|
+
end # namespace
|
data/lib/og/version.rb
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
# (c) 2004 Navel, all rights reserved.
|
|
1
|
+
#--
|
|
2
|
+
# George Moschovitis <gm@navel.gr>
|
|
3
|
+
# (c) 2004-2005 Navel, all rights reserved.
|
|
5
4
|
# $Id: version.rb 198 2004-12-22 11:26:59Z gmosx $
|
|
5
|
+
#++
|
|
6
6
|
|
|
7
7
|
# The version of Og.
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
$og_version = '0.8.0'
|