class ActionChannels::ChannelRepository

Attributes

channels[R]

Public Class Methods

new(channels = []) click to toggle source
# File lib/action_channels/channel_repository.rb, line 3
def initialize(channels = [])
  @channels = Set.new channels
end

Public Instance Methods

add(channel) click to toggle source
# File lib/action_channels/channel_repository.rb, line 19
def add(channel)
  channels.add channel
end
all() click to toggle source
# File lib/action_channels/channel_repository.rb, line 7
def all
  channels.to_a
end
delete(channel) click to toggle source
# File lib/action_channels/channel_repository.rb, line 23
def delete(channel)
  channels.delete channel
end
find_by_name(channel_name) click to toggle source
# File lib/action_channels/channel_repository.rb, line 11
def find_by_name(channel_name)
  channels.find { |channel| channel.name.eql? channel_name }
end
find_by_name_or_create(channel_name) click to toggle source
# File lib/action_channels/channel_repository.rb, line 15
def find_by_name_or_create(channel_name)
  find_by_name(channel_name) || create(channel_name)
end

Private Instance Methods

create(channel_name) click to toggle source
# File lib/action_channels/channel_repository.rb, line 31
def create(channel_name)
  channel = Channels::NewsChannel.new name: channel_name
  channels << channel
  channel
end