ping 0.0.1 → 0.0.2
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.rb +1 -4
- data/lib/ping/mention.rb +36 -0
- data/lib/ping/parser.rb +15 -0
- data/lib/ping/version.rb +1 -1
- data/ping.gemspec +2 -2
- data/test/ping/mention_test.rb +22 -0
- data/test/ping/parser_test.rb +18 -0
- metadata +15 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2cc7737e01bee08f3abaee44f739b61293b21696
|
4
|
+
data.tar.gz: 91eb21315170088ccc7c87c6d3b060cac1b508df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21b1b06d39a3de9425cb465b4885ac70ec5125b272a5051f380b086ebe4359e6f4ed12d66162168950f78cf19e84662da9b7eaabdedbec9ce6632c6c1111a4f5
|
7
|
+
data.tar.gz: 7db2f21c90ec9af0cdc0c82a1f4d2ac1166cc2220c7cabdf20ded4f071b93d814b8005db9b06b93768998c66a780f46ab51fd8af1e7d575628ead97787950da3
|
data/lib/ping.rb
CHANGED
data/lib/ping/mention.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
module Ping
|
2
|
+
class Mention
|
3
|
+
attr_reader :username
|
4
|
+
|
5
|
+
PATTERN = /
|
6
|
+
(?:^|\W) # beginning of string or non-word char
|
7
|
+
@((?>[a-z0-9][a-z0-9-]*)) # @username
|
8
|
+
(?!\/) # without a trailing slash
|
9
|
+
(?=
|
10
|
+
\.+[ \t\W]| # dots followed by space or non-word character
|
11
|
+
\.+$| # dots at end of line
|
12
|
+
[^0-9a-zA-Z_.]| # non-word character except dot
|
13
|
+
$ # end of line
|
14
|
+
)
|
15
|
+
/ix
|
16
|
+
|
17
|
+
def initialize(username)
|
18
|
+
@username = username
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.extract(text)
|
22
|
+
text.scan(PATTERN).flatten.
|
23
|
+
map(&:downcase).uniq.map do |username|
|
24
|
+
self.new(username)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def ==(username)
|
29
|
+
username == self.username
|
30
|
+
end
|
31
|
+
|
32
|
+
def to_s
|
33
|
+
username
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/ping/parser.rb
ADDED
data/lib/ping/version.rb
CHANGED
data/ping.gemspec
CHANGED
@@ -19,8 +19,8 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.6"
|
22
|
-
spec.add_development_dependency "rake"
|
22
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
23
23
|
spec.add_development_dependency "minitest", "~> 5.0"
|
24
24
|
spec.add_development_dependency "shoulda-context", "~> 1.2"
|
25
|
-
spec.add_development_dependency "mocha"
|
25
|
+
spec.add_development_dependency "mocha", "~> 1.0"
|
26
26
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper.rb'
|
2
|
+
|
3
|
+
class Ping::MentionTest < MiniTest::Test
|
4
|
+
context "#==" do
|
5
|
+
should "compare with strings" do
|
6
|
+
mention = Ping::Mention.new("djreimer")
|
7
|
+
assert mention == "djreimer"
|
8
|
+
end
|
9
|
+
|
10
|
+
should "compare with mentions" do
|
11
|
+
mention = Ping::Mention.new("djreimer")
|
12
|
+
assert mention == Ping::Mention.new("djreimer")
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context "#to_s" do
|
17
|
+
should "return the username" do
|
18
|
+
mention = Ping::Mention.new("djreimer")
|
19
|
+
assert_equal "djreimer", mention.to_s
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper.rb'
|
2
|
+
|
3
|
+
class Ping::ParserTest < MiniTest::Test
|
4
|
+
context "#mentions" do
|
5
|
+
should "extract @mentions" do
|
6
|
+
text = "Hey there, @djreimer. How's @defunkt?"
|
7
|
+
parser = Ping::Parser.new(text)
|
8
|
+
assert parser.mentions.include?("djreimer")
|
9
|
+
assert parser.mentions.include?("defunkt")
|
10
|
+
end
|
11
|
+
|
12
|
+
should "de-dup mentions" do
|
13
|
+
text = "Hey there, @djreimer. How's @djreimer?"
|
14
|
+
parser = Ping::Parser.new(text)
|
15
|
+
assert_equal 1, parser.mentions.length
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Derrick Reimer
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
33
|
+
version: '10.0'
|
34
34
|
type: :development
|
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: '0'
|
40
|
+
version: '10.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -70,16 +70,16 @@ dependencies:
|
|
70
70
|
name: mocha
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
75
|
+
version: '1.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: '0'
|
82
|
+
version: '1.0'
|
83
83
|
description: A little library for parsing GitHub @mentions and issue references
|
84
84
|
email:
|
85
85
|
- derrickreimer@gmail.com
|
@@ -93,8 +93,12 @@ files:
|
|
93
93
|
- README.md
|
94
94
|
- Rakefile
|
95
95
|
- lib/ping.rb
|
96
|
+
- lib/ping/mention.rb
|
97
|
+
- lib/ping/parser.rb
|
96
98
|
- lib/ping/version.rb
|
97
99
|
- ping.gemspec
|
100
|
+
- test/ping/mention_test.rb
|
101
|
+
- test/ping/parser_test.rb
|
98
102
|
- test/test_helper.rb
|
99
103
|
homepage: https://github.com/codetree/ping
|
100
104
|
licenses:
|
@@ -121,5 +125,7 @@ signing_key:
|
|
121
125
|
specification_version: 4
|
122
126
|
summary: Parse @mentions and issue references
|
123
127
|
test_files:
|
128
|
+
- test/ping/mention_test.rb
|
129
|
+
- test/ping/parser_test.rb
|
124
130
|
- test/test_helper.rb
|
125
131
|
has_rdoc:
|