Class: Lumiere::VimeoPlaylist

Inherits:
Provider
  • Object
show all
Includes:
EmbedCode
Defined in:
lib/provider/vimeoplaylist/vimeoplaylist.rb

Defined Under Namespace

Classes: VideoFetcher

Constant Summary collapse

USEABLE =
['vimeo.com', 'player.vimeo.com', 'www.vimeo.com']
RESULTS_PER_REQUEST =
20

Constants inherited from Provider

Provider::PROVIDERS

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from EmbedCode

#embed_code

Methods inherited from Provider

#==, #accessible?, delegate, #duration, #embed_code, #video_id

Constructor Details

#initialize(url) ⇒ VimeoPlaylist

Returns a new instance of VimeoPlaylist.



19
20
21
# File 'lib/provider/vimeoplaylist/vimeoplaylist.rb', line 19

def initialize(url)
  @url = url
end

Instance Attribute Details

#urlObject

Returns the value of attribute url.



6
7
8
# File 'lib/provider/vimeoplaylist/vimeoplaylist.rb', line 6

def url
  @url
end

Class Method Details

.useable?(url) ⇒ Boolean

Returns:

  • (Boolean)


12
13
14
15
16
17
# File 'lib/provider/vimeoplaylist/vimeoplaylist.rb', line 12

def self.useable?(url)
  uri = URISchemeless.parse(url)
  return false unless USEABLE.include?(uri.host)
  split_path = uri.path.split('/')
  split_path.include?('album')
end

Instance Method Details

#api_urlObject



31
32
33
# File 'lib/provider/vimeoplaylist/vimeoplaylist.rb', line 31

def api_url
  "http://vimeo.com/api/v2/album/#{playlist_id}/info.json"
end

#default_attributesObject



39
40
41
42
43
44
# File 'lib/provider/vimeoplaylist/vimeoplaylist.rb', line 39

def default_attributes
  {
    iframe_attributes: { frameborder: 0 },
    url_attributes: { autoplay: 0, byline: 0, portrait: 0, title: 0 }
  }
end

#descriptionObject



50
51
52
# File 'lib/provider/vimeoplaylist/vimeoplaylist.rb', line 50

def description
  fetch.description
end

#embed_urlObject



35
36
37
# File 'lib/provider/vimeoplaylist/vimeoplaylist.rb', line 35

def embed_url
  "//player.vimeo.com/hubnut/album/#{playlist_id}"
end

#playlist_idObject



27
28
29
# File 'lib/provider/vimeoplaylist/vimeoplaylist.rb', line 27

def playlist_id
  @playlist_id ||= calculate_playlist_id
end

#providerObject



23
24
25
# File 'lib/provider/vimeoplaylist/vimeoplaylist.rb', line 23

def provider
  "Vimeo"
end

#thumbnail_largeObject



66
67
68
# File 'lib/provider/vimeoplaylist/vimeoplaylist.rb', line 66

def thumbnail_large
  fetch.thumbnail_large
end

#thumbnail_mediumObject



62
63
64
# File 'lib/provider/vimeoplaylist/vimeoplaylist.rb', line 62

def thumbnail_medium
  fetch.thumbnail_medium
end

#thumbnail_smallObject



58
59
60
# File 'lib/provider/vimeoplaylist/vimeoplaylist.rb', line 58

def thumbnail_small
  fetch.thumbnail_small
end

#titleObject



46
47
48
# File 'lib/provider/vimeoplaylist/vimeoplaylist.rb', line 46

def title
  fetch.title
end

#total_videosObject



70
71
72
# File 'lib/provider/vimeoplaylist/vimeoplaylist.rb', line 70

def total_videos
  fetch.total_videos
end

#unpack_intoObject



74
75
76
77
# File 'lib/provider/vimeoplaylist/vimeoplaylist.rb', line 74

def unpack_into
  struct = OpenStruct.new
  struct.extend(VimeoPlaylistRepresenter)
end

#upload_dateObject



54
55
56
# File 'lib/provider/vimeoplaylist/vimeoplaylist.rb', line 54

def upload_date
  fetch.upload_date
end

#videosObject



79
80
81
# File 'lib/provider/vimeoplaylist/vimeoplaylist.rb', line 79

def videos
  @videos ||= VideoFetcher.new(playlist_id, total_videos).videos
end