Sha256: e5076d24255a91a47059321323ab24a3b4ab2d82baefbcee6e064a85d249ac83

Contents?: true

Size: 540 Bytes

Versions: 1

Compression:

Stored size: 540 Bytes

Contents

module AirPlayer
  class Playlist < Array
    def add(item)
      path = File.expand_path(item)
      Dir.exists?(path) ? concat(media_in(path)) : push(Media.new(item))
      self
    end

    def entries(repeat = false, &blk)
      loop do
        send(:each, &blk)
        break unless repeat
      end
    end

    private
      def media_in(path)
        Dir.entries(path).map do |node|
          media_path = File.expand_path(node, path)
          Media.new(media_path) if File.file? media_path
        end.compact
      end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
airplayer-0.0.3 lib/airplayer/playlist.rb