sarnesjo-twhere 0.0.11 → 0.0.12
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.
- data/Rakefile +1 -1
- data/VERSION.yml +1 -1
- data/lib/twhere.rb +4 -4
- data/spec/hashtags_spec.rb +60 -0
- metadata +2 -2
- data/spec/hashtag_spec.rb +0 -55
data/Rakefile
CHANGED
data/VERSION.yml
CHANGED
data/lib/twhere.rb
CHANGED
@@ -3,8 +3,8 @@ require 'erb'
|
|
3
3
|
require 'twitter'
|
4
4
|
|
5
5
|
module TwhereHelperMethods
|
6
|
-
def
|
7
|
-
|
6
|
+
def hashtags(str)
|
7
|
+
str.scan(/#([A-Za-z0-9]+)/).flatten.uniq
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
@@ -34,8 +34,8 @@ class Twhere
|
|
34
34
|
# group tweets by location
|
35
35
|
@located_tweets = {}
|
36
36
|
@tweets.each do |t|
|
37
|
-
|
38
|
-
|
37
|
+
located_hashtags = hashtags(t[:text]) & @locations.keys
|
38
|
+
located_hashtags.each do |ht|
|
39
39
|
@located_tweets[ht] ||= []
|
40
40
|
@located_tweets[ht] << t
|
41
41
|
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
$:.unshift(File.dirname(__FILE__))
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe 'hashtags method' do
|
5
|
+
include TwhereHelperMethods
|
6
|
+
|
7
|
+
it 'should return empty array when there are no hashtags' do
|
8
|
+
hashtags('').should == []
|
9
|
+
hashtags('a').should == []
|
10
|
+
hashtags('#').should == []
|
11
|
+
hashtags('##').should == []
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should find hashtags containing only lowercase letters' do
|
15
|
+
hashtags('#a').should == ['a']
|
16
|
+
hashtags('#aa').should == ['aa']
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should find hashtags containing only uppercase letters' do
|
20
|
+
hashtags('#A').should == ['A']
|
21
|
+
hashtags('#AA').should == ['AA']
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should find hashtags containing only digits' do
|
25
|
+
hashtags('#1').should == ['1']
|
26
|
+
hashtags('#11').should == ['11']
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should find hashtags containing mixed character classes' do
|
30
|
+
hashtags('#aA').should == ['aA']
|
31
|
+
hashtags('#Aa').should == ['Aa']
|
32
|
+
hashtags('#a1').should == ['a1']
|
33
|
+
hashtags('#1a').should == ['1a']
|
34
|
+
hashtags('#A1').should == ['A1']
|
35
|
+
hashtags('#1A').should == ['1A']
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should find hashtags in text' do
|
39
|
+
hashtags('a #b').should == ['b']
|
40
|
+
hashtags('#a b').should == ['a']
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'should return all hashtags found' do
|
44
|
+
hashtags('#a #b').should == ['a', 'b']
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'should only return each hashtag once' do
|
48
|
+
hashtags('#a #a').should == ['a']
|
49
|
+
hashtags('#a #a #b').should == ['a', 'b']
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'should not include punctuation in hashtags' do
|
53
|
+
hashtags('#a.').should == ['a']
|
54
|
+
hashtags('#a,').should == ['a']
|
55
|
+
hashtags('#a:').should == ['a']
|
56
|
+
hashtags('#a;').should == ['a']
|
57
|
+
hashtags('#a!').should == ['a']
|
58
|
+
hashtags('#a?').should == ['a']
|
59
|
+
end
|
60
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sarnesjo-twhere
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Jesper S\xC3\xA4rnesj\xC3\xB6"
|
@@ -68,6 +68,6 @@ signing_key:
|
|
68
68
|
specification_version: 3
|
69
69
|
summary: Twitter/Google Maps mashup
|
70
70
|
test_files:
|
71
|
-
- spec/
|
71
|
+
- spec/hashtags_spec.rb
|
72
72
|
- spec/spec_helper.rb
|
73
73
|
- spec/twhere_spec.rb
|
data/spec/hashtag_spec.rb
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
$:.unshift(File.dirname(__FILE__))
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
describe 'hashtag method' do
|
5
|
-
include TwhereHelperMethods
|
6
|
-
|
7
|
-
it 'should return nil when there are no hashtags' do
|
8
|
-
hashtag('').should == nil
|
9
|
-
hashtag('a').should == nil
|
10
|
-
hashtag('#').should == nil
|
11
|
-
hashtag('##').should == nil
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'should find hashtags containing only lowercase letters' do
|
15
|
-
hashtag('#a').should == 'a'
|
16
|
-
hashtag('#aa').should == 'aa'
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'should find hashtags containing only uppercase letters' do
|
20
|
-
hashtag('#A').should == 'A'
|
21
|
-
hashtag('#AA').should == 'AA'
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'should find hashtags containing only digits' do
|
25
|
-
hashtag('#1').should == '1'
|
26
|
-
hashtag('#11').should == '11'
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'should find hashtags containing mixed character classes' do
|
30
|
-
hashtag('#aA').should == 'aA'
|
31
|
-
hashtag('#Aa').should == 'Aa'
|
32
|
-
hashtag('#a1').should == 'a1'
|
33
|
-
hashtag('#1a').should == '1a'
|
34
|
-
hashtag('#A1').should == 'A1'
|
35
|
-
hashtag('#1A').should == '1A'
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'should find hashtags in text' do
|
39
|
-
hashtag('a #b').should == 'b'
|
40
|
-
hashtag('#a b').should == 'a'
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'should return the first hashtag found' do
|
44
|
-
hashtag('#a #b').should == 'a'
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'should not include punctuation in hashtags' do
|
48
|
-
hashtag('#a.').should == 'a'
|
49
|
-
hashtag('#a,').should == 'a'
|
50
|
-
hashtag('#a:').should == 'a'
|
51
|
-
hashtag('#a;').should == 'a'
|
52
|
-
hashtag('#a!').should == 'a'
|
53
|
-
hashtag('#a?').should == 'a'
|
54
|
-
end
|
55
|
-
end
|