korekto 1.0.210306 → 1.4.210318
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/korekto +1 -1
- data/lib/korekto.rb +1 -1
- data/lib/korekto/main.rb +7 -4
- data/lib/korekto/statement.rb +7 -7
- data/lib/korekto/symbols.rb +7 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ebe8d20d5b0f785dab1f984276491bf452941f3ded713c07fe11707af9cbe501
|
4
|
+
data.tar.gz: e5b861d5be1dc2e1595bfa47a34186922a3eb3867295b5b41eafab8204941516
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c682441f95e8bf3b149085946a0f8cc44665b46cfdcfd6acbf87654f19a70a28c7ac03a6b82bd8a0f98a3d7db5c328364ef0597aeb2b1c2b1da0a54498f19d60
|
7
|
+
data.tar.gz: a0b41a23ea9302ee486952c49e088a7651f7d08d694385f8417f398482724217f4ab254fb6cdbf31d48f4946ef4ed76d070cf86bd4f2ed0d2588a4cf3ebdee20
|
data/bin/korekto
CHANGED
data/lib/korekto.rb
CHANGED
data/lib/korekto/main.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Korekto
|
2
2
|
class Main
|
3
|
-
MD_STATEMENT_CODE_TITLE = %r{^(?<statement>.*)\s#(?<code>[A-Z](\d+(/[\w,.]+)?)?)( (?<title>\S.*?\S))?$}
|
3
|
+
MD_STATEMENT_CODE_TITLE = %r{^(?<statement>.*)\s#(?<code>[A-Z](\d+(\.\w+)?(/[\w,.]+)?)?)( (?<title>\S.*?\S))?$}
|
4
4
|
MD_FILENAME = %r{^< (?<filename>[/\w\-.]+)$}
|
5
5
|
MD_KLASS_METHOD_DEFINITION = /^(?<klass>::[A-Z]\w+)#(?<method>\w+)(?<definition>[^=]*=.+)$/ # patch
|
6
6
|
MD_RULE = /^[?] (?<rule>\S.*)$/
|
@@ -15,8 +15,9 @@ class Main
|
|
15
15
|
|
16
16
|
def initialize(filename='-', statements: Statements.new, imports: [])
|
17
17
|
@filename,@statements,@imports = filename,statements,imports
|
18
|
-
@imports.push @filename
|
18
|
+
@imports.push @filename.freeze
|
19
19
|
@line,@active = nil,false
|
20
|
+
@section = File.basename(@filename,'.*')
|
20
21
|
@m_fence_korekto = /^```korekto$/
|
21
22
|
end
|
22
23
|
|
@@ -65,6 +66,8 @@ class Main
|
|
65
66
|
@statements.symbols.set_scanner value
|
66
67
|
when 'fence'
|
67
68
|
@m_fence_korekto = Regexp.new "^```#{value}$"
|
69
|
+
when 'section'
|
70
|
+
@section = value
|
68
71
|
when 'save'
|
69
72
|
BACKUPS[value] = Marshal.dump(@statements)
|
70
73
|
when 'restore'
|
@@ -113,7 +116,7 @@ class Main
|
|
113
116
|
code,title = @statements.add(md[:statement].strip,
|
114
117
|
md[:code],
|
115
118
|
md[:title],
|
116
|
-
@
|
119
|
+
@section,
|
117
120
|
statement_number)
|
118
121
|
puts "#{@filename}:#{line_number}:#{code}:#{title}"
|
119
122
|
else
|
@@ -122,7 +125,7 @@ class Main
|
|
122
125
|
rescue Error
|
123
126
|
puts "#{@filename}:#{line_number}:!:#{$!.message}"
|
124
127
|
exit 65
|
125
|
-
rescue
|
128
|
+
rescue Exception
|
126
129
|
puts "#{@filename}:#{line_number}:?:#{$!.message}"
|
127
130
|
$stderr.puts $!.backtrace
|
128
131
|
exit 1
|
data/lib/korekto/statement.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
module Korekto
|
2
2
|
class Statement
|
3
|
-
attr_reader :code,:title,:regexp,:
|
4
|
-
def initialize(statement,code,title,
|
5
|
-
@statement,@code,@title,@statement_number,@context =
|
6
|
-
|
7
|
-
@statement.freeze; @
|
8
|
-
syntax_check
|
3
|
+
attr_reader :code,:title,:regexp,:section,:statement_number
|
4
|
+
def initialize(statement,code,title,section,statement_number,context)
|
5
|
+
@statement,@code,@title,@section,@statement_number,@context =
|
6
|
+
statement,code,title,section,statement_number,context
|
7
|
+
@statement.freeze; @section.freeze; @statement_number.freeze
|
8
|
+
syntax_check unless @statement[0]=='/' and @statement[-1]=='/' and ['A','L','M','E','I'].include?(@code[0])
|
9
9
|
@regexp = nil
|
10
10
|
set_acceptance_code
|
11
11
|
@code.freeze; @title.freeze; @regexp.freeze
|
@@ -73,6 +73,7 @@ class Statement
|
|
73
73
|
|
74
74
|
def set_statement(support=nil, title=nil)
|
75
75
|
@code = "#{@code[0]}#{@statement_number}"
|
76
|
+
@code += '.' + @section unless @section=='-'
|
76
77
|
@code += "/#{support}" if support
|
77
78
|
@title = title.split(':',2).first if title
|
78
79
|
end
|
@@ -81,7 +82,6 @@ class Statement
|
|
81
82
|
support = []
|
82
83
|
s.each do |s|
|
83
84
|
c = s.code.split('/',2)[0]
|
84
|
-
c = s.filename+'.'+c unless s.filename=='-'
|
85
85
|
support.push(c)
|
86
86
|
end
|
87
87
|
return support.join(',')
|
data/lib/korekto/symbols.rb
CHANGED
@@ -36,13 +36,13 @@ class Symbols
|
|
36
36
|
if statement[0]=='/' and statement[-1]=='/'
|
37
37
|
Regexp.new(statement[1..-2])
|
38
38
|
else
|
39
|
-
pattern,count,seen = '
|
40
|
-
|
39
|
+
pattern,count,seen = '\A',0,{}
|
40
|
+
statement.scan(@scanner) do |v|
|
41
41
|
if n=seen[v]
|
42
42
|
pattern << '\\'+n
|
43
43
|
elsif type = @v2t[v]
|
44
44
|
regex = @t2p[type]
|
45
|
-
if
|
45
|
+
if type[0]=='.'
|
46
46
|
pattern << regex
|
47
47
|
else
|
48
48
|
count += 1
|
@@ -50,14 +50,15 @@ class Symbols
|
|
50
50
|
pattern << '('+regex+')'
|
51
51
|
end
|
52
52
|
else
|
53
|
-
#
|
54
|
-
|
53
|
+
# Escape Regexp specials
|
54
|
+
v = Regexp.quote v
|
55
|
+
# To avoid collisions with back-references, isolate digit in square brackets:
|
55
56
|
'0123456789'.include?(_=v[0]) and v[0]='['+_+']'
|
56
57
|
pattern << v
|
57
58
|
end
|
58
59
|
end
|
59
60
|
raise Error, 'pattern with no captures' if count < 1
|
60
|
-
pattern << '
|
61
|
+
pattern << '\Z'
|
61
62
|
Regexp.new(pattern)
|
62
63
|
end
|
63
64
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: korekto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.210318
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- carlosjhr64
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-03-
|
11
|
+
date: 2021-03-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: help_parser
|