Module: RailroadDiagrams

Defined in:
lib/railroad_diagrams.rb,
lib/railroad_diagrams/end.rb,
lib/railroad_diagrams/path.rb,
lib/railroad_diagrams/skip.rb,
lib/railroad_diagrams/group.rb,
lib/railroad_diagrams/stack.rb,
lib/railroad_diagrams/start.rb,
lib/railroad_diagrams/style.rb,
lib/railroad_diagrams/choice.rb,
lib/railroad_diagrams/command.rb,
lib/railroad_diagrams/comment.rb,
lib/railroad_diagrams/diagram.rb,
lib/railroad_diagrams/version.rb,
lib/railroad_diagrams/optional.rb,
lib/railroad_diagrams/sequence.rb,
lib/railroad_diagrams/terminal.rb,
lib/railroad_diagrams/one_or_more.rb,
lib/railroad_diagrams/diagram_item.rb,
lib/railroad_diagrams/non_terminal.rb,
lib/railroad_diagrams/text_diagram.rb,
lib/railroad_diagrams/zero_or_more.rb,
lib/railroad_diagrams/multiple_choice.rb,
lib/railroad_diagrams/horizontal_choice.rb,
lib/railroad_diagrams/optional_sequence.rb,
lib/railroad_diagrams/alternating_sequence.rb,
lib/railroad_diagrams/diagram_multi_container.rb

Defined Under Namespace

Classes: AlternatingSequence, Choice, Command, Comment, Diagram, DiagramItem, DiagramMultiContainer, End, Group, HorizontalChoice, MultipleChoice, NonTerminal, OneOrMore, Optional, OptionalSequence, Path, Sequence, Skip, Stack, Start, Style, Terminal, TextDiagram, ZeroOrMore

Constant Summary collapse

VS =

minimum vertical separation between things. For a 3px stroke, must be at least 4

8
AR =

radius of arcs

10
DIAGRAM_CLASS =

class to put on the root <svg>

'railroad-diagram'
STROKE_ODD_PIXEL_LENGTH =
true
INTERNAL_ALIGNMENT =

is the stroke width an odd (1px, 3px, etc) pixel length?

'center'
CHAR_WIDTH =

how to align items when they have extra space. left/right/center

8.5
COMMENT_CHAR_WIDTH =

width of each monospace character. play until you find the right value for your font

7
VERSION =
'0.3.0'

Class Method Summary collapse

Class Method Details

.escape_attr(val) ⇒ Object

comments are in smaller text by default



14
15
16
17
18
# File 'lib/railroad_diagrams.rb', line 14

def self.escape_attr(val)
  return val.gsub('&', '&amp;').gsub("'", '&apos;').gsub('"', '&quot;') if val.is_a?(String)

  '%g' % val
end

.escape_html(val) ⇒ Object



20
21
22
# File 'lib/railroad_diagrams.rb', line 20

def self.escape_html(val)
  escape_attr(val).gsub('<', '&lt;')
end