Sha256: ffc6dc9b3aacf1a45528e9326298f08db8fa3320eafac3e83ac97cf64064cccb

Contents?: true

Size: 990 Bytes

Versions: 10

Compression:

Stored size: 990 Bytes

Contents

require 'videoclip/video'
Dir.glob(Rails.root + 'lib/videoclip/*.rb').each{|v| require v }
Dir.glob(File.dirname(__FILE__) + '/videoclip/videos/*.rb').each{|v| require v }

module LaserLemon
  module Videoclip
    def self.included(base)
      base.extend ClassMethods
    end

    module ClassMethods
      def has_video(name = :video, options = {})
        class_inheritable_hash :videoclip_options
        self.videoclip_options = {name.to_sym => options}

        composed_of name,
          :class_name => 'LaserLemon::Videoclip::Video',
          :mapping => %w(host key url).map{|x| %W(#{name}_#{x} #{x}) },
          :constructor => Proc.new{|h,k,u| LaserLemon::Videoclip::Video.build(h, k, u, options) },
          :converter => Proc.new{|u| LaserLemon::Videoclip::Video.assign(u, options) },
          :allow_nil => true

        define_method "#{name}?" do
          !! send(name)
        end
      end
    end
  end
end

ActiveRecord::Base.send(:include, LaserLemon::Videoclip)

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
videoclip-0.2.12 lib/videoclip.rb
videoclip-0.2.11 lib/videoclip.rb
videoclip-0.2.10 lib/videoclip.rb
videoclip-0.2.9 lib/videoclip.rb
videoclip-0.2.8 lib/videoclip.rb
videoclip-0.2.7 lib/videoclip.rb
videoclip-0.2.6 lib/videoclip.rb
videoclip-0.2.5 lib/videoclip.rb
videoclip-0.2.4 lib/videoclip.rb
videoclip-0.2.3 lib/videoclip.rb