lore 0.4.6 → 0.4.7

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ === 0.4.7 / 2008-12-29
2
+
3
+ * Extended configuration (especially logging).
4
+ * Several minor bug fixes and convenience changes.
5
+
1
6
  === 0.4.2 / 2008-11-10
2
7
 
3
8
  * Major performance increase due to
data/custom_models.rb CHANGED
@@ -91,3 +91,63 @@ module App
91
91
  end
92
92
  end
93
93
 
94
+ module Some
95
+ module App
96
+
97
+ class New_Model < Lore::Model
98
+ table :new_model, :public
99
+ primary_key :model_id, :model_id_seq
100
+ has_attribute :name, Lore::Type.integer
101
+ has_attribute :created, Lore::Type.timestamp
102
+ has_attribute :model_id, Lore::Type.integer
103
+
104
+
105
+ end
106
+ end
107
+ end
108
+
109
+ module Some
110
+ module App
111
+
112
+ class New_Model < Lore::Model
113
+ table :new_model, :public
114
+ primary_key :model_id, :model_id_seq
115
+ has_attribute :name, Lore::Type.integer
116
+ has_attribute :created, Lore::Type.timestamp
117
+ has_attribute :model_id, Lore::Type.integer
118
+
119
+
120
+ end
121
+ end
122
+ end
123
+
124
+ module Some
125
+ module App
126
+
127
+ class New_Model < Lore::Model
128
+ table :new_model, :public
129
+ primary_key :model_id, :model_id_seq
130
+ has_attribute :name, Lore::Type.integer
131
+ has_attribute :created, Lore::Type.timestamp
132
+ has_attribute :model_id, Lore::Type.integer
133
+
134
+
135
+ end
136
+ end
137
+ end
138
+
139
+ module Some
140
+ module App
141
+
142
+ class New_Model < Lore::Model
143
+ table :new_model, :public
144
+ primary_key :model_id, :model_id_seq
145
+ has_attribute :name, Lore::Type.integer
146
+ has_attribute :created, Lore::Type.timestamp
147
+ has_attribute :model_id, Lore::Type.integer
148
+
149
+
150
+ end
151
+ end
152
+ end
153
+
@@ -29,7 +29,7 @@ class Context
29
29
  end
30
30
 
31
31
  def self.enter(context_name)
32
- @@logger.debug('Entering context ' + context_name.to_s)
32
+ Lore.log { 'Entering context ' + context_name.to_s }
33
33
  @@context_stack.push(context_name)
34
34
  end
35
35
 
@@ -128,9 +128,6 @@ class Connection # :nodoc
128
128
  # Log database query on low level:
129
129
 
130
130
  if Lore.log_queries? then
131
- query = query.gsub('WHERE', "\nWHERE").gsub('FROM', "\n}}} \nFROM").gsub('JOIN', "\nJOIN")
132
- query = query.gsub('SELECT', "\nSELECT \n{{{").gsub("\n\n","\n")
133
- query = query.gsub('SET', "SET\n").gsub(' , ', ", \n")
134
131
  query.split("\n").each { |line|
135
132
  @@logger.debug { line }
136
133
  }
@@ -49,7 +49,7 @@ module Exception
49
49
 
50
50
  def inspect()
51
51
  'Model('+@invalid_klass.to_s+') => '+
52
- @invalid_parameters.inspect+
52
+ @invalid_parameters.serialize +
53
53
  ' Explicit: '+
54
54
  @invalid_klass.get_explicit_attributes.inspect
55
55
  end
@@ -19,7 +19,6 @@ module Exception
19
19
  }
20
20
  result
21
21
  end
22
- alias serialize inspect
23
22
 
24
23
  end
25
24
 
@@ -33,7 +33,7 @@ module Table_Deleter # :nodoc:
33
33
  end
34
34
  field_counter += 1
35
35
  }
36
- query_string += ';'
36
+ query_string += '; '
37
37
 
38
38
  query_string
39
39
 
@@ -62,24 +62,23 @@ module Table_Deleter # :nodoc:
62
62
 
63
63
  def self.delete_query(table_name, is_a_hierarchy, primary_keys, value_keys, query_string='')
64
64
 
65
- is_a_hierarchy.each_pair { |table, base_tables|
66
-
67
- # pass base tables first, recursively, as IS_A-based creation has
68
- # to be done bottom-up:
69
- query_string += delete_query(table,
70
- base_tables,
71
-
72
- primary_keys,
73
- value_keys,
74
-
75
- query_string
76
- ).to_s
77
- }
78
- # finally, add query string for this table:
79
65
  query_string += atomic_delete_query(table_name,
80
66
  primary_keys[table_name],
81
67
  value_keys[table_name]
82
68
  ).to_s
69
+ is_a_hierarchy.each_pair { |table, base_tables|
70
+
71
+ # pass base tables afterwards, recursively, as IS_A-based deletion has
72
+ # to be done top-down (derived tabled first):
73
+ query_string = delete_query(table,
74
+ base_tables,
75
+
76
+ primary_keys,
77
+ value_keys,
78
+
79
+ query_string
80
+ ).to_s
81
+ }
83
82
 
84
83
  query_string
85
84
 
@@ -113,7 +113,7 @@ module Table_Instance
113
113
  def marshal_load(dump)
114
114
  klass = eval(dump[:klass])
115
115
  dump[:joined].map { |m| m = eval(m) }
116
- return initialize(dump[:values], dump[:fields], dump[:joined], :cached)
116
+ return initialize(dump[:values], dump[:joined], :cached)
117
117
  end
118
118
 
119
119
  # Whether this instance has been loaded from
@@ -378,6 +378,10 @@ module Table_Instance
378
378
  table_accessor.after_instance_delete(self)
379
379
 
380
380
  end # def
381
+
382
+ def inspect
383
+ get_attribute_values.inspect
384
+ end # def
381
385
 
382
386
  end # module
383
387
 
@@ -192,7 +192,7 @@ protected
192
192
  accessor,
193
193
  &block)
194
194
 
195
- @@logger.debug { 'Select on ' << accessor.to_s }
195
+ Lore.log { 'Select on ' << accessor.to_s }
196
196
 
197
197
  result = Array.new
198
198
  if Lore.cache_enabled? && accessor.entity_cache && accessor.entity_cache.include?(accessor, query_string) then
data/lib/lore.rb CHANGED
@@ -3,9 +3,17 @@ require('logger')
3
3
 
4
4
  module Lore
5
5
 
6
- VERSION='0.4.6'
6
+ VERSION='0.4.7'
7
+
8
+ @logfile = STDERR
9
+ @log_queries = false
10
+ @logging_enabled = false
11
+ @cache_entities = false
12
+ @pg_server = 'localhost'
13
+ @pg_port = 5432
14
+ @logins = { }
15
+
7
16
 
8
- @logfile = '/var/log/lore/query.log'
9
17
  def self.logfile
10
18
  @logfile
11
19
  end
@@ -23,17 +31,25 @@ module Lore
23
31
  end
24
32
 
25
33
  def self.log_queries?
26
- true
34
+ @log_queries && @logging_enabled
35
+ end
36
+
37
+ def self.disable_logging
38
+ @logging_enabled = false
39
+ end
40
+ def self.enable_logging
41
+ @logging_enabled = true
42
+ end
43
+ def self.enable_query_log
44
+ @log_queries = true
45
+ end
46
+ def self.disable_query_log
47
+ @log_queries = false
27
48
  end
28
49
  def self.logging_disabled?
29
- false
50
+ !@logging_enabled
30
51
  end
31
52
 
32
- @cache_entities = false
33
-
34
- @logins = {
35
- }
36
-
37
53
  def self.set_login_data(login_hash)
38
54
  @logins = login_hash
39
55
  end
@@ -45,9 +61,6 @@ module Lore
45
61
  File.expand_path(File.dirname(__FILE__)) + '/'
46
62
  end
47
63
 
48
- @pg_server = 'localhost'
49
- @pg_port = 5432
50
-
51
64
  def self.pg_server
52
65
  @pg_server
53
66
  end
data/lore.gemspec CHANGED
@@ -16,7 +16,7 @@ spec = Gem::Specification.new { |s|
16
16
  high coverage of native SQL functions and features.
17
17
  Lore is currently using PostgreSQL as database backend.
18
18
  EOF
19
- s.version = '0.4.6'
19
+ s.version = '0.4.7'
20
20
  s.author = 'Tobias Fuchs'
21
21
  s.email = 'fuchs@atomnode.net'
22
22
  s.date = Time.now