Commit a791339
Changed files (7)
lib/del/connection.rb
@@ -2,10 +2,10 @@ module Del
class Connection
attr_reader :configuration, :rooms, :users
- def initialize(configuration:, users:, rooms:)
+ def initialize(configuration:)
@configuration = configuration
- @rooms = rooms
- @users = users
+ @rooms = configuration[:rooms]
+ @users = configuration[:users]
end
def connect(robot)
@@ -18,7 +18,7 @@ module Del
client.auth(configuration[:password])
roster = Jabber::Roster::Helper.new(client, false)
roster.add_update_callback do |old_item, item|
- users.create(item) if item
+ users.upsert(item) if item
end
roster.get_roster
roster.wait_for_roster
lib/del/repository.rb
@@ -0,0 +1,12 @@
+module Del
+ class Repository
+ def initialize(storage = Set.new)
+ @storage = storage
+ end
+
+ def upsert(item)
+ Del.logger.debug(item)
+ @storage << item
+ end
+ end
+end
lib/del/robot.rb
@@ -1,14 +1,13 @@
module Del
class Robot
attr_reader :connection, :router
+ attr_reader :users, :rooms
def initialize(configuration:)
- @connection = Connection.new(
- configuration: configuration,
- users: users,
- rooms: rooms,
- )
+ @connection = Connection.new(configuration: configuration)
@router = configuration[:router]
+ @users = configuration[:users]
+ @rooms = configuration[:rooms]
end
def get_funky!
@@ -25,15 +24,5 @@ module Del
def send_message(jid, message)
connection.deliver(jid, message)
end
-
- private
-
- def users
- @users ||= UserRepository.new
- end
-
- def rooms
- @rooms ||= RoomRepository.new
- end
end
end
lib/del/room_repository.rb
@@ -1,11 +0,0 @@
-module Del
- class RoomRepository
- def initialize
- @rooms = Set.new
- end
-
- def upsert(room)
- @rooms << room
- end
- end
-end
lib/del/user.rb
@@ -1,7 +0,0 @@
-module Del
- class User
- def initialize(attributes)
- @attributes = attributes
- end
- end
-end
lib/del/user_repository.rb
@@ -1,11 +0,0 @@
-module Del
- class UserRepository
- def initialize
- @users = Set.new
- end
-
- def create(item)
- @users << User.new(item.attributes)
- end
- end
-end
lib/del.rb
@@ -8,9 +8,7 @@ require "xmpp4r/roster/helper/roster"
require "del/connection"
require "del/default_router"
require "del/robot"
-require "del/room_repository"
-require "del/user"
-require "del/user_repository"
+require "del/repository"
require "del/version"
module Del
@@ -30,10 +28,12 @@ module Del
@configuration ||= {
host: ENV.fetch("DEL_HOST"),
jid: ENV.fetch("DEL_JID"),
+ logger: Logger.new(STDOUT),
muc_domain: ENV.fetch("DEL_MUC_DOMAIN"),
password: ENV.fetch("DEL_PASSWORD"),
+ rooms: Repository.new,
router: DefaultRouter.new,
- logger: Logger.new(STDOUT)
+ users: Repository.new,
}
end