blob: 936aa392a4299b7d35a85599d5d66ad4c481c38e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
module Humble
class Session
def initialize(session_factory, configuration)
@session_factory = session_factory
@configuration = configuration
end
def begin_transaction(&block)
create_connection.transaction do
block.call(self)
end
end
def save(entity)
mapping_for(entity).save_using(self, entity)
end
def find(clazz, id)
find_all(clazz).find do |x|
x.id == id
end
end
def find_all(clazz)
mapping_for(clazz).find_all_using(self)
end
def delete(entity)
mapping_for(entity).delete_using(self, entity)
end
def dispose
@connection.disconnect if @connection
@connection = nil
end
def create_connection
@connection ||= @session_factory.create_connection
end
private
def mapping_for(entity)
@configuration.mapping_for(entity)
end
end
end
|