Sha256: 80518ad8e79e6cda1c0f3ae1c20445b3da5e0d21f82a50c479887a71d9ea7157

Contents?: true

Size: 545 Bytes

Versions: 1

Compression:

Stored size: 545 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 Media.playable? media_path
        end.compact
      end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

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