lore 0.4.6 → 0.4.7

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/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