Sha256: 7e33976a2eea57d1bbc00f3f6dab8967cdfdb119ceff7e018117e10bb5381aee

Contents?: true

Size: 589 Bytes

Versions: 77

Compression:

Stored size: 589 Bytes

Contents

# frozen_string_literal: true

module Onebox
  module Engine
    class XkcdOnebox
      include Engine
      include LayoutSupport
      include JSON

      matches_regexp(/^https?:\/\/(www\.)?(m\.)?xkcd\.com\/\d+/)

      def url
        "https://xkcd.com/#{match[:comic_id]}/info.0.json"
      end

      private

      def match
        @match ||= @url.match(%{xkcd\.com/(?<comic_id>\\d+)})
      end

      def data
        {
          link: @url,
          title: raw['safe_title'],
          image: raw['img'],
          description: raw['alt']
        }
      end
    end
  end
end

Version data entries

77 entries across 77 versions & 1 rubygems

Version Path
onebox-2.1.7 lib/onebox/engine/xkcd_onebox.rb
onebox-2.1.6 lib/onebox/engine/xkcd_onebox.rb
onebox-2.1.5 lib/onebox/engine/xkcd_onebox.rb
onebox-2.1.4 lib/onebox/engine/xkcd_onebox.rb
onebox-2.1.3 lib/onebox/engine/xkcd_onebox.rb
onebox-2.1.2 lib/onebox/engine/xkcd_onebox.rb
onebox-2.1.1 lib/onebox/engine/xkcd_onebox.rb
onebox-2.1.0 lib/onebox/engine/xkcd_onebox.rb
onebox-2.0.2 lib/onebox/engine/xkcd_onebox.rb
onebox-2.0.1 lib/onebox/engine/xkcd_onebox.rb
onebox-2.0.0 lib/onebox/engine/xkcd_onebox.rb
onebox-1.9.30 lib/onebox/engine/xkcd_onebox.rb
onebox-1.9.29 lib/onebox/engine/xkcd_onebox.rb
onebox-1.9.28.4 lib/onebox/engine/xkcd_onebox.rb
onebox-1.9.28.3 lib/onebox/engine/xkcd_onebox.rb
onebox-1.9.28.2 lib/onebox/engine/xkcd_onebox.rb
onebox-1.9.28.1 lib/onebox/engine/xkcd_onebox.rb
onebox-1.9.28 lib/onebox/engine/xkcd_onebox.rb
onebox-1.9.27.2 lib/onebox/engine/xkcd_onebox.rb
onebox-1.9.27.1 lib/onebox/engine/xkcd_onebox.rb