26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/jun/active_record/persistence.rb', line 26
def save
if new_record?
result = self.class.connection.execute(
" INSERT INTO \#{self.class.table_name}\n (\#{@attributes.keys.join(\",\")})\n VALUES (\#{@attributes.values.map { |v| \"'\#{v}'\" }.join(\",\")})\n RETURNING *;\n SQL\n )\n\n @attributes[self.class.primary_key] = result.first[self.class.primary_key]\n @new_record = false\n else\n self.class.connection.execute(\n <<~SQL\n UPDATE \#{self.class.table_name}\n SET \#{@attributes.map { |k, v| \"\#{k} = \#{v.nil? ? 'NULL' : \"'\#{v}'\"}\" }.join(\",\")}\n WHERE id = \#{id};\n SQL\n )\n end\n\n true\nend\n"
|