Sha256: b85a1a3f7ab2341b6d4f6dbb68cf561259d8934d95a1d5102d7fd45fc80dd425

Contents?: true

Size: 574 Bytes

Versions: 25

Compression:

Stored size: 574 Bytes

Contents

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

      matches_regexp(/^https?:\/\/(www\.)?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

25 entries across 25 versions & 1 rubygems

Version Path
onebox-1.8.4 lib/onebox/engine/xkcd_onebox.rb
onebox-1.8.3 lib/onebox/engine/xkcd_onebox.rb
onebox-1.8.2 lib/onebox/engine/xkcd_onebox.rb
onebox-1.8.1 lib/onebox/engine/xkcd_onebox.rb
onebox-1.8.0 lib/onebox/engine/xkcd_onebox.rb
onebox-1.7.9 lib/onebox/engine/xkcd_onebox.rb
onebox-1.7.8 lib/onebox/engine/xkcd_onebox.rb
onebox-1.7.7 lib/onebox/engine/xkcd_onebox.rb
onebox-1.7.6 lib/onebox/engine/xkcd_onebox.rb
onebox-1.7.5 lib/onebox/engine/xkcd_onebox.rb
onebox-1.7.4 lib/onebox/engine/xkcd_onebox.rb
onebox-1.7.3 lib/onebox/engine/xkcd_onebox.rb
onebox-1.7.2 lib/onebox/engine/xkcd_onebox.rb
onebox-1.7.1 lib/onebox/engine/xkcd_onebox.rb
onebox-1.7.0 lib/onebox/engine/xkcd_onebox.rb
onebox-1.6.9 lib/onebox/engine/xkcd_onebox.rb
onebox-1.6.8 lib/onebox/engine/xkcd_onebox.rb
onebox-1.6.7 lib/onebox/engine/xkcd_onebox.rb
onebox-1.6.6 lib/onebox/engine/xkcd_onebox.rb
onebox-1.6.5 lib/onebox/engine/xkcd_onebox.rb