Sha256: d74b4a2c36d0687c2dd5066972f88e429f1bdf8b19e044134b2085f1139ae5d1

Contents?: true

Size: 646 Bytes

Versions: 3

Compression:

Stored size: 646 Bytes

Contents

require 'lita'

module Lita
  module Handlers
    class Latex < Handler

      LATEX_URL = URI::HTTP.build(
        host:      'chart.apis.google.com',
        path:      '/chart',
        fragment:  '.png').freeze

      route %r(\A(?:tex|latex)(?:\s+me)?\s+(.*)\Z), :latex, command: true

      def latex(response)
        expression = URI.escape(response.matches.first.first)
        response.reply image_url(expression)
      end

      private

      def image_url(expression)
        LATEX_URL.dup.tap { |url|
          url.query = "cht=tx&chl=#{ expression }"
        }.to_s
      end

    end

    Lita.register_handler(Latex)

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lita-latex-0.0.3 lib/lita/handlers/latex.rb
lita-latex-0.0.2 lib/lita/handlers/latex.rb
lita-latex-0.0.1 lib/lita/handlers/latex.rb