class Pup::Model
Attributes
fields[R]
table_name[R]
Public Class Methods
columns_array()
click to toggle source
# File lib/pup/model/model.rb, line 93 def columns_array @columns_array ||= fields.keys end
create_table()
click to toggle source
# File lib/pup/model/model.rb, line 87 def create_table query = "CREATE TABLE IF NOT EXISTS #{@table_name}"\ "(#{fields_builder(@fields)})" DB.execute(query) end
new()
click to toggle source
# File lib/pup/model/model.rb, line 12 def initialize end
property(field_name, options = {})
click to toggle source
# File lib/pup/model/model.rb, line 82 def property(field_name, options = {}) @fields[field_name] = options attr_accessor field_name end
to_table(table_name)
click to toggle source
# File lib/pup/model/model.rb, line 76 def to_table(table_name) @table_name = table_name.to_s @fields = {} property :id, type: :integer, primary_key: true end
Public Instance Methods
destroy()
click to toggle source
# File lib/pup/model/model.rb, line 40 def destroy DB.execute("DELETE FROM #{self.class.table_name} WHERE id= ?", id) end
save()
click to toggle source
# File lib/pup/model/model.rb, line 15 def save if id query = "UPDATE #{self.class.table_name} "\ "SET #{update_field_set} "\ "WHERE id = ?" DB.execute(query, table_values, id) else query = "INSERT INTO #{self.class.table_name} "\ "(#{table_fields}) "\ "VALUES(#{values_placeholders})" DB.execute(query, table_values) self.id = DB.execute("SELECT last_insert_rowid()") end self.class.find(id) end
update(parameters)
click to toggle source
# File lib/pup/model/model.rb, line 32 def update(parameters) parameters.each do |key, value| send("#{key}=", value) end save end
Private Instance Methods
columns_except_id()
click to toggle source
# File lib/pup/model/model.rb, line 48 def columns_except_id self.class.columns_array.without_id.with_value(self) end
table_fields()
click to toggle source
# File lib/pup/model/model.rb, line 44 def table_fields columns_except_id.join(", ") end
table_values()
click to toggle source
# File lib/pup/model/model.rb, line 57 def table_values values = [] columns_except_id.each do |field| values << send(field) end values end
update_field_set()
click to toggle source
# File lib/pup/model/model.rb, line 65 def update_field_set values = [] columns_except_id.each do |field| values << "#{field} = ? " end values.join(", ") end
values_placeholders()
click to toggle source
# File lib/pup/model/model.rb, line 52 def values_placeholders count = columns_except_id.count (["?"] * count).join(", ") end