From 7bcbc84198738ab052a69b6eef5b406d2a29e2ed Mon Sep 17 00:00:00 2001 From: Alexandre Morignot <erdnaxeli@gmail.com> Date: Tue, 1 Jan 2013 23:17:43 +0100 Subject: [PATCH] Youtube Plugin is done ! --- plugins/youtube_plugin.rb | 11 ++++++++++- spec/site_plugin_spec.rb | 2 +- spec/youtube_plugin_spec.rb | 7 +++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/plugins/youtube_plugin.rb b/plugins/youtube_plugin.rb index bffb681..262b83d 100644 --- a/plugins/youtube_plugin.rb +++ b/plugins/youtube_plugin.rb @@ -1,12 +1,21 @@ require_relative '../lib/site_plugin.rb' +require 'rubygems' +require 'youtube_it' + class YoutubePlugin < SitePlugin def self.can_handle?(site) site =~ /^http:\/\/((www.)?youtube.(fr|com)\/watch\?v=|youtu\.be\/)[a-zA-Z0-9]+$/ end public + # Store a new youtube api client + def initialize + @client = YouTubeIt::Client.new + end + def get(url) - puts "Oh oh oh ! #{url}" + video = @client.video_by(url) + {:title => video.title, :author => video.author.name} end end diff --git a/spec/site_plugin_spec.rb b/spec/site_plugin_spec.rb index 241ab69..833ea20 100644 --- a/spec/site_plugin_spec.rb +++ b/spec/site_plugin_spec.rb @@ -14,7 +14,7 @@ describe SitePlugin do end describe '.for_site' do - it 'return plugin that can handle a given site"' do + it 'return plugin that can handle a given site' do class TestPlugin2 < SitePlugin def self.can_handle?(site) site =~ /test/ diff --git a/spec/youtube_plugin_spec.rb b/spec/youtube_plugin_spec.rb index 3dba54c..8a6c06e 100644 --- a/spec/youtube_plugin_spec.rb +++ b/spec/youtube_plugin_spec.rb @@ -14,4 +14,11 @@ describe YoutubePlugin do YoutubePlugin.can_handle?('http://youtu.be/Pb8VPYMgHlg').should be_true end end + + describe '#get' do + it "return video's informations" do + YoutubePlugin.new.get('http://youtube.com/watch?v=Pb8VPYMgHlg')[:title].should == 'DJ Showtek - FTS (Fuck the system)' + YoutubePlugin.new.get('http://youtube.com/watch?v=Pb8VPYMgHlg')[:author].should == 'bf2julian' + end + end end -- GitLab