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