Commit 47f21b6
Changed files (4)
lib
lib/humble/configuration.rb
@@ -0,0 +1,24 @@
+module Humble
+ class Configuration
+ attr_reader :connection_string
+
+ def initialize(connection_string)
+ @mappings = []
+ @connection_string = connection_string
+ end
+
+ def add(mapping)
+ @mappings.push(mapping)
+ end
+
+ def build_session_factory
+ SessionFactory.new(self)
+ end
+
+ def mapping_for(item)
+ @mappings.find do |mapping|
+ mapping.is_for?(item)
+ end
+ end
+ end
+end
lib/humble/session.rb
@@ -0,0 +1,34 @@
+module Humble
+ class Session
+ def initialize(connection_factory, mapper_registry)
+ @connection_factory = connection_factory
+ @mapper_registry = mapper_registry
+ end
+
+ def begin_transaction(&block)
+ create_connection.transaction do
+ block.call(self)
+ end
+ end
+
+ def save(item)
+ mapping_for(item).save_using(create_connection, item)
+ end
+
+ def find_all(clazz)
+ mapping_for(clazz).find_all_using(create_connection, clazz)
+ end
+
+ private
+
+ attr_reader :connection_factory, :mapper_registry
+
+ def create_connection
+ @connection ||= connection_factory.create_connection
+ end
+
+ def mapping_for(item)
+ mapper_registry.mapping_for(item)
+ end
+ end
+end
lib/humble/session_factory.rb
@@ -0,0 +1,15 @@
+module Humble
+ class SessionFactory
+ def initialize(configuration)
+ @configuration = configuration
+ end
+
+ def create_session
+ Session.new(self, @configuration)
+ end
+
+ def create_connection
+ Sequel.connect(@configuration.connection_string)
+ end
+ end
+end
lib/humble.rb
@@ -1,75 +1,8 @@
require "humble/version"
+require "humble/session_factory"
+require "humble/session"
+require "humble/configuration"
module Humble
- class Configuration
- attr_reader :connection_string
-
- def initialize(connection_string)
- @mappings = []
- @connection_string = connection_string
- end
-
- def add(mapping)
- @mappings.push(mapping)
- end
-
- def build_session_factory
- SessionFactory.new(self)
- end
-
- def mapping_for(item)
- @mappings.find do |mapping|
- mapping.is_for?(item)
- end
- end
- end
-
- class SessionFactory
- def initialize(configuration)
- @configuration = configuration
- end
-
- def create_session
- Session.new(self, @configuration)
- end
-
- def create_connection
- Sequel.connect(@configuration.connection_string)
- end
- end
-
- class Session
- def initialize(connection_factory, mapper_registry)
- @connection_factory = connection_factory
- @mapper_registry = mapper_registry
- end
-
- def begin_transaction(&block)
- create_connection.transaction do
- block.call(self)
- end
- end
-
- def save(item)
- mapping_for(item).save_using(create_connection, item)
- end
-
- def find_all(clazz)
- mapping_for(clazz).find_all_using(create_connection, clazz)
- end
-
- private
-
- attr_reader :connection_factory, :mapper_registry
-
- def create_connection
- @connection ||= connection_factory.create_connection
- end
-
- def mapping_for(item)
- mapper_registry.mapping_for(item)
- end
- end
-
end