Sha256: 86e93d44a3f3321041bc184465549666d9490550c3d256625108d771a19bf30a

Contents?: true

Size: 760 Bytes

Versions: 3

Compression:

Stored size: 760 Bytes

Contents

module Octospy
  module Recordable
    class Channel
      attr_reader :name

      def initialize(name)
        @name = name.to_sym
      end

      def repos
        @repos ||= []
      end

      def add_repo(name)
        repos << name.to_sym if !repos.include?(name.to_sym)
      end

      def add_repos(names = nil)
        return if names.nil? || names.empty?
        repos.concat(names.map { |repo|
          repo.to_sym unless repos.include?(repo.to_sym) }.compact)
      end

      def remove_repo(name)
        repos.delete(name.to_sym) if repos.include?(name.to_sym)
      end

      def remove_repos(names = nil)
        return if names.nil? || names.empty?
        repos.delete_if { |repo| names.include? repo.to_s }
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
octospy-0.2.0 lib/octospy/recordable/channel.rb
octospy-0.1.1 lib/octospy/recordable/channel.rb
octospy-0.1.0 lib/octospy/recordable/channel.rb