diff --git a/init.rb b/init.rb new file mode 100644 index 0000000..94a3966 --- /dev/null +++ b/init.rb @@ -0,0 +1 @@ +require 'flowplayer' \ No newline at end of file diff --git a/lib/flowplayer.rb b/lib/flowplayer.rb index 0a1a395..671a79d 100644 --- a/lib/flowplayer.rb +++ b/lib/flowplayer.rb @@ -1 +1,5 @@ -require 'flowplayer/player' \ No newline at end of file +require 'flowplayer/player' + +if defined?(Rails) + require 'flowplayer/railtie' +end \ No newline at end of file diff --git a/lib/flowplayer/player.rb b/lib/flowplayer/player.rb index ff10088..8206e5d 100644 --- a/lib/flowplayer/player.rb +++ b/lib/flowplayer/player.rb @@ -1,9 +1,9 @@ require 'json' module Flowplayer class Player - attr_accessor :options, :functions, :dom_id - def initialize(dom_id, &block) - @dom_id = dom_id + attr_accessor :options, :functions, :dom_id, :swf + def initialize(dom_id, swf, &block) + @dom_id, @swf = dom_id, swf @options = {} @functions = {} block.call(self) @@ -20,7 +20,7 @@ module Flowplayer <<-EOS EOS diff --git a/lib/flowplayer/railtie.rb b/lib/flowplayer/railtie.rb index 9715b33..a626448 100644 --- a/lib/flowplayer/railtie.rb +++ b/lib/flowplayer/railtie.rb @@ -1,8 +1,13 @@ module Flowplayer require 'rails' + require File.join(File.expand_path('../', __FILE__), 'railties/helper') class Railtie < ::Rails::Railtie generators do - require File.join(File.expand_path('../', __FILE__), 'railties', 'generators', 'compass_theme', 'compass_theme_generator.rb') + require File.join(File.expand_path('../', __FILE__), 'railties', 'generator', 'install_generator.rb') + end + initializer "flowplayer.configure_rails_initialization" do + #ApplicationHelper.send(:include, Flowplayer::Helper) + ApplicationController.instance_eval { helper Flowplayer::Helper } end end end \ No newline at end of file diff --git a/lib/flowplayer/railties/generator/install_generator.rb b/lib/flowplayer/railties/generator/install_generator.rb new file mode 100644 index 0000000..e7394a8 --- /dev/null +++ b/lib/flowplayer/railties/generator/install_generator.rb @@ -0,0 +1,24 @@ +module Flowplayer + module Generator + class InstallGenerator < Rails::Generators::Base + namespace 'flowplayer' + source_root File.expand_path("../../../../../assets", __FILE__) + argument :install_type, :type => :string, :banner => "commercial", :required => false, :default => '' + + def install_flowplayer + copy_file 'flowplayer-3.2.4.min.js', Rails.root.join('public', 'javascript', 'flowplayer.min.js') + end + + def install_swfs + if install_type == 'commercial' + copy_file 'flowplayer.commercial-3.2.5.swf', Rails.root.join('public', 'flowplayer.swf') + else + copy_file 'flowplayer-3.2.5.swf', Rails.root.join('public', 'flowplayer.swf') + copy_file 'LICENSE.txt', Rails.root.join('FLOWPLAYER_LICENSE.txt') + end + copy_file 'flowplayer.controls-3.2.3.swf', Rails.root.join('public', 'flowplayer.controls.swf') + end + + end + end +end \ No newline at end of file diff --git a/lib/flowplayer/railties/helper.rb b/lib/flowplayer/railties/helper.rb new file mode 100644 index 0000000..c5e3c61 --- /dev/null +++ b/lib/flowplayer/railties/helper.rb @@ -0,0 +1,16 @@ +module Flowplayer + module Helper + + # flowplayer_for :hubble do |f| + # f.option 'foo' + # f.onLoad do + # 'this.unmute();' + # end + + + def flowplayer_for(id, swf, &block) + Player.new(id, swf, &block).script_tags.html_safe + end + + end +end \ No newline at end of file diff --git a/spec/flowplayer_spec.rb b/spec/flowplayer_spec.rb index a10b42b..246cbdd 100644 --- a/spec/flowplayer_spec.rb +++ b/spec/flowplayer_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' describe Flowplayer::Player do it "should set options from block" do - flow_player = Flowplayer::Player.new('my_video') do |player| + flow_player = Flowplayer::Player.new('my_video', 'commericial.swf') do |player| player.fullscreen true player.logo(:url => nil, :opacity => 0, :fullscreenOnly => true) player.onLoad do @@ -17,14 +17,14 @@ describe Flowplayer::Player do end it "should set the dom_id to 'my_video'" do - flow_player = Flowplayer::Player.new('my_video') do |player| + flow_player = Flowplayer::Player.new('my_video', 'commericial.swf') do |player| player.fullscreen true end flow_player.dom_id.should == 'my_video' end it "should generate valid options" do - flow_player = Flowplayer::Player.new('my_video') do |player| + flow_player = Flowplayer::Player.new('my_video', 'commericial.swf') do |player| player.fullscreen true player.logo({:opacity => 0, :fullscreenOnly => true}) player.onLoad do @@ -37,21 +37,22 @@ describe Flowplayer::Player do end it "should create script tags with options" do - flow_player = Flowplayer::Player.new('my_video') do |player| + flow_player = Flowplayer::Player.new('my_video', 'commericial.swf') do |player| player.fullscreen true player.logo(:url => nil, :opacity => 0, :fullscreenOnly => true) player.onLoad do 'this.unmute();' end end - ["", "flowplayer(\"my_video\", #{flow_player.to_js}"].each do |part| + ["", "flowplayer(\"my_video\", \"commericial.swf\", #{flow_player.to_js}"].each do |part| flow_player.script_tags.should include part end + flow_player.script_tags.should match(/\)\;/) end it "should raise exception if passed a setter" do lambda do - flow_player = Flowplayer::Player.new('my_video') do |player| + flow_player = Flowplayer::Player.new('my_video', 'commericial.swf') do |player| player.fullscreen = true end end.should raise_error