class PolyListEmbed

Public Class Methods

new(tagName, content, tokens) click to toggle source
Calls superclass method
# File lib/jekyll-polylist.rb, line 9
def initialize(tagName, content, tokens)
  super
  @content = content
  @renderer = Jekyll::PolyEmbed.new()
  @apikey = Jekyll.configuration({})['google_poly']['API_key']
end

Public Instance Methods

get_assets(nextPageToken = "") click to toggle source
# File lib/jekyll-polylist.rb, line 16
def get_assets(nextPageToken = "")
  unless nextPageToken.nil?
    pageToken = "&pageToken=#{ nextPageToken }"
  else
    pageToken = ""
  end
  url = "https://poly.googleapis.com/v1/assets?key=#{ @apikey }&keywords=#{ @keyword }&pageSize=100" + pageToken
  response = Faraday.new(url).get
  if response.status == 200
    body = JSON.parse(response.body)
    body["assets"].each do |asset|
      @assets << asset
    end
    unless body["nextPageToken"].nil?
      get_assets(nextPageToken = body["nextPageToken"])
    end
  end
end
render(context) click to toggle source
# File lib/jekyll-polylist.rb, line 35
def render(context)
  @keyword = "#{context[@content.strip]}"
  get_assets()
  output = "<div>\n"
  @assets.each do |asset|
    if asset["name"][/assets\/([^\?]*)/]
      poly_id = $1
      iframe = @renderer.generate(context, poly_id)
      output += %Q{
      <div class="poly-asset-container">
        <h3 class="poly-asset-title">#{ asset["displayName"] }</h3>
        <div class="poly-asset-iframe">
          #{ iframe }
        </div>
      </div>
       }
    end
  end
end