railroad_diagrams 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +7 -0
- data/LICENSE.txt +21 -0
- data/MIT +21 -0
- data/README.md +30 -0
- data/Rakefile +4 -0
- data/exe/railroad_diagrams +7 -0
- data/lib/railroad_diagrams/alternating_sequence.rb +169 -0
- data/lib/railroad_diagrams/choice.rb +209 -0
- data/lib/railroad_diagrams/command.rb +84 -0
- data/lib/railroad_diagrams/comment.rb +48 -0
- data/lib/railroad_diagrams/diagram.rb +107 -0
- data/lib/railroad_diagrams/diagram_item.rb +77 -0
- data/lib/railroad_diagrams/diagram_multi_container.rb +23 -0
- data/lib/railroad_diagrams/end.rb +39 -0
- data/lib/railroad_diagrams/group.rb +75 -0
- data/lib/railroad_diagrams/horizontal_choice.rb +247 -0
- data/lib/railroad_diagrams/multiple_choice.rb +140 -0
- data/lib/railroad_diagrams/non_terminal.rb +67 -0
- data/lib/railroad_diagrams/one_or_more.rb +86 -0
- data/lib/railroad_diagrams/optional.rb +9 -0
- data/lib/railroad_diagrams/optional_sequence.rb +214 -0
- data/lib/railroad_diagrams/path.rb +117 -0
- data/lib/railroad_diagrams/sequence.rb +59 -0
- data/lib/railroad_diagrams/skip.rb +26 -0
- data/lib/railroad_diagrams/stack.rb +120 -0
- data/lib/railroad_diagrams/start.rb +62 -0
- data/lib/railroad_diagrams/style.rb +67 -0
- data/lib/railroad_diagrams/terminal.rb +63 -0
- data/lib/railroad_diagrams/text_diagram.rb +341 -0
- data/lib/railroad_diagrams/version.rb +5 -0
- data/lib/railroad_diagrams/zero_or_more.rb +9 -0
- data/lib/railroad_diagrams.rb +50 -0
- data/sample/sample.html +215 -0
- data/test.rb +570 -0
- metadata +81 -0
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RailroadDiagrams
|
4
|
+
VS = 8 # minimum vertical separation between things. For a 3px stroke, must be at least 4
|
5
|
+
AR = 10 # radius of arcs
|
6
|
+
DIAGRAM_CLASS = 'railroad-diagram' # class to put on the root <svg>
|
7
|
+
STROKE_ODD_PIXEL_LENGTH =
|
8
|
+
true # is the stroke width an odd (1px, 3px, etc) pixel length?
|
9
|
+
INTERNAL_ALIGNMENT =
|
10
|
+
'center' # how to align items when they have extra space. left/right/center
|
11
|
+
CHAR_WIDTH = 8.5 # width of each monospace character. play until you find the right value for your font
|
12
|
+
COMMENT_CHAR_WIDTH = 7 # comments are in smaller text by default
|
13
|
+
|
14
|
+
def self.escape_attr(val)
|
15
|
+
return val.gsub('&', '&').gsub("'", ''').gsub('"', '"') if val.is_a?(String)
|
16
|
+
|
17
|
+
'%g' % val
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.escape_html(val)
|
21
|
+
escape_attr(val).gsub('<', '<')
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
require_relative 'railroad_diagrams/diagram_item'
|
26
|
+
require_relative 'railroad_diagrams/diagram_multi_container'
|
27
|
+
|
28
|
+
require_relative 'railroad_diagrams/alternating_sequence'
|
29
|
+
require_relative 'railroad_diagrams/choice'
|
30
|
+
require_relative 'railroad_diagrams/command'
|
31
|
+
require_relative 'railroad_diagrams/comment'
|
32
|
+
require_relative 'railroad_diagrams/diagram'
|
33
|
+
require_relative 'railroad_diagrams/end'
|
34
|
+
require_relative 'railroad_diagrams/group'
|
35
|
+
require_relative 'railroad_diagrams/horizontal_choice'
|
36
|
+
require_relative 'railroad_diagrams/multiple_choice'
|
37
|
+
require_relative 'railroad_diagrams/non_terminal'
|
38
|
+
require_relative 'railroad_diagrams/one_or_more'
|
39
|
+
require_relative 'railroad_diagrams/optional_sequence'
|
40
|
+
require_relative 'railroad_diagrams/optional'
|
41
|
+
require_relative 'railroad_diagrams/path'
|
42
|
+
require_relative 'railroad_diagrams/sequence'
|
43
|
+
require_relative 'railroad_diagrams/skip'
|
44
|
+
require_relative 'railroad_diagrams/stack'
|
45
|
+
require_relative 'railroad_diagrams/start'
|
46
|
+
require_relative 'railroad_diagrams/style'
|
47
|
+
require_relative 'railroad_diagrams/terminal'
|
48
|
+
require_relative 'railroad_diagrams/text_diagram'
|
49
|
+
require_relative 'railroad_diagrams/version'
|
50
|
+
require_relative 'railroad_diagrams/zero_or_more'
|