Class: Jekyll::TwitchTag
- Inherits:
-
Liquid::Tag
- Object
- Liquid::Tag
- Jekyll::TwitchTag
- Defined in:
- lib/jekyll-twitch/twitch_tag.rb
Overview
This is a liquid tag that embed Twitch Clips input is a url
Class Method Summary collapse
-
.channel_url(url) ⇒ Object
Class Methods.
- .clip_url(url) ⇒ Object
- .collection_url(url) ⇒ Object
- .hostname(url) ⇒ Object
- .parse_twitch_url(url) ⇒ Object
- .site_url(context) ⇒ Object
- .video_url(url) ⇒ Object
Instance Method Summary collapse
-
#initialize(_tag_name, content, _tokens) ⇒ TwitchTag
constructor
A new instance of TwitchTag.
- #render(context) ⇒ Object
Constructor Details
#initialize(_tag_name, content, _tokens) ⇒ TwitchTag
Returns a new instance of TwitchTag.
10 11 12 13 |
# File 'lib/jekyll-twitch/twitch_tag.rb', line 10 def initialize(_tag_name, content, _tokens) super @parsed_url = Jekyll::TwitchTag.parse_twitch_url content.strip end |
Class Method Details
.channel_url(url) ⇒ Object
Class Methods
26 27 28 29 |
# File 'lib/jekyll-twitch/twitch_tag.rb', line 26 def self.channel_url(url) slug = url.match %r{(?<no>twitch.tv/)(?<channel>.+)/?\??} "https://player.twitch.tv/?channel=#{slug[:channel]}&autoplay=false" end |
.clip_url(url) ⇒ Object
31 32 33 34 |
# File 'lib/jekyll-twitch/twitch_tag.rb', line 31 def self.clip_url(url) slug = url.match %r{(?<no>/clip/)(?<clip>.+)/?\??} "https://clips.twitch.tv/embed?autoplay=false&clip=#{slug[:clip]}" end |
.collection_url(url) ⇒ Object
36 37 38 39 |
# File 'lib/jekyll-twitch/twitch_tag.rb', line 36 def self.collection_url(url) slug = url.match %r{(?<no>/collections/)(?<collection>.+)/?\??} "https://player.twitch.tv/?collection=#{slug[:collection]}&autoplay=false" end |
.hostname(url) ⇒ Object
41 42 43 44 |
# File 'lib/jekyll-twitch/twitch_tag.rb', line 41 def self.hostname(url) matches = url.match %r{\A(?<safe>https?://)?(?<host>[A-z.]+)(?<port>:\d+)?} matches[:host] end |
.parse_twitch_url(url) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/jekyll-twitch/twitch_tag.rb', line 46 def self.parse_twitch_url(url) case url when %r{/clip/} clip_url url when %r{/videos/} video_url url when %r{/collections/} collection_url url else channel_url url end end |
.site_url(context) ⇒ Object
59 60 61 |
# File 'lib/jekyll-twitch/twitch_tag.rb', line 59 def self.site_url(context) hostname(context.registers[:site].config['url']) end |
.video_url(url) ⇒ Object
63 64 65 66 |
# File 'lib/jekyll-twitch/twitch_tag.rb', line 63 def self.video_url(url) slug = url.match %r{(?<no>/videos/)(?<vod>\d+)} "https://player.twitch.tv/?video=#{slug[:vod]}&autoplay=false" end |
Instance Method Details
#render(context) ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/jekyll-twitch/twitch_tag.rb', line 15 def render(context) host = Jekyll::TwitchTag.site_url context %(<iframe src="#{@parsed_url}&parent=#{host}" height="100%" width="100%" allowfullscreen="true"> </iframe>) end |