yarv-dev-en:227
From: SASADA Koichi <ko1 atdot.net>
Date: Fri, 27 Oct 2006 22:00:52 +0900
Subject: [yarv-dev-en:227] YARV Presentation on RubyConf 2006
Hi, I uploaded my presentation on RubyConf 2006. http://www.atdot.net/yarv/rc2006_sasada_yarv_on_rails.pdf In my presentation, I demonstrated controlling iTunes via Win32OLE on YARV. ##################################################################### # iTunes Controller # require 'win32ole' $itunes = WIN32OLE.new("iTunes.Application") STDOUT.sync = true def get_tracks_from_itunes(name) plist = $itunes.LibrarySource.Playlists.ItemByName(name) raise "Unknown play list name: #{name}" unless plist tracks = plist.Tracks (1..tracks.Count).map{|i| tracks.Item(i).Name } end def play num, name track = $itunes.LibrarySource.Playlists.ItemByName(name).Tracks.Item(num) raise "unkown music number: #{num}" unless track track.play end def show_list pl get_tracks_from_itunes(pl).each_with_index{|name, i| puts "#{'%02d ' % (i+1)} - #{name}" } end def select_playlsit while true pls = $itunes.LibrarySource.Playlists (rng = 1..pls.count).each{|i| puts "#{'%02d' % i}: #{pls.item(i).name}" } print "Playlist number? > " i = gets.to_i if rng.include? i puts "Your select: #{name = pls.item(i).name}" break name end end end pl = select_playlsit show_list pl loop{ print "> " case line = (gets||'').chomp when /\d+/ play line.to_s, pl when 'playlist' show_playlist when 'list' show_list pl when 'stop' $itunes.stop when 'exit', '' $itunes.stop exit when 'irb' require 'irb' IRB.start else puts "unknown command: #{line}" end } ##################################################################### Rails demo worked at 6 o'clock, morning of talk day :) Matz, Takahashi-san and Ogino-san help me to debug till work. Thanks! -- // SASADA Koichi at atdot dot net -- ML: yarv-dev-en quickml.atdot.net Info: http://www.atdot.net/~ko1/quickml