class Yt::Collections::Playlists

Private Instance Methods

attributes_for_new_item(data) click to toggle source
Calls superclass method
# File lib/yt/collections/playlists.rb, line 21
def attributes_for_new_item(data)
  super.merge content_details: data['contentDetails']
end
eager_load_items_from(items) click to toggle source
Calls superclass method
# File lib/yt/collections/playlists.rb, line 25
def eager_load_items_from(items)
  if included_relationships.any?
    ids = items.map{|item| item['id']}
    parts = included_relationships.map{|r| r.to_s.camelize(:lower)}
    conditions = {id: ids.join(','), part: parts.join(',')}
    playlists = Collections::Playlists.new(auth: @auth).where conditions

    items.each do |item|
      playlist = playlists.find{|playlist| playlist.id == item['id']}
      parts.each do |part|
        item[part] = case part
          when 'snippet' then playlist.snippet.data.merge complete: true
          when 'contentDetails' then playlist.content_detail.data
        end
      end if playlist
    end
  end
  super
end
insert_parts() click to toggle source
# File lib/yt/collections/playlists.rb, line 45
def insert_parts
  snippet = {keys: [:title, :description, :tags], sanitize_brackets: true}
  status = {keys: [:privacy_status]}
  {snippet: snippet, status: status}
end
list_params() click to toggle source

@return [Hash] the parameters to submit to YouTube to list channels. @see developers.google.com/youtube/v3/docs/channels/list

Calls superclass method
# File lib/yt/collections/playlists.rb, line 11
def list_params
  super.tap{|params| params[:params] = playlists_params}
end
playlists_params() click to toggle source
# File lib/yt/collections/playlists.rb, line 15
def playlists_params
  params = resources_params
  params.merge! channel_id: @parent.id if @parent
  apply_where_params! params
end