class ArticleJSON::Export::AMP::Elements::Embed
Public Instance Methods
Private Instance Methods
default_height()
click to toggle source
@return [String]
# File lib/article_json/export/amp/elements/embed.rb, line 108 def default_height '315' end
default_width()
click to toggle source
@return [String]
# File lib/article_json/export/amp/elements/embed.rb, line 103 def default_width '560' end
embedded_object()
click to toggle source
Type specific object that should be embedded @return [Nokogiri::XML::Element|nil]
# File lib/article_json/export/amp/elements/embed.rb, line 26 def embedded_object case @element.embed_type.to_sym when :youtube_video youtube_node when :vimeo_video vimeo_node when :facebook_video facebook_node when :tweet tweet_node when :slideshare iframe_node when :soundcloud soundcloud_node end end
facebook_node()
click to toggle source
@return [Nokogiri::XML::Element]
# File lib/article_json/export/amp/elements/embed.rb, line 71 def facebook_node url = "#{@element.oembed_data[:author_url]}videos/#{@element.embed_id}" create_element('amp-facebook', 'data-embedded-as' => 'video', 'data-href' => url, width: default_width, height: default_height) end
iframe_node()
click to toggle source
@return [Nokogiri::XML::Element]
# File lib/article_json/export/amp/elements/embed.rb, line 93 def iframe_node node = Nokogiri::HTML(@element.oembed_data[:html]).xpath('//iframe') create_element('amp-iframe', src: node.attribute('src').value, width: node.attribute('width').value, height: node.attribute('height').value, frameborder: '0',) end
soundcloud_node()
click to toggle source
# File lib/article_json/export/amp/elements/embed.rb, line 80 def soundcloud_node src = Nokogiri::HTML(@element.oembed_data[:html]) .xpath('//iframe/@src').first.value track_id = src.match(/tracks%2F(\d+)/)[1] create_element('amp-soundcloud', layout: 'fixed-height', 'data-trackid': track_id, 'data-visual': true, width: 'auto', height: default_height) end
tweet_node()
click to toggle source
@return [Nokogiri::XML::Element]
# File lib/article_json/export/amp/elements/embed.rb, line 60 def tweet_node # The embed_id of a tweet is stored as "<handle>/<tweet_id>" but # the `amp-twitter` tag only takes the `tweet_id` part tweet_id = @element.embed_id.split('/').last create_element('amp-twitter', 'data-tweetid': tweet_id, width: default_width, height: default_height) end
vimeo_node()
click to toggle source
@return [Nokogiri::XML::Element]
# File lib/article_json/export/amp/elements/embed.rb, line 52 def vimeo_node create_element('amp-vimeo', 'data-videoid' => @element.embed_id, width: default_width, height: default_height) end
youtube_node()
click to toggle source
@return [Nokogiri::XML::Element]
# File lib/article_json/export/amp/elements/embed.rb, line 44 def youtube_node create_element('amp-youtube', 'data-videoid' => @element.embed_id, width: default_width, height: default_height) end