Override raw SQL for ActiveRecord insert/delete Fixtures
Methods
Public Instance methods
Override raw SQL
[ show source ]
# File kirbybase_adapter.rb, line 1182
1182: def delete_existing_fixtures
1183: begin
1184: tbl = @connection.db.get_table(@table_name.to_sym)
1185: tbl.clear
1186: @connection.db.engine.reset_recno_ctr(tbl)
1187: rescue => detail
1188: STDERR.puts detail, @table_name
1189: end
1190: end
Override raw SQL
[ show source ]
# File kirbybase_adapter.rb, line 1193
1193: def insert_fixtures
1194: tbl = @connection.db.get_table(@table_name.to_sym)
1195: column_types = Hash[*tbl.field_names.zip(tbl.field_types).flatten]
1196: items = begin
1197: values.sort_by { |fix| fix['id'] }
1198: rescue
1199: values
1200: end
1201: items.each do |fixture|
1202: insert_data = fixture.to_hash.symbolize_keys.inject({}) do |data, (col, val)|
1203: data[col] = case column_types[col]
1204: when :String then val.to_s
1205: when :Integer then val.to_i rescue (val ? 1 : 0)
1206: when :Float then val.to_f
1207: when :Time then Time.parse val.to_s
1208: when :Date then Date.parse val.to_s
1209: when :DateTime then DateTime.parse(val.asctime)
1210: else val # ignore Memo, Blob and YAML for the moment
1211: end
1212: data
1213: end
1214: insert_data.delete(:id)
1215: recno = tbl.insert(insert_data)
1216: fixture.recno = recno
1217: end
1218: end