summaryrefslogtreecommitdiff
path: root/lib/humble/mapping_configuration.rb
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2014-07-12 13:47:30 -0600
committermo khan <mo@mokhan.ca>2014-07-12 13:47:30 -0600
commit9d11dbbb3053811be6fd54407e08b5119c9756b3 (patch)
treedd216287acb0eb63f396b0ad757082a09fb107ff /lib/humble/mapping_configuration.rb
parent8d4e52f369a1571b5745f83d028a2d3b3c7ec268 (diff)
load a has_many relationship.
Diffstat (limited to 'lib/humble/mapping_configuration.rb')
-rw-r--r--lib/humble/mapping_configuration.rb14
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/humble/mapping_configuration.rb b/lib/humble/mapping_configuration.rb
index 3b57f04..f70c97b 100644
--- a/lib/humble/mapping_configuration.rb
+++ b/lib/humble/mapping_configuration.rb
@@ -12,8 +12,8 @@ module Humble
def save_using(session, entity)
connection = session.create_connection[@table.name]
if primary_key.has_default_value?(entity)
- result = connection.insert(@table.prepare_statement_for(entity))
- primary_key.apply(result, entity, session)
+ connection.insert(@table.prepare_statement_for(entity))
+ primary_key.apply(connection, entity, session)
else
connection.update(@table.prepare_statement_for(entity))
end
@@ -40,17 +40,19 @@ module Humble
end
class DefaultMapper
+ attr_reader :session, :table
+
def initialize(table, session)
@table = table
@session = session
end
def map_from(row)
- @table.type.new.tap do |entity|
- row.each do |key, value|
- @table.column_for(key).apply(value, entity, @session)
- end
+ entity = table.type.new
+ table.each do |column|
+ column.apply(row, entity, session)
end
+ entity
end
end
end