class Vid::YouTube::Video

Public Class Methods

find(id) click to toggle source
# File lib/vid/youtube/video.rb, line 15
def self.find(id)
  uri = URI::HTTPS.build host: 'www.googleapis.com', path: '/youtube/v3/videos', query: "id=#{id}&key=#{ENV['YT_TEST_SERVER_API_KEY']}&part=snippet,statistics"
  http_request = Net::HTTP::Get.new(uri.request_uri)

  net_http_options = [uri.host, uri.port, use_ssl: true]
  response = Net::HTTP.start('www.googleapis.com', 443, use_ssl: true) do |http|
    http.request http_request
  end

  attributes = JSON(response.body)['items'][0]
  new attributes
end
new(attributes = {}) click to toggle source
# File lib/vid/youtube/video.rb, line 6
def initialize(attributes = {})
  @id = attributes['id']
  @published_at = attributes['snippet']['publishedAt']
  @title = attributes['snippet']['title']
  @comment_count = attributes['statistics']['commentCount'].to_i
  @like_count = attributes['statistics']['likeCount'].to_i
  @view_count = attributes['statistics']['viewCount'].to_i
end
where(clauses) click to toggle source
# File lib/vid/youtube/video.rb, line 28
def self.where(clauses)
  uri = URI::HTTPS.build host: 'www.googleapis.com', path: '/youtube/v3/videos', query: "id=#{clauses[:id].join(',')}&key=#{ENV['YT_TEST_SERVER_API_KEY']}&part=snippet,statistics"
  http_request = Net::HTTP::Get.new(uri.request_uri)

  net_http_options = [uri.host, uri.port, use_ssl: true]
  response = Net::HTTP.start('www.googleapis.com', 443, use_ssl: true) do |http|
    http.request http_request
  end

  JSON(response.body)['items'].map do |attributes|
    new attributes
  end
end