Commit 2a9a3ff
Changed files (3)
lib/humble/database_table.rb
@@ -18,15 +18,12 @@ module Humble
@columns << Column.new(:name => name)
end
- def insert(item)
- prepare_statement do |column|
- column.prepare_insert(item)
- end
- end
-
- def update(item)
- prepare_statement do |column|
- column.prepare_update(item)
+ def persist(connection, item)
+ if has_default_value?(item)
+ id = connection[@name].insert(insert(item))
+ item.instance_variable_set('@id', id)
+ else
+ connection[@name].update(update(item))
end
end
@@ -45,5 +42,18 @@ module Humble
result.merge(yield(column))
end
end
+
+ def insert(item)
+ prepare_statement do |column|
+ column.prepare_insert(item)
+ end
+ end
+
+ def update(item)
+ prepare_statement do |column|
+ column.prepare_update(item)
+ end
+ end
+
end
end
lib/humble/mapping_configuration.rb
@@ -10,12 +10,7 @@ module Humble
end
def save_using(connection, item)
- if @table.has_default_value?(item)
- id = connection[@table.name].insert(@table.insert(item))
- item.instance_variable_set('@id', id)
- else
- connection[@table.name].update(@table.update(item))
- end
+ @table.persist(connection, item)
end
def is_for?(item)
Gemfile.lock
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
- humble (0.0.1374363495)
+ humble (0.0.1374363716)
sequel
GEM