ping 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|