ping 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ping/issue.rb +4 -4
- data/lib/ping/version.rb +1 -1
- data/test/ping/parser_test.rb +115 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d4873e809919a2dbae3e2ba7f759413002d7fc1
|
4
|
+
data.tar.gz: 6ec66bdfb0f99f3c7ead5a27aea970774e4219f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d459bf0d42d17e01400201fd9a56443ab0b2d5831377479a313b0152623eaac4e6af1cab3ce403fb782b5b7bac4238fcd12760aa627cb78d6a6316b421bb7d80
|
7
|
+
data.tar.gz: 20a8203520a10bf9be20a97c1c0b6571aebfb4c0fd2cc55a90e181d7eb5fca3578f92e71a441fe56a4b3983ec6e566758d87c808f6c9f3da1c43b82995deb70a
|
data/lib/ping/issue.rb
CHANGED
@@ -7,13 +7,13 @@ module Ping
|
|
7
7
|
need|needs|needed|require|requires|required
|
8
8
|
/ix
|
9
9
|
|
10
|
-
RepositoryName = /[a-z0-9][a-z0-9-]*\/[a-z0-9][a-z0-9
|
10
|
+
RepositoryName = /[a-z0-9][a-z0-9-]*\/[a-z0-9][a-z0-9\-_]*/
|
11
11
|
|
12
12
|
Pattern = /
|
13
13
|
(?:^|\W) # beginning of string or non-word char
|
14
14
|
(?:(#{Qualifiers})(?:\s))? # qualifier (optional)
|
15
|
-
(#{RepositoryName})?
|
16
|
-
|
15
|
+
(?:(#{RepositoryName})? # repository name (optional)
|
16
|
+
\#|(?:GH\-))(\d+) # issue number
|
17
17
|
(?=
|
18
18
|
\.+[ \t\W]| # dots followed by space or non-word character
|
19
19
|
\.+$| # dots at end of line
|
@@ -22,7 +22,7 @@ module Ping
|
|
22
22
|
)
|
23
23
|
/ix
|
24
24
|
|
25
|
-
# See http://rubular.com/r/
|
25
|
+
# See http://rubular.com/r/bb7Ks0JK9l now http://rubular.com/r/evB7RlvUfI
|
26
26
|
|
27
27
|
def initialize(qualifier, repository, number)
|
28
28
|
@qualifier = qualifier
|
data/lib/ping/version.rb
CHANGED
data/test/ping/parser_test.rb
CHANGED
@@ -81,6 +81,15 @@ class Ping::ParserTest < MiniTest::Test
|
|
81
81
|
assert_equal "43", issue.number
|
82
82
|
end
|
83
83
|
|
84
|
+
should "handle odd repository names" do
|
85
|
+
text = "giant-sequoia-123/scaling_octokitten#43"
|
86
|
+
parser = Ping::Parser.new(text)
|
87
|
+
issue = parser.issues.first
|
88
|
+
|
89
|
+
assert_equal "giant-sequoia-123/scaling_octokitten", issue.repository
|
90
|
+
assert_equal "43", issue.number
|
91
|
+
end
|
92
|
+
|
84
93
|
should "extract multiple references" do
|
85
94
|
text = "You should look at #2 and #4 because #5 fixes codetree/codetree#6"
|
86
95
|
parser = Ping::Parser.new(text)
|
@@ -121,4 +130,110 @@ class Ping::ParserTest < MiniTest::Test
|
|
121
130
|
assert_equal "43", issue.number
|
122
131
|
end
|
123
132
|
end
|
133
|
+
|
134
|
+
context "GH-issues" do
|
135
|
+
should "extract single issue references" do
|
136
|
+
text = "See GH-43"
|
137
|
+
parser = Ping::Parser.new(text)
|
138
|
+
issue = parser.issues.first
|
139
|
+
|
140
|
+
assert_equal nil, issue.qualifier
|
141
|
+
assert_equal nil, issue.repository
|
142
|
+
assert_equal "43", issue.number
|
143
|
+
end
|
144
|
+
|
145
|
+
should "extract lower case issue references" do
|
146
|
+
text = "See gh-43"
|
147
|
+
parser = Ping::Parser.new(text)
|
148
|
+
issue = parser.issues.first
|
149
|
+
|
150
|
+
assert_equal nil, issue.qualifier
|
151
|
+
assert_equal nil, issue.repository
|
152
|
+
assert_equal "43", issue.number
|
153
|
+
end
|
154
|
+
|
155
|
+
should "extract single issue references followed by a period" do
|
156
|
+
text = "See GH-43."
|
157
|
+
parser = Ping::Parser.new(text)
|
158
|
+
issue = parser.issues.first
|
159
|
+
|
160
|
+
assert_equal nil, issue.qualifier
|
161
|
+
assert_equal nil, issue.repository
|
162
|
+
assert_equal "43", issue.number
|
163
|
+
end
|
164
|
+
|
165
|
+
should "extract close qualifiers" do
|
166
|
+
%w{fix fixes fixed close closes closed resolve resolves resolved}.each do |q|
|
167
|
+
text = "#{q} GH-55"
|
168
|
+
parser = Ping::Parser.new(text)
|
169
|
+
issue = parser.issues.first
|
170
|
+
|
171
|
+
assert_equal q, issue.qualifier
|
172
|
+
assert_equal nil, issue.repository
|
173
|
+
assert_equal "55", issue.number
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
should "extract dependency qualifiers" do
|
178
|
+
%w{need needs needed require requires required}.each do |q|
|
179
|
+
text = "#{q} GH-123"
|
180
|
+
parser = Ping::Parser.new(text)
|
181
|
+
issue = parser.issues.first
|
182
|
+
|
183
|
+
assert_equal q, issue.qualifier
|
184
|
+
assert_equal nil, issue.repository
|
185
|
+
assert_equal "123", issue.number
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
should "extract multiple references" do
|
190
|
+
text = "You should look at GH-2 and GH-4 because GH-5 fixes codetree/codetree#6"
|
191
|
+
parser = Ping::Parser.new(text)
|
192
|
+
|
193
|
+
assert parser.issues.include?(2)
|
194
|
+
assert parser.issues.include?(4)
|
195
|
+
assert parser.issues.include?(5)
|
196
|
+
assert parser.issues.include?(6)
|
197
|
+
end
|
198
|
+
|
199
|
+
should "not extract similar non-qualifiers" do
|
200
|
+
text = "afixes GH-43"
|
201
|
+
parser = Ping::Parser.new(text)
|
202
|
+
issue = parser.issues.first
|
203
|
+
|
204
|
+
assert_equal nil, issue.qualifier
|
205
|
+
assert_equal nil, issue.repository
|
206
|
+
assert_equal "43", issue.number
|
207
|
+
end
|
208
|
+
|
209
|
+
should "not choke on case" do
|
210
|
+
text = "FIxEs GH-43"
|
211
|
+
parser = Ping::Parser.new(text)
|
212
|
+
issue = parser.issues.first
|
213
|
+
|
214
|
+
assert_equal "FIxEs", issue.qualifier
|
215
|
+
assert_equal nil, issue.repository
|
216
|
+
assert_equal "43", issue.number
|
217
|
+
end
|
218
|
+
|
219
|
+
should "require only one space between qualifier and issue" do
|
220
|
+
text = "fixes GH-43"
|
221
|
+
parser = Ping::Parser.new(text)
|
222
|
+
issue = parser.issues.first
|
223
|
+
|
224
|
+
assert_equal nil, issue.qualifier
|
225
|
+
assert_equal nil, issue.repository
|
226
|
+
assert_equal "43", issue.number
|
227
|
+
end
|
228
|
+
|
229
|
+
should "require at least one space before GH" do
|
230
|
+
text = "fixes codetree/codetreeGH-99 and fixes GH-43"
|
231
|
+
parser = Ping::Parser.new(text)
|
232
|
+
issue = parser.issues.first
|
233
|
+
|
234
|
+
assert_equal "fixes", issue.qualifier
|
235
|
+
assert_equal nil, issue.repository
|
236
|
+
assert_equal "43", issue.number
|
237
|
+
end
|
238
|
+
end
|
124
239
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ping
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Derrick Reimer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|