CITIEsForRAILS 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{CITIEsForRAILS}
5
- s.version = "0.0.5"
5
+ s.version = "0.0.6"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Laurent Buffat & Pierre-Emmanuel JOUVE"]
9
- s.date = %q{2011-04-20}
9
+ s.date = %q{2011-05-18}
10
10
  s.description = %q{CITIEsForRAILS (Class Inheritance & Table Inheritance Embeddings For RAILS) is a solution that extends Single/Multiple/Class Table Inheritance. This solution is based on classical Ruby class inheritance, single table inheritance as well as DB views.
11
11
 
12
12
 
data/Rakefile CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
  require 'rake'
3
3
  require 'echoe'
4
4
 
5
- Echoe.new('CITIEsForRAILS', '0.0.5') do |p|
5
+ Echoe.new('CITIEsForRAILS', '0.0.6') do |p|
6
6
  p.description = "CITIEsForRAILS (Class Inheritance & Table Inheritance Embeddings For RAILS) is a solution that extends Single/Multiple/Class Table Inheritance. This solution is based on classical Ruby class inheritance, single table inheritance as well as DB views.
7
7
 
8
8
 
@@ -145,7 +145,7 @@ module Cities
145
145
 
146
146
  module InstanceMethods1
147
147
 
148
- def save
148
+ def save #this gonna be used for the lowest level of hierarchy
149
149
 
150
150
 
151
151
  attributes_for_super = self.attributes.select{|key,value| self.class.superclass.column_names.include?(key) } #get the attributes of the class of the instance that also belong to its superclass
@@ -153,6 +153,7 @@ module Cities
153
153
  # these pieces of information should be stored in the table associated to the class of the instance
154
154
  herited = self.class.superclass.new(attributes_for_super) #create a new instance of the superclass of the considered instance (self)
155
155
  if(!new_record?)
156
+ puts "S1"
156
157
  herited.swap_new_record
157
158
  herited.id = self.id
158
159
  end
@@ -173,6 +174,7 @@ module Cities
173
174
  part_of.id = herited.id
174
175
 
175
176
  if(!new_record?)
177
+ puts "S2"
176
178
  part_of.swap_new_record
177
179
  end
178
180
 
@@ -184,7 +186,11 @@ module Cities
184
186
 
185
187
 
186
188
  self.id = herited.id
187
-
189
+
190
+ if(new_record?)
191
+ herited.swap_new_record;#this is very important for multi saving without reloading, if it was not there it would imply several savings in DB....
192
+ end
193
+
188
194
  sql = "UPDATE #{self.class.mother_class.table_name} SET #{self.class.inheritance_column} = '#{self.class.to_s}' WHERE id = #{self.id}"
189
195
  if RAILS_ENV == 'development'
190
196
  puts "SQL : #{sql}"
@@ -195,7 +201,7 @@ module Cities
195
201
 
196
202
 
197
203
 
198
- def saveBis
204
+ def saveBis #this gonna be used for the intermediate level of hierarchy
199
205
 
200
206
 
201
207
  attributes_for_super = self.attributes.select{|key,value| self.class.superclass.column_names.include?(key) } #get the attributes of the class of the instance that also belong to its superclass
@@ -203,6 +209,7 @@ module Cities
203
209
  # these pieces of information should be stored in the table associated to the class of the instance
204
210
  herited = self.class.superclass.new(attributes_for_super) #create a new instance of the superclass of the considered instance (self)
205
211
  if(!new_record?)
212
+ puts "S3"
206
213
  herited.swap_new_record
207
214
  herited.id = self.id
208
215
  end
@@ -224,6 +231,7 @@ module Cities
224
231
  part_of.id = herited.id
225
232
 
226
233
  if(!new_record?)
234
+ puts "S4"
227
235
  part_of.swap_new_record
228
236
  end
229
237
 
@@ -273,9 +281,10 @@ module Cities
273
281
  def updatetype
274
282
  sql = "UPDATE #{self.class.mother_class.table_name} SET #{self.class.inheritance_column} = '#{self.class.to_s}' WHERE id = #{self.id}"
275
283
  self.connection.execute(sql)
276
- puts"#{sql}"
284
+ puts"#{sql}"
277
285
  end
278
-
286
+
287
+
279
288
  def destroy
280
289
  super
281
290
  if self.class.respond_to?('has_a_part_of?')
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 5
9
- version: 0.0.5
8
+ - 6
9
+ version: 0.0.6
10
10
  platform: ruby
11
11
  authors:
12
12
  - Laurent Buffat & Pierre-Emmanuel JOUVE
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-04-20 00:00:00 +02:00
17
+ date: 2011-05-18 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies: []
20
20