Sha256: 57f1335403e8e6854fe602eef56f8afabe4932504cebb0530cdcd94161967ada

Contents?: true

Size: 1.05 KB

Versions: 27

Compression:

Stored size: 1.05 KB

Contents

require 'net/http'
require 'uri'
require 'open-uri'

class Gollum::WebSequenceDiagram
  WSD_URL = "http://www.websequencediagrams.com/index.php"

  # Initialize a new WebSequenceDiagram object.
  #
  # code  - The String containing the sequence diagram markup.
  # style - The String containing the rendering style.
  #
  # Returns a new Gollum::WebSequenceDiagram object
  def initialize(code, style)
    @code = code
    @style = style
    @tag = ""

    render
  end

  # Render the sequence diagram on the remote server and store the url to
  # the rendered image.
  #
  # Returns nil.
  def render
    response = Net::HTTP.post_form(URI.parse(WSD_URL), 'style' => @style, 'message' => @code)
    if response.body =~ /img: "(.+)"/
      url = "http://www.websequencediagrams.com/#{$1}"
      @tag = "<img src=\"#{url}\" />"
    else
      puts response.body
      @tag ="Sorry, unable to render sequence diagram at this time."
    end
  end

  # Gets the HTML IMG tag for the sequence diagram.
  #
  # Returns a String containing the IMG tag.
  def to_tag
    @tag
  end
end

Version data entries

27 entries across 27 versions & 2 rubygems

Version Path
gollum-2.3.3 lib/gollum/web_sequence_diagram.rb
gollum-2.3.2 lib/gollum/web_sequence_diagram.rb
gollum-2.3.1 lib/gollum/web_sequence_diagram.rb
gollum-2.3.0 lib/gollum/web_sequence_diagram.rb
gollum-2.2.9 lib/gollum/web_sequence_diagram.rb
gollum-2.2.8 lib/gollum/web_sequence_diagram.rb
gollum-2.2.7 lib/gollum/web_sequence_diagram.rb
gollum-2.2.6 lib/gollum/web_sequence_diagram.rb
gollum-2.2.5 lib/gollum/web_sequence_diagram.rb
gollum-2.2.4 lib/gollum/web_sequence_diagram.rb
gollum-2.2.3 lib/gollum/web_sequence_diagram.rb
gollum-2.2.2 lib/gollum/web_sequence_diagram.rb
gollum-2.2.1 lib/gollum/web_sequence_diagram.rb
gollum-2.2.0 lib/gollum/web_sequence_diagram.rb
gollum-2.1.10 lib/gollum/web_sequence_diagram.rb
gollum-2.1.9 lib/gollum/web_sequence_diagram.rb
gollum-2.1.8 lib/gollum/web_sequence_diagram.rb
gollum-2.1.7 lib/gollum/web_sequence_diagram.rb
gollum-2.1.6 lib/gollum/web_sequence_diagram.rb
gollum-2.1.4 lib/gollum/web_sequence_diagram.rb