markdoc 1.2.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 903c73cf0ff9c9c6b3b9caaf41c0d9fd6ebda60624259acae36e09fa8fd4f81a
4
- data.tar.gz: aad92c597c2acc1f40449d7e5f1feaa608140831bbd88d22640e77e23796e620
3
+ metadata.gz: a313ccc3aef3a547c0d688e8a84dac9097c6fad2e7e5e27e46475311646e1e67
4
+ data.tar.gz: 4491396850eac63988494d4e68f110db83813304a9cc1bab00458eb5875e497e
5
5
  SHA512:
6
- metadata.gz: fee4a4c2de9b2350c3df3991c6b6a3c11640fe7026f741e6eb62bb50475fc5adb6492004fb24e304231cbdfa1c9beba8de527b1d79a76e8e497e27bae0d66498
7
- data.tar.gz: a2e44199fb3ed992890ce7a74d028b90e2d708c28eaa5cb9db34746784c11c4283d3134ecbdf72bf67c4077a7c2f3256ff5605f3a5bf5113d8b9db6a5cb15501
6
+ metadata.gz: 949e3a80919e9b9b54f624b659c5bbb72ca0cf9b7746c9080dd8fd08a27b012147099cc2c50397d68694f05a717eb8265d14bb058146b8174416cb59dbce9db3
7
+ data.tar.gz: a32fbb8e268d9035ff15c4b2d93726e48a9bb5ab3fb9af6e13c95a7d8979f7b6ee57b1d469c23871c6179b3d2b83c0da9c6658351cf8932a66c6ecf777682f7b
data/bin/markdoc CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'markdoc'
4
5
 
data/bin/pseudo2svg CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  # Pseudo code to Graphviz converter
4
5
  #
data/bin/sequence2svg CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  # Sequence definition to image converter using sequence.pic macros.
4
5
  # http://www.umlgraph.org/doc/seq-intro.html
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'polyglot'
2
4
  require 'treetop'
3
5
 
@@ -13,14 +15,17 @@ module Markdoc
13
15
 
14
16
  class ActionLiteral < Treetop::Runtime::SyntaxNode
15
17
  def out(file)
16
- file.write %Q(#{id} [shape=box label="#{label}"]\n)
18
+ file.write %(#{id} [shape=box label="#{label}"]\n)
17
19
  end
20
+
18
21
  def id
19
22
  sentence.id
20
23
  end
24
+
21
25
  def label
22
26
  sentence.value
23
27
  end
28
+
24
29
  def ends
25
30
  [id]
26
31
  end
@@ -28,33 +33,34 @@ module Markdoc
28
33
 
29
34
  class IfLiteral < Treetop::Runtime::SyntaxNode
30
35
  def out(file)
31
- file.write %Q(#{id} [shape=diamond label="#{cond.value}"]\n)
36
+ file.write %(#{id} [shape=diamond label="#{cond.value}"]\n)
32
37
 
33
38
  unless yes.nil?
34
39
  yes.out(file)
35
- file.write %Q( #{id} -> #{yes.id} [label="Yes"]\n)
40
+ file.write %( #{id} -> #{yes.id} [label="Yes"]\n)
36
41
  end
37
42
  unless no.nil?
38
43
  no.out(file)
39
- file.write %Q( #{id} -> #{no.id} [label="No"]\n)
44
+ file.write %( #{id} -> #{no.id} [label="No"]\n)
40
45
  end
41
46
  end
42
47
 
43
48
  def id
44
49
  cond.id
45
50
  end
51
+
46
52
  def ends
47
53
  ary = []
48
- if yes.elements.empty?
49
- ary << yes.id
50
- else
51
- ary << yes.elements.last.ends
52
- end
53
- if no.elements.empty?
54
- ary << no.id
55
- else
56
- ary << no.elements.last.ends
57
- end
54
+ ary << if yes.elements.empty?
55
+ yes.id
56
+ else
57
+ yes.elements.last.ends
58
+ end
59
+ ary << if no.elements.empty?
60
+ no.id
61
+ else
62
+ no.elements.last.ends
63
+ end
58
64
  ary.flatten
59
65
  end
60
66
  end
@@ -63,6 +69,7 @@ module Markdoc
63
69
  def value
64
70
  text_value.strip
65
71
  end
72
+
66
73
  def id
67
74
  @id ||= Register.id
68
75
  end
@@ -73,11 +80,10 @@ module Markdoc
73
80
  prev = nil
74
81
  elements.each do |node|
75
82
  next if node.nil?
83
+
76
84
  node.out(file)
77
- unless prev.nil?
78
- prev.ends.each do |endid|
79
- file.write %Q(#{endid} -> #{node.id}\n)
80
- end
85
+ prev&.ends&.each do |endid|
86
+ file.write %(#{endid} -> #{node.id}\n)
81
87
  end
82
88
  prev = node
83
89
  end
@@ -90,11 +96,11 @@ module Markdoc
90
96
  def ends
91
97
  ary = []
92
98
  elements.each do |node|
93
- if node.elements.empty?
94
- ary << node.id
95
- else
96
- ary << node.ends
97
- end
99
+ ary << if node.elements.empty?
100
+ node.id
101
+ else
102
+ node.ends
103
+ end
98
104
  end
99
105
  ary.flatten
100
106
  end
@@ -104,7 +110,7 @@ module Markdoc
104
110
  parser = PseudocodeParser.new
105
111
  tree = parser.parse(code)
106
112
 
107
- if(tree.nil?)
113
+ if tree.nil?
108
114
  puts parser.failure_reason
109
115
  raise "Can't generate graphviz code"
110
116
  else
@@ -118,9 +124,7 @@ module Markdoc
118
124
  graphviz = file.path
119
125
  end
120
126
 
121
- if format == :graphviz
122
- return IO.read(graphviz)
123
- end
127
+ return IO.read(graphviz) if format == :graphviz
124
128
 
125
129
  image = Tempfile.new([digest, ".#{format}"])
126
130
  image.close
@@ -1,9 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'redcarpet'
2
4
  require 'pygments'
3
5
 
4
6
  module Markdoc
5
7
  class Renderer < Redcarpet::Render::HTML
6
-
7
8
  def block_code(code, language)
8
9
  case language
9
10
  when 'pseudo', 'pseudocode'
@@ -17,27 +18,27 @@ module Markdoc
17
18
 
18
19
  # removes xml or doctype meta info
19
20
  def wrap_svg(source)
20
- stripped = source.
21
- sub(/<\?xml[^>]+>/i, '').
22
- sub(/<!DOCTYPE[^>]+>/im, '').
23
- gsub(/<!\-\-[^>]+\-\->/, '')
21
+ stripped = source
22
+ .sub(/<\?xml[^>]+>/i, '')
23
+ .sub(/<!DOCTYPE[^>]+>/im, '')
24
+ .gsub(/<!--[^>]+-->/, '')
24
25
 
25
- %Q(<div class="svg-holder">\n#{stripped}\n</div>)
26
+ %(<div class="svg-holder">\n#{stripped}\n</div>)
26
27
  end
27
28
 
28
29
  def doc_header
29
- <<-END
30
- <html>
31
- <head>
32
- <title>Doc</title>
33
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
34
- <style>
35
- #{IO.read File.expand_path('../../../css/style.css', __FILE__)}
36
- #{IO.read File.expand_path('../../../css/pygments.css', __FILE__)}
37
- </style>
38
- </head>
39
- <body>
40
- END
30
+ <<~HEADER
31
+ <html>
32
+ <head>
33
+ <title>Doc</title>
34
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
35
+ <style>
36
+ #{IO.read File.expand_path('../../css/style.css', __dir__)}
37
+ #{IO.read File.expand_path('../../css/pygments.css', __dir__)}
38
+ </style>
39
+ </head>
40
+ <body>
41
+ HEADER
41
42
  end
42
43
 
43
44
  def doc_footer
@@ -1,21 +1,23 @@
1
+ # frozen_string_literal: false
2
+
1
3
  module Markdoc
2
4
  module Sequence
3
5
  DEFAULTS = {
4
6
  diagram: {
5
7
  offsetx: 10,
6
8
  offsety: 10,
7
- width: 900,
8
- height: 600
9
+ width: 900,
10
+ height: 600
9
11
  },
10
12
  role: {
11
13
  font: "'Roboto Condensed', sans-serif",
12
14
  border: '#3c4260',
13
- fill: '#dcd7d7',
14
- radius: 2,
15
+ fill: '#dcd7d7',
16
+ radius: 2,
15
17
  spacing: 100,
16
- width: 100,
17
- height: 55,
18
- line: 3,
18
+ width: 100,
19
+ height: 55,
20
+ line: 3
19
21
  },
20
22
  message: {
21
23
  color: '#3c4260',
@@ -23,10 +25,10 @@ module Markdoc
23
25
  size: 11,
24
26
  spacing: 40,
25
27
  offset: 100, # from top
26
- line: 3,
28
+ line: 3,
27
29
  dash: '4,2'
28
30
  }
29
- }
31
+ }.freeze
30
32
 
31
33
  def self.draw(code)
32
34
  diagram = Diagram.new(code)
@@ -60,8 +62,8 @@ module Markdoc
60
62
  self.font = args[:ui][:font]
61
63
  end
62
64
 
63
- def <=> o
64
- column <=> o.column
65
+ def <=>(other)
66
+ column <=> other.column
65
67
  end
66
68
 
67
69
  def type
@@ -80,11 +82,11 @@ module Markdoc
80
82
  end
81
83
 
82
84
  def center
83
- x + width/2
85
+ x + width / 2
84
86
  end
85
87
 
86
88
  def x
87
- offsetx + column*(width + spacing)
89
+ offsetx + column * (width + spacing)
88
90
  end
89
91
 
90
92
  def y
@@ -95,18 +97,18 @@ module Markdoc
95
97
  elements = []
96
98
  case type
97
99
  when :actor
98
- elements << %Q[<g transform="translate(#{x+10},0)"><path d="M74,64 a30,30 0 0,0 -27,-27 a16,18 0 1,0 -16,0 a30,30 0, 0,0 -27,27 z" stroke-width="#{line}" fill="#{fill}" stroke="#{border}"/></g>]
99
- elements << %Q[<text x="#{x+46-2*id.size}" y="#{y+height-5}" font-family="#{font}" font-size="12" fill="#{border}">#{id}</text>]
100
+ elements << %[<g transform="translate(#{x + 10},0)"><path d="M74,64 a30,30 0 0,0 -27,-27 a16,18 0 1,0 -16,0 a30,30 0, 0,0 -27,27 z" stroke-width="#{line}" fill="#{fill}" stroke="#{border}"/></g>]
101
+ elements << %(<text x="#{x + 46 - 2 * id.size}" y="#{y + height - 5}" font-family="#{font}" font-size="12" fill="#{border}">#{id}</text>)
100
102
  else
101
- elements << %Q[<rect fill="#{fill}" stroke="#{border}" rx="#{radius}" ry="#{radius}" x="#{x}" y="#{y}" width="#{width}" height="#{height}" stroke-width="#{line}"/>]
102
- elements << %Q[<text x="#{x+10}" y="#{y+20}" font-family="#{font}" font-size="12" fill="#{border}">#{label}</text>]
103
+ elements << %(<rect fill="#{fill}" stroke="#{border}" rx="#{radius}" ry="#{radius}" x="#{x}" y="#{y}" width="#{width}" height="#{height}" stroke-width="#{line}"/>)
104
+ elements << %(<text x="#{x + 10}" y="#{y + 20}" font-family="#{font}" font-size="12" fill="#{border}">#{label}</text>)
103
105
  end
104
106
 
105
107
  x1 = center
106
108
  y1 = offsety + height
107
109
  x2 = center
108
110
  y2 = messages.last.y + 10
109
- elements << %Q[<line x1="#{x1}" y1="#{y1}" x2="#{x2}" y2="#{y2}" stroke="#{border}" stroke-width="#{line}"/>]
111
+ elements << %(<line x1="#{x1}" y1="#{y1}" x2="#{x2}" y2="#{y2}" stroke="#{border}" stroke-width="#{line}"/>)
110
112
 
111
113
  elements.join("\n")
112
114
  end
@@ -134,17 +136,19 @@ module Markdoc
134
136
  self.dash = args[:ui][:dash]
135
137
 
136
138
  if op.index('~')
137
- options << %Q[stroke-dasharray="#{dash}"]
139
+ options << %(stroke-dasharray="#{dash}")
138
140
  elsif op.index('-').nil?
139
- raise "Message direction must be one of ->, ~>, <-, <~"
141
+ raise 'Message direction must be one of ->, ~>, <-, <~'
140
142
  end
141
143
 
142
144
  if op.index('>')
143
- self.source, self.dest = args[:role1], args[:role2]
145
+ self.source = args[:role1]
146
+ self.dest = args[:role2]
144
147
  elsif op.index('<')
145
- self.source, self.dest = args[:role2], args[:role1]
148
+ self.source = args[:role2]
149
+ self.dest = args[:role1]
146
150
  else
147
- raise "Message direction must be one of ->, ~>, <-, <~"
151
+ raise 'Message direction must be one of ->, ~>, <-, <~'
148
152
  end
149
153
 
150
154
  source.messages << self
@@ -155,36 +159,35 @@ module Markdoc
155
159
  role1, role2 = *(source < dest ? [source, dest] : [dest, source])
156
160
  elements = []
157
161
 
162
+ x1 = role1.center
158
163
  if role1.eql?(role2)
159
- x1 = role1.center
160
164
  y1 = y
161
165
  x2 = x1 + 50
162
166
  y2 = y1 + spacing
163
167
 
164
- elements << %Q(<polyline points="#{x1},#{y1} #{x2},#{y1} #{x2},#{y2} #{x1+5},#{y2}" fill="none" stroke-width="2" stroke-linejoin="round" stroke="#{color}" #{options.join ' '}/>)
165
- elements << %Q(<polygon points="#{x1+10},#{y2-5} #{x1},#{y2} #{x1+10},#{y2+5}" fill="#{color}"/>)
166
- elements << %Q(<text x="#{x1+10}" y="#{y1-5}" font-family="#{font}" font-size="#{size}" fill="#{color}">#{label}</text>)
168
+ elements << %(<polyline points="#{x1},#{y1} #{x2},#{y1} #{x2},#{y2} #{x1 + 5},#{y2}" fill="none" stroke-width="2" stroke-linejoin="round" stroke="#{color}" #{options.join ' '}/>)
169
+ elements << %(<polygon points="#{x1 + 10},#{y2 - 5} #{x1},#{y2} #{x1 + 10},#{y2 + 5}" fill="#{color}"/>)
170
+ elements << %(<text x="#{x1 + 10}" y="#{y1 - 5}" font-family="#{font}" font-size="#{size}" fill="#{color}">#{label}</text>)
167
171
  else
168
- x1 = role1.center
169
172
  x2 = role2.center
170
173
 
171
174
  if role1 == source
172
175
  x2 -= 10
173
- elements << %Q(<polygon points="#{x2},#{y-5} #{x2+10},#{y} #{x2},#{y+5}" fill="#{color}"/>)
176
+ elements << %(<polygon points="#{x2},#{y - 5} #{x2 + 10},#{y} #{x2},#{y + 5}" fill="#{color}"/>)
174
177
  else
175
178
  x1 += 10
176
- elements << %Q(<polygon points="#{x1},#{y-5} #{x1-10},#{y} #{x1},#{y+5}" fill="#{color}"/>)
179
+ elements << %(<polygon points="#{x1},#{y - 5} #{x1 - 10},#{y} #{x1},#{y + 5}" fill="#{color}"/>)
177
180
  end
178
181
 
179
- elements << %Q(<line x1="#{x1}" y1="#{y}" x2="#{x2}" y2="#{y}" stroke="#{color}" stroke-width="2" #{options.join ' '}/>)
180
- elements << %Q(<text x="#{x1+40}" y="#{y-5}" font-family="#{font}" font-size="#{size}" fill="#{color}">#{label}</text>)
182
+ elements << %(<line x1="#{x1}" y1="#{y}" x2="#{x2}" y2="#{y}" stroke="#{color}" stroke-width="2" #{options.join ' '}/>)
183
+ elements << %(<text x="#{x1 + 40}" y="#{y - 5}" font-family="#{font}" font-size="#{size}" fill="#{color}">#{label}</text>)
181
184
 
182
- if comment.size > 0
185
+ if comment.size.positive?
183
186
  x = role2.prev.center + 15
184
- elements << %Q(<path fill="#eeeeee" d="M#{x2-30},#{y+1} L#{x2-30},#{y+10} H#{x} V#{y+2*spacing - 25} H#{x2} V#{y+10} H#{x2-20} z" />)
185
- elements << %Q(<text x="#{x+5}" y="#{y+23}" font-family="#{font}" font-size="#{size}" fill="#{color}">)
187
+ elements << %(<path fill="#eeeeee" d="M#{x2 - 30},#{y + 1} L#{x2 - 30},#{y + 10} H#{x} V#{y + 2 * spacing - 25} H#{x2} V#{y + 10} H#{x2 - 20} z" />)
188
+ elements << %(<text x="#{x + 5}" y="#{y + 23}" font-family="#{font}" font-size="#{size}" fill="#{color}">)
186
189
  split(comment).each_with_index do |line, i|
187
- elements << %Q(<tspan x="#{x+5}" y="#{y+23+13*i}">#{line}</tspan>)
190
+ elements << %(<tspan x="#{x + 5}" y="#{y + 23 + 13 * i}">#{line}</tspan>)
188
191
  end
189
192
  elements << '</text>'
190
193
  end
@@ -194,7 +197,7 @@ module Markdoc
194
197
  end
195
198
 
196
199
  def y
197
- offset + row*spacing
200
+ offset + row * spacing
198
201
  end
199
202
 
200
203
  private
@@ -210,10 +213,9 @@ module Markdoc
210
213
  line = word
211
214
  end
212
215
  end
213
- ary << line if line.length > 0
216
+ ary << line if line.length.positive?
214
217
  ary
215
218
  end
216
-
217
219
  end
218
220
 
219
221
  class Diagram
@@ -233,14 +235,14 @@ module Markdoc
233
235
  end
234
236
 
235
237
  def find(id)
236
- roles.detect{|role| role.id == id.strip} or raise("Non-declared role: #{id}")
238
+ roles.detect { |role| role.id == id.strip } or raise("Non-declared role: #{id}")
237
239
  end
238
240
 
239
241
  def parse
240
242
  input.split("\n").each do |line|
241
243
  next if line.strip.empty?
242
244
 
243
- if matches = line.match(/^(?<id>[a-zA-Z0-9_ \t]+) *= *(?<label>[a-zA-Z0-9_ \t]+)/)
245
+ if (matches = line.match(/^(?<id>[a-zA-Z0-9_ \t]+) *= *(?<label>[a-zA-Z0-9_ \t]+)/))
244
246
  # User = Actor
245
247
  roles << Role.new(
246
248
  id: matches[:id],
@@ -249,7 +251,7 @@ module Markdoc
249
251
  diagram: attributes[:diagram],
250
252
  ui: attributes[:role]
251
253
  )
252
- elsif matches = line.match(/^(?<role1>[a-zA-Z0-9_ \t]+) *(?<op>[<\-~>]{2}) *(?<role2>[a-zA-Z0-9_ \t]+):(?<label>[^#]+)#?(?<comment>.*)/)
254
+ elsif (matches = line.match(/^(?<role1>[a-zA-Z0-9_ \t]+) *(?<op>[<\-~>]{2}) *(?<role2>[a-zA-Z0-9_ \t]+):(?<label>[^#]+)#?(?<comment>.*)/))
253
255
  # User -> Web : Login
254
256
  messages << Message.new(
255
257
  role1: find(matches[:role1]),
@@ -263,8 +265,8 @@ module Markdoc
263
265
  )
264
266
  self.rows += 1
265
267
  # comment takes 1 more row
266
- self.rows += 1 if matches[:comment].length > 0
267
- elsif matches = line.match(/^(?<role>[a-zA-Z0-9_ \t]+) *:(?<label>[^#]+)#?(?<comment>.*)/)
268
+ self.rows += 1 if matches[:comment].length.positive?
269
+ elsif (matches = line.match(/^(?<role>[a-zA-Z0-9_ \t]+) *:(?<label>[^#]+)#?(?<comment>.*)/))
268
270
  # Web : Save the form
269
271
  messages << Message.new(
270
272
  role1: find(matches[:role]),
@@ -290,11 +292,7 @@ module Markdoc
290
292
  end
291
293
 
292
294
  def print
293
- template % {
294
- width: width,
295
- height: height,
296
- content: (roles + messages).map(&:print).join("\n")
297
- }
295
+ format(template, width: width, height: height, content: (roles + messages).map(&:print).join("\n"))
298
296
  end
299
297
 
300
298
  def height
@@ -311,13 +309,12 @@ module Markdoc
311
309
  private
312
310
 
313
311
  def template
314
- '<svg xmlns="http://www.w3.org/2000/svg" '+
315
- 'xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" '+
316
- 'width="%{width}" height="%{height}" '+
317
- 'viewBox="0 0 %{width} %{height}">'+
318
- '%{content}</svg>'
312
+ '<svg xmlns="http://www.w3.org/2000/svg" ' \
313
+ 'xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" ' \
314
+ 'width="%<width>s" height="%<height>s" ' \
315
+ 'viewBox="0 0 %<width>s %<height>s">' \
316
+ '%<content>s</svg>'
319
317
  end
320
-
321
318
  end
322
319
  end
323
320
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Markdoc
2
- VERSION = '1.2.1'
4
+ VERSION = '2.0.0'
3
5
  end
data/lib/markdoc.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'digest'
2
4
  require 'tempfile'
3
5
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: markdoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
- - Lkhagva Ochirkhuyag
7
+ - Ochirkhuyag.L
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-23 00:00:00.000000000 Z
11
+ date: 2022-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: polyglot
@@ -25,61 +25,61 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.3'
27
27
  - !ruby/object:Gem::Dependency
28
- name: redcarpet
28
+ name: pygments.rb
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '3.2'
33
+ version: '2.3'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '3.2'
40
+ version: '2.3'
41
41
  - !ruby/object:Gem::Dependency
42
- name: treetop
42
+ name: redcarpet
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.6'
47
+ version: '3.5'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.6'
54
+ version: '3.5'
55
55
  - !ruby/object:Gem::Dependency
56
- name: pygments.rb
56
+ name: treetop
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '1.6'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '1.6'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">"
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 10.0.0
75
+ version: '13.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">"
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 10.0.0
82
+ version: '13.0'
83
83
  description: Markdown with support for pseudocode to flowchart and sequence diagram
84
84
  generation
85
85
  email: ochkoo@gmail.com
@@ -113,14 +113,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - ">="
115
115
  - !ruby/object:Gem::Version
116
- version: 1.9.2
116
+ version: 2.7.6
117
117
  required_rubygems_version: !ruby/object:Gem::Requirement
118
118
  requirements:
119
119
  - - ">="
120
120
  - !ruby/object:Gem::Version
121
121
  version: '0'
122
122
  requirements: []
123
- rubygems_version: 3.0.3
123
+ rubygems_version: 3.1.6
124
124
  signing_key:
125
125
  specification_version: 4
126
126
  summary: Markdown to HTML converter with diagrams