Module: ActiveRecord::Persistence
- Included in:
- Base
- Defined in:
- lib/jun/active_record/persistence.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(klass) ⇒ Object
5 6 7 |
# File 'lib/jun/active_record/persistence.rb', line 5 def self.included(klass) klass.extend(ClassMethods) end |
Instance Method Details
#new_record? ⇒ Boolean
52 53 54 |
# File 'lib/jun/active_record/persistence.rb', line 52 def new_record? @new_record end |
#persisted? ⇒ Boolean
56 57 58 |
# File 'lib/jun/active_record/persistence.rb', line 56 def persisted? !new_record? end |
#save ⇒ Object
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" |