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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d9e776c8818e83557e8e288e05b9028201103602
4
- data.tar.gz: db20df9a0ce148d9f1fa3a8331bb02e15d351032
3
+ metadata.gz: 2cc7737e01bee08f3abaee44f739b61293b21696
4
+ data.tar.gz: 91eb21315170088ccc7c87c6d3b060cac1b508df
5
5
  SHA512:
6
- metadata.gz: 7be9de0484ead652cf43a5cb86eac935fef1607049869e10bc43f9fb86ef1cc52f27b85db1dd9a981e356708838b2c5b4e23361a50d8a1d8b909c5c22746f788
7
- data.tar.gz: 101221edaf7484d6f87cc7c0d1feec99dd9dd83c39b0949fce6dfa45c430834aaad355cc60ef715c7edb3d3ae249393925b258ceff8441ca58cf63c82760af31
6
+ metadata.gz: 21b1b06d39a3de9425cb465b4885ac70ec5125b272a5051f380b086ebe4359e6f4ed12d66162168950f78cf19e84662da9b7eaabdedbec9ce6632c6c1111a4f5
7
+ data.tar.gz: 7db2f21c90ec9af0cdc0c82a1f4d2ac1166cc2220c7cabdf20ded4f071b93d814b8005db9b06b93768998c66a780f46ab51fd8af1e7d575628ead97787950da3
data/lib/ping.rb CHANGED
@@ -1,5 +1,2 @@
1
1
  require "ping/version"
2
-
3
- module Ping
4
- # Your code goes here...
5
- end
2
+ require "ping/parser"
@@ -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
@@ -0,0 +1,15 @@
1
+ require "ping/mention"
2
+
3
+ module Ping
4
+ class Parser
5
+ attr_reader :text
6
+
7
+ def initialize(text = nil)
8
+ @text = text.to_s
9
+ end
10
+
11
+ def mentions
12
+ Ping::Mention.extract(text)
13
+ end
14
+ end
15
+ end
data/lib/ping/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Ping
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
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.1
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: