atig 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/docs/options.rst +5 -0
- data/lib/atig/agent/timeline.rb +9 -2
- data/lib/atig/ifilter/expand_url.rb +32 -22
- data/lib/atig/version.rb +1 -1
- data/spec/command/destroy_spec.rb +3 -3
- data/spec/command/favorite_spec.rb +1 -1
- data/spec/command/limit_spec.rb +3 -3
- data/spec/command/option_spec.rb +16 -16
- data/spec/command/reply_spec.rb +1 -1
- data/spec/command/retweet_spec.rb +4 -4
- data/spec/command/thread_spec.rb +3 -3
- data/spec/command/time_spec.rb +3 -3
- data/spec/command/user_info_spec.rb +4 -4
- data/spec/command/version_spec.rb +7 -7
- data/spec/command/whois_spec.rb +14 -14
- data/spec/command_helper.rb +4 -4
- data/spec/db/sized_uniq_array_spec.rb +2 -2
- data/spec/ifilter/expand_url_spec.rb +23 -2
- data/spec/ifilter/sid_spec.rb +2 -2
- data/spec/ifilter/tid_spec.rb +2 -2
- data/spec/ofilter/escape_url_spec.rb +2 -2
- data/spec/ofilter/short_url_spec.rb +19 -19
- data/spec/spec_helper.rb +7 -7
- data/spec/update_checker_spec.rb +10 -10
- metadata +25 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f52437a64db888b7a72bfcb418fdfe62222e0380
|
4
|
+
data.tar.gz: 064c715ba416098c2602455f2d637f662a63b06d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d7094055345ec00bebe4b8a2ea7a8f36c26500dfc8530c9fc25c5d8d353c584209dd11c25b66b921c1d76b5e3e6f14bdc85c0a3176e1458806a7813963754ec
|
7
|
+
data.tar.gz: 28ecc6f10e97b88ffd6215d9c6e1688a9a4572edbeda0479a526fde67c33f97d4d81aec4d958e53f8f191d6909a4803fade7e0b3d876fb5041c71c62ad872413
|
data/docs/options.rst
CHANGED
@@ -36,12 +36,17 @@ only
|
|
36
36
|
|
37
37
|
発言関連
|
38
38
|
------------------------------
|
39
|
+
stream
|
40
|
+
`UserStream`_ を有効にします。
|
41
|
+
実行中の変更には対応していません。
|
39
42
|
footer=\ ``footer``
|
40
43
|
発言の末尾に、 ``footer`` を追加します。
|
41
44
|
ただし ``footer`` がfalseの場合は、追加しません。
|
42
45
|
old_style_reply
|
43
46
|
@nickで始まる発言が、@nick の最新の発言へのreplyとなるモードに切り替えます。
|
44
47
|
|
48
|
+
.. _UserStream: https://dev.twitter.com/docs/streaming-apis/streams/user
|
49
|
+
|
45
50
|
URL短縮関係
|
46
51
|
------------------------------
|
47
52
|
|
data/lib/atig/agent/timeline.rb
CHANGED
@@ -4,11 +4,18 @@ require 'atig/agent/agent'
|
|
4
4
|
module Atig
|
5
5
|
module Agent
|
6
6
|
class Timeline < Atig::Agent::Agent
|
7
|
+
DEFAULT_INTERVAL = 60
|
8
|
+
|
7
9
|
def initialize(context, api, db)
|
8
|
-
|
10
|
+
@opts = context.opts
|
11
|
+
return if @opts.stream
|
9
12
|
super
|
10
13
|
end
|
11
|
-
|
14
|
+
|
15
|
+
def interval
|
16
|
+
@interval ||= @opts.interval.nil? ? DEFAULT_INTERVAL : @opts.interval.to_i
|
17
|
+
end
|
18
|
+
|
12
19
|
def path; '/statuses/home_timeline' end
|
13
20
|
def source; :timeline end
|
14
21
|
end
|
@@ -16,33 +16,43 @@ module Atig
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def call(status)
|
19
|
-
target =
|
20
|
-
|
21
|
-
else
|
22
|
-
%r{
|
23
|
-
http:// (?:
|
24
|
-
(?: bit\.ly | (?: tin | rub) yurl\.com | j\.mp | t\.co
|
25
|
-
| htn.to
|
26
|
-
| is\.gd | cli\.gs | tr\.im | u\.nu | airme\.us
|
27
|
-
| ff\.im | twurl.nl | bkite\.com | tumblr\.com
|
28
|
-
| pic\.gd | sn\.im | digg\.com | goo\.gl)
|
29
|
-
/ [0-9a-z=-]+ |
|
30
|
-
blip\.fm/~ (?> [0-9a-z]+) (?! /) |
|
31
|
-
flic\.kr/[a-z0-9/]+
|
32
|
-
)
|
33
|
-
}ix
|
34
|
-
end
|
35
|
-
|
19
|
+
target = short_url_regexp
|
20
|
+
entities = status.entities
|
36
21
|
status.merge :text => status.text.gsub(target) {|url|
|
37
|
-
|
38
|
-
|
39
|
-
x
|
40
|
-
else
|
41
|
-
@cache[url] = resolve_http_redirect(URI(url)).to_s || url
|
22
|
+
unless entities.nil? or (entities = entities.urls).empty?
|
23
|
+
@cache[url] ||= search_url_from_entities(url, entities)
|
42
24
|
end
|
25
|
+
@cache[url] ||= resolve_http_redirect(URI(url)).to_s || url
|
43
26
|
}
|
44
27
|
end
|
45
28
|
|
29
|
+
private
|
30
|
+
|
31
|
+
def short_url_regexp
|
32
|
+
return URI.regexp(%w[http https]) if @opts.untiny_whole_urls
|
33
|
+
%r{
|
34
|
+
https?:// (?:
|
35
|
+
(?: bit\.ly | (?: tin | rub) yurl\.com | j\.mp | t\.co
|
36
|
+
| htn.to
|
37
|
+
| is\.gd | cli\.gs | tr\.im | u\.nu | airme\.us
|
38
|
+
| ff\.im | twurl.nl | bkite\.com | tumblr\.com
|
39
|
+
| pic\.gd | sn\.im | digg\.com | goo\.gl)
|
40
|
+
/ [0-9a-z=-]+ |
|
41
|
+
blip\.fm/~ (?> [0-9a-z]+) (?! /) |
|
42
|
+
flic\.kr/[a-z0-9/]+
|
43
|
+
)
|
44
|
+
}ix
|
45
|
+
end
|
46
|
+
|
47
|
+
def search_url_from_entities(url, entities)
|
48
|
+
expanded_url = nil
|
49
|
+
entities.reject! do |entity|
|
50
|
+
entity.url == url &&
|
51
|
+
(expanded_url = entity.expanded_url)
|
52
|
+
end
|
53
|
+
expanded_url
|
54
|
+
end
|
55
|
+
|
46
56
|
def resolve_http_redirect(uri, limit = 3)
|
47
57
|
return uri if limit.zero? or uri.nil?
|
48
58
|
log :debug, uri.inspect
|
data/lib/atig/version.rb
CHANGED
@@ -12,7 +12,7 @@ describe Atig::Command::Destroy,"when status is not removed" do
|
|
12
12
|
|
13
13
|
it "should specified other's status" do
|
14
14
|
entry = entry user(2,'other'), status('blah blah', 'id'=>'1')
|
15
|
-
@statuses.stub
|
15
|
+
@statuses.stub(:find_by_tid).with('b').and_return(entry)
|
16
16
|
|
17
17
|
@channel.should_receive(:notify).with("The status you specified by the ID tid is not yours.")
|
18
18
|
call "#twitter","destory",%w(b)
|
@@ -27,7 +27,7 @@ describe Atig::Command::Destroy,"when remove recently tweet" do
|
|
27
27
|
|
28
28
|
target = status 'blah blah', 'id'=>'1'
|
29
29
|
entry = entry @me, target,'entry',1
|
30
|
-
@res =
|
30
|
+
@res = double 'res'
|
31
31
|
|
32
32
|
stub_status(:find_by_tid,'a' => entry)
|
33
33
|
stub_status(:find_by_sid,'mzp:a' => entry)
|
@@ -71,7 +71,7 @@ describe Atig::Command::Destroy,"when remove old tweet" do
|
|
71
71
|
|
72
72
|
target = status 'blah blah', 'id'=>'1'
|
73
73
|
entry = entry @me, target,'entry',1
|
74
|
-
@res =
|
74
|
+
@res = double 'res'
|
75
75
|
|
76
76
|
stub_status(:find_by_tid,'a' => entry)
|
77
77
|
stub_status(:find_by_sid,'mzp:a' => entry)
|
data/spec/command/limit_spec.rb
CHANGED
@@ -9,9 +9,9 @@ describe Atig::Command::Limit do
|
|
9
9
|
before do
|
10
10
|
@reset = ::Time.utc(2010,9,25,8,24,12)
|
11
11
|
@command = init Atig::Command::Limit
|
12
|
-
@api.stub
|
13
|
-
@api.stub
|
14
|
-
@api.stub
|
12
|
+
@api.stub(:limit).and_return(150)
|
13
|
+
@api.stub(:remain).and_return(148)
|
14
|
+
@api.stub(:reset).and_return(@reset)
|
15
15
|
end
|
16
16
|
|
17
17
|
it "should provide limit command" do
|
data/spec/command/option_spec.rb
CHANGED
@@ -24,14 +24,14 @@ describe Atig::Command::Option, 'when have many property' do
|
|
24
24
|
@opts.foo2 = 42
|
25
25
|
@opts.foo3 = 42.1
|
26
26
|
|
27
|
-
@opts.stub
|
28
|
-
@opts.stub
|
29
|
-
@opts.stub
|
27
|
+
@opts.stub(:foo1=)
|
28
|
+
@opts.stub(:foo2=)
|
29
|
+
@opts.stub(:foo3=)
|
30
30
|
end
|
31
31
|
|
32
32
|
it "should list up values" do
|
33
33
|
xs = []
|
34
|
-
@channel.stub
|
34
|
+
@channel.stub(:notify){|x| xs << x}
|
35
35
|
call '#twitter', 'opt', %w()
|
36
36
|
xs.should == [
|
37
37
|
"foo1 => true",
|
@@ -47,9 +47,9 @@ describe Atig::Command::Option, 'when have bool property' do
|
|
47
47
|
|
48
48
|
before do
|
49
49
|
@command = init Atig::Command::Option
|
50
|
-
@opts.stub
|
51
|
-
@opts.stub
|
52
|
-
@channel.stub
|
50
|
+
@opts.stub(:foo).and_return true
|
51
|
+
@opts.stub(:foo=){|v| @value = v }
|
52
|
+
@channel.stub(:notify)
|
53
53
|
end
|
54
54
|
|
55
55
|
it "should show the value" do
|
@@ -68,9 +68,9 @@ describe Atig::Command::Option, 'when have int property' do
|
|
68
68
|
|
69
69
|
before do
|
70
70
|
@command = init Atig::Command::Option
|
71
|
-
@opts.stub
|
72
|
-
@opts.stub
|
73
|
-
@channel.stub
|
71
|
+
@opts.stub(:foo).and_return 42
|
72
|
+
@opts.stub(:foo=){|v| @value = v }
|
73
|
+
@channel.stub(:notify)
|
74
74
|
end
|
75
75
|
|
76
76
|
it "should show the value" do
|
@@ -89,9 +89,9 @@ describe Atig::Command::Option, 'when have float property' do
|
|
89
89
|
|
90
90
|
before do
|
91
91
|
@command = init Atig::Command::Option
|
92
|
-
@opts.stub
|
93
|
-
@opts.stub
|
94
|
-
@channel.stub
|
92
|
+
@opts.stub(:foo).and_return 1.23
|
93
|
+
@opts.stub(:foo=){|v| @value = v }
|
94
|
+
@channel.stub(:notify)
|
95
95
|
end
|
96
96
|
|
97
97
|
it "should show the value" do
|
@@ -110,9 +110,9 @@ describe Atig::Command::Option, 'when have string property' do
|
|
110
110
|
|
111
111
|
before do
|
112
112
|
@command = init Atig::Command::Option
|
113
|
-
@opts.stub
|
114
|
-
@opts.stub
|
115
|
-
@channel.stub
|
113
|
+
@opts.stub(:foo).and_return "bar"
|
114
|
+
@opts.stub(:foo=){|v| @value = v }
|
115
|
+
@channel.stub(:notify)
|
116
116
|
end
|
117
117
|
|
118
118
|
it "should show the value" do
|
data/spec/command/reply_spec.rb
CHANGED
@@ -6,17 +6,17 @@ require 'atig/command/retweet'
|
|
6
6
|
describe Atig::Command::Retweet do
|
7
7
|
include CommandHelper
|
8
8
|
before do
|
9
|
-
bitly =
|
10
|
-
bitly.stub
|
9
|
+
bitly = double("Bitly")
|
10
|
+
bitly.stub(:shorten).and_return{|s|
|
11
11
|
"[#{s}]"
|
12
12
|
}
|
13
|
-
Atig::Bitly.stub
|
13
|
+
Atig::Bitly.stub(:no_login).and_return(bitly)
|
14
14
|
|
15
15
|
@command = init Atig::Command::Retweet
|
16
16
|
|
17
17
|
target = status 'blah blah blah blah blah blah blah blah', 'id'=>'1'
|
18
18
|
entry = entry user(1,'mzp'), target
|
19
|
-
@res =
|
19
|
+
@res = double 'res'
|
20
20
|
|
21
21
|
stub_status(:find_by_tid,'a' => entry)
|
22
22
|
stub_status(:find_by_sid,'mzp:a' => entry)
|
data/spec/command/thread_spec.rb
CHANGED
@@ -6,7 +6,7 @@ require 'atig/command/thread'
|
|
6
6
|
describe Atig::Command::Thread do
|
7
7
|
include CommandHelper
|
8
8
|
before do
|
9
|
-
u =
|
9
|
+
u = double 'user'
|
10
10
|
@entries = [
|
11
11
|
entry(u, status(''),'entry-0'),
|
12
12
|
entry(u, status('','in_reply_to_status_id'=>2),'entry-1'),
|
@@ -16,10 +16,10 @@ describe Atig::Command::Thread do
|
|
16
16
|
]
|
17
17
|
@command = init Atig::Command::Thread
|
18
18
|
@messages = []
|
19
|
-
@channel.stub
|
19
|
+
@channel.stub(:message).and_return{|entry,_|
|
20
20
|
@messages.unshift entry
|
21
21
|
}
|
22
|
-
@statuses.stub
|
22
|
+
@statuses.stub(:find_by_status_id).with(anything).and_return{|id|
|
23
23
|
@entries[id.to_i]
|
24
24
|
}
|
25
25
|
end
|
data/spec/command/time_spec.rb
CHANGED
@@ -7,9 +7,9 @@ describe Atig::Command::Time do
|
|
7
7
|
include CommandHelper
|
8
8
|
|
9
9
|
def user(offset, tz)
|
10
|
-
u =
|
11
|
-
u.stub
|
12
|
-
u.stub
|
10
|
+
u = double "user-#{offset}"
|
11
|
+
u.stub(:utc_offset).and_return(offset)
|
12
|
+
u.stub(:time_zone).and_return(tz)
|
13
13
|
u
|
14
14
|
end
|
15
15
|
|
@@ -8,10 +8,10 @@ describe Atig::Command::UserInfo do
|
|
8
8
|
|
9
9
|
before do
|
10
10
|
@command = init Atig::Command::UserInfo
|
11
|
-
@status =
|
12
|
-
@user =
|
13
|
-
@user.stub
|
14
|
-
@user.stub
|
11
|
+
@status = double "status"
|
12
|
+
@user = double "user"
|
13
|
+
@user.stub(:description).and_return('hogehoge')
|
14
|
+
@user.stub(:status).and_return(@status)
|
15
15
|
end
|
16
16
|
|
17
17
|
it "should show the source via DB" do
|
@@ -8,10 +8,10 @@ describe Atig::Command::Version do
|
|
8
8
|
|
9
9
|
before do
|
10
10
|
@command = init Atig::Command::Version
|
11
|
-
@status =
|
12
|
-
@status.stub
|
13
|
-
@user =
|
14
|
-
@user.stub
|
11
|
+
@status = double "status"
|
12
|
+
@status.stub(:source).and_return('<a href="http://echofon.com/" rel="nofollow">Echofon</a>')
|
13
|
+
@user = double "user"
|
14
|
+
@user.stub(:status).and_return(@status)
|
15
15
|
end
|
16
16
|
|
17
17
|
it "should provide version command" do
|
@@ -33,8 +33,8 @@ describe Atig::Command::Version do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
it "should show the source of web" do
|
36
|
-
status =
|
37
|
-
status.stub
|
36
|
+
status = double "status"
|
37
|
+
status.stub(:source).and_return('web')
|
38
38
|
@statuses.
|
39
39
|
should_receive(:find_by_screen_name).
|
40
40
|
with('mzp',:limit => 1).
|
@@ -49,7 +49,7 @@ describe Atig::Command::Version do
|
|
49
49
|
end
|
50
50
|
|
51
51
|
it "should show the source via API" do
|
52
|
-
@statuses.stub
|
52
|
+
@statuses.stub(:find_by_screen_name).and_return(@status)
|
53
53
|
@statuses.should_receive(:find_by_screen_name).with('mzp',:limit => 1).and_return(nil)
|
54
54
|
@statuses.should_receive(:add).with(:status => @status, :user => @user, :source=>:version)
|
55
55
|
@api.should_receive(:get).with('users/show',:screen_name=>'mzp').and_return(@user)
|
data/spec/command/whois_spec.rb
CHANGED
@@ -16,20 +16,20 @@ describe Atig::Command::Whois do
|
|
16
16
|
|
17
17
|
before do
|
18
18
|
@command = init Atig::Command::Whois
|
19
|
-
@status =
|
20
|
-
@status.stub
|
21
|
-
@user =
|
22
|
-
@user.stub
|
23
|
-
@user.stub
|
24
|
-
@user.stub
|
25
|
-
@user.stub
|
26
|
-
@user.stub
|
27
|
-
@user.stub
|
28
|
-
@user.stub
|
29
|
-
@user.stub
|
19
|
+
@status = double 'status'
|
20
|
+
@status.stub(:created_at).and_return(time(::Time.at(42)))
|
21
|
+
@user = double "user"
|
22
|
+
@user.stub(:name) .and_return('name')
|
23
|
+
@user.stub(:id) .and_return('10')
|
24
|
+
@user.stub(:screen_name).and_return('screen_name')
|
25
|
+
@user.stub(:description).and_return('blah blah')
|
26
|
+
@user.stub(:protected) .and_return(false)
|
27
|
+
@user.stub(:location) .and_return('Tokyo, Japan')
|
28
|
+
@user.stub(:created_at) .and_return(time(::Time.at(0)))
|
29
|
+
@user.stub(:status) .and_return(@status)
|
30
30
|
|
31
|
-
::Time.stub
|
32
|
-
@followings.stub
|
31
|
+
::Time.stub(:now).and_return(::Time.at(50))
|
32
|
+
@followings.stub(:find_by_screen_name).with('mzp').and_return(@user)
|
33
33
|
end
|
34
34
|
|
35
35
|
it "should proide whois command" do
|
@@ -56,7 +56,7 @@ describe Atig::Command::Whois do
|
|
56
56
|
end
|
57
57
|
|
58
58
|
it "should append /protect if the user is protected" do
|
59
|
-
@user.stub
|
59
|
+
@user.stub(:protected).and_return(true)
|
60
60
|
commands = []
|
61
61
|
@gateway.should_receive(:post){|_,command,_,_,*params|
|
62
62
|
commands << command
|
data/spec/command_helper.rb
CHANGED
@@ -64,13 +64,13 @@ end
|
|
64
64
|
|
65
65
|
module CommandHelper
|
66
66
|
def init(klass)
|
67
|
-
@log =
|
67
|
+
@log = double 'log'
|
68
68
|
@opts = Atig::Option.new({})
|
69
69
|
context = OpenStruct.new :log=>@log, :opts=>@opts
|
70
70
|
|
71
|
-
@channel =
|
71
|
+
@channel = double 'channel'
|
72
72
|
@gateway = FakeGateway.new @channel
|
73
|
-
@api =
|
73
|
+
@api = double 'api'
|
74
74
|
@statuses = FakeDbEntry.new 'status DB'
|
75
75
|
@followings = FakeDbEntry.new 'followings DB'
|
76
76
|
@lists = {
|
@@ -88,7 +88,7 @@ module CommandHelper
|
|
88
88
|
end
|
89
89
|
|
90
90
|
def stub_status(key, hash)
|
91
|
-
@statuses.stub
|
91
|
+
@statuses.stub(key).and_return{|arg,*_|
|
92
92
|
hash.fetch(arg, hash[:default])
|
93
93
|
}
|
94
94
|
end
|
@@ -10,7 +10,7 @@ end
|
|
10
10
|
|
11
11
|
describe Atig::IFilter::ExpandUrl, "when disable whole url" do
|
12
12
|
def filtered(text)
|
13
|
-
ifilter = Atig::IFilter::ExpandUrl.new OpenStruct.new(:log=>
|
13
|
+
ifilter = Atig::IFilter::ExpandUrl.new OpenStruct.new(:log=>double('log'),:opts=>OpenStruct.new)
|
14
14
|
ifilter.call status(text)
|
15
15
|
end
|
16
16
|
|
@@ -26,7 +26,7 @@ end
|
|
26
26
|
describe Atig::IFilter::ExpandUrl, "when enable whole url" do
|
27
27
|
def filtered(text)
|
28
28
|
context = OpenStruct.new(
|
29
|
-
:log =>
|
29
|
+
:log => double('log'),
|
30
30
|
:opts => OpenStruct.new(:untiny_whole_urls=>true))
|
31
31
|
ifilter = Atig::IFilter::ExpandUrl.new(context)
|
32
32
|
ifilter.call status(text)
|
@@ -42,3 +42,24 @@ describe Atig::IFilter::ExpandUrl, "when enable whole url" do
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
+
describe Atig::IFilter::ExpandUrl, "when has urls entities" do
|
46
|
+
def filtered(text, opts)
|
47
|
+
context = OpenStruct.new(
|
48
|
+
:log => double('log'),
|
49
|
+
:opts => OpenStruct.new)
|
50
|
+
ifilter = Atig::IFilter::ExpandUrl.new(context)
|
51
|
+
ifilter.call status(text, opts)
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should expand t.co" do
|
55
|
+
opts = {
|
56
|
+
"entities" => {
|
57
|
+
"urls" => [{
|
58
|
+
"url" => "http://t.co/1Vyoux4kB8",
|
59
|
+
"expanded_url" => "http://example.com/"
|
60
|
+
}]
|
61
|
+
}
|
62
|
+
}
|
63
|
+
filtered("http://t.co/1Vyoux4kB8", opts).should be_text("http://example.com/")
|
64
|
+
end
|
65
|
+
end
|
data/spec/ifilter/sid_spec.rb
CHANGED
@@ -6,7 +6,7 @@ require 'atig/twitter_struct'
|
|
6
6
|
|
7
7
|
describe Atig::IFilter::Sid, "when disable tid" do
|
8
8
|
def filtered(text)
|
9
|
-
ifilter = Atig::IFilter::Sid.new(OpenStruct.new(:log=>
|
9
|
+
ifilter = Atig::IFilter::Sid.new(OpenStruct.new(:log=>double('log'),
|
10
10
|
:opts=>OpenStruct.new))
|
11
11
|
ifilter.call status(text,'sid'=>1)
|
12
12
|
end
|
@@ -18,7 +18,7 @@ end
|
|
18
18
|
|
19
19
|
describe Atig::IFilter::Sid, "when enable tid" do
|
20
20
|
def filtered(text)
|
21
|
-
ifilter = Atig::IFilter::Sid.new(OpenStruct.new(:log=>
|
21
|
+
ifilter = Atig::IFilter::Sid.new(OpenStruct.new(:log=>double('log'),
|
22
22
|
:opts=>OpenStruct.new(:sid=>true)))
|
23
23
|
ifilter.call status(text,'sid'=>1)
|
24
24
|
end
|
data/spec/ifilter/tid_spec.rb
CHANGED
@@ -6,7 +6,7 @@ require 'atig/twitter_struct'
|
|
6
6
|
|
7
7
|
describe Atig::IFilter::Tid, "when disable tid" do
|
8
8
|
def filtered(text)
|
9
|
-
ifilter = Atig::IFilter::Tid.new(OpenStruct.new(:log=>
|
9
|
+
ifilter = Atig::IFilter::Tid.new(OpenStruct.new(:log=>double('log'),
|
10
10
|
:opts=>OpenStruct.new))
|
11
11
|
ifilter.call status(text,'tid'=>1)
|
12
12
|
end
|
@@ -18,7 +18,7 @@ end
|
|
18
18
|
|
19
19
|
describe Atig::IFilter::Tid, "when enable tid" do
|
20
20
|
def filtered(text)
|
21
|
-
ifilter = Atig::IFilter::Tid.new(OpenStruct.new(:log=>
|
21
|
+
ifilter = Atig::IFilter::Tid.new(OpenStruct.new(:log=>double('log'),
|
22
22
|
:opts=>OpenStruct.new(:tid=>true)))
|
23
23
|
ifilter.call status(text,'tid'=>1)
|
24
24
|
end
|
@@ -9,7 +9,7 @@ end
|
|
9
9
|
|
10
10
|
describe Atig::OFilter::EscapeUrl do
|
11
11
|
before do
|
12
|
-
@logger =
|
12
|
+
@logger = double('Logger')
|
13
13
|
@logger.should_receive(:info).at_most(:once)
|
14
14
|
@logger.should_receive(:error).at_most(:once)
|
15
15
|
@logger.should_receive(:debug).at_most(:once)
|
@@ -32,7 +32,7 @@ end
|
|
32
32
|
if defined? ::Punycode then
|
33
33
|
describe Atig::OFilter::EscapeUrl,"when punycode is enabled" do
|
34
34
|
before do
|
35
|
-
@logger =
|
35
|
+
@logger = double('Logger')
|
36
36
|
@logger.should_receive(:info).at_most(:once)
|
37
37
|
@logger.should_receive(:error).at_most(:once)
|
38
38
|
@logger.should_receive(:debug).at_most(:once)
|
@@ -6,9 +6,9 @@ require 'ostruct'
|
|
6
6
|
|
7
7
|
describe Atig::OFilter::ShortUrl,"when no-login bitly" do
|
8
8
|
before do
|
9
|
-
logger =
|
10
|
-
bitly =
|
11
|
-
bitly.stub
|
9
|
+
logger = double('Logger')
|
10
|
+
bitly = double("Bitly")
|
11
|
+
bitly.stub(:shorten).and_return{|s|
|
12
12
|
"[#{s}]"
|
13
13
|
}
|
14
14
|
Atig::Bitly.should_receive(:no_login).with(logger).and_return(bitly)
|
@@ -24,9 +24,9 @@ end
|
|
24
24
|
|
25
25
|
describe Atig::OFilter::ShortUrl,"when no-login bitly with size" do
|
26
26
|
before do
|
27
|
-
logger =
|
28
|
-
bitly =
|
29
|
-
bitly.stub
|
27
|
+
logger = double('Logger')
|
28
|
+
bitly = double("Bitly")
|
29
|
+
bitly.stub(:shorten).and_return{|s|
|
30
30
|
"[#{s}]"
|
31
31
|
}
|
32
32
|
Atig::Bitly.should_receive(:no_login).with(logger).and_return(bitly)
|
@@ -42,9 +42,9 @@ end
|
|
42
42
|
|
43
43
|
describe Atig::OFilter::ShortUrl,"when login bitly" do
|
44
44
|
before do
|
45
|
-
logger =
|
46
|
-
bitly =
|
47
|
-
bitly.stub
|
45
|
+
logger = double('Logger')
|
46
|
+
bitly = double("Bitly")
|
47
|
+
bitly.stub(:shorten).and_return{|s|
|
48
48
|
"[#{s}]"
|
49
49
|
}
|
50
50
|
Atig::Bitly.should_receive(:login).with(logger,"username","api_key").and_return(bitly)
|
@@ -60,9 +60,9 @@ end
|
|
60
60
|
|
61
61
|
describe Atig::OFilter::ShortUrl,"when login bitly with size" do
|
62
62
|
before do
|
63
|
-
logger =
|
64
|
-
bitly =
|
65
|
-
bitly.stub
|
63
|
+
logger = double('Logger')
|
64
|
+
bitly = double("Bitly")
|
65
|
+
bitly.stub(:shorten).and_return{|s|
|
66
66
|
"[#{s}]"
|
67
67
|
}
|
68
68
|
Atig::Bitly.should_receive(:login).with(logger,"username","api_key").and_return(bitly)
|
@@ -78,9 +78,9 @@ end
|
|
78
78
|
|
79
79
|
describe Atig::OFilter::ShortUrl,"when unu bitly" do
|
80
80
|
before do
|
81
|
-
logger =
|
82
|
-
unu =
|
83
|
-
unu.stub
|
81
|
+
logger = double('Logger')
|
82
|
+
unu = double("Unu")
|
83
|
+
unu.stub(:shorten).and_return{|s|
|
84
84
|
"[#{s}]"
|
85
85
|
}
|
86
86
|
Atig::Unu.should_receive(:new).with(logger).and_return(unu)
|
@@ -96,9 +96,9 @@ end
|
|
96
96
|
|
97
97
|
describe Atig::OFilter::ShortUrl,"when no-login unu with size" do
|
98
98
|
before do
|
99
|
-
logger =
|
100
|
-
unu =
|
101
|
-
unu.stub
|
99
|
+
logger = double('Logger')
|
100
|
+
unu = double("Unu")
|
101
|
+
unu.stub(:shorten).and_return{|s|
|
102
102
|
"[#{s}]"
|
103
103
|
}
|
104
104
|
Atig::Unu.should_receive(:new).with(logger).and_return(unu)
|
@@ -114,7 +114,7 @@ end
|
|
114
114
|
|
115
115
|
describe Atig::OFilter::ShortUrl,"when nop" do
|
116
116
|
before do
|
117
|
-
logger =
|
117
|
+
logger = double('Logger')
|
118
118
|
|
119
119
|
@ofilter = Atig::OFilter::ShortUrl.new(OpenStruct.new(:log=>logger, :opts=>OpenStruct.new()))
|
120
120
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -19,17 +19,17 @@ def status(text, opt = {})
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def user(id, name)
|
22
|
-
user =
|
23
|
-
user.stub
|
24
|
-
user.stub
|
22
|
+
user = double("User-#{name}")
|
23
|
+
user.stub(:id).and_return(id)
|
24
|
+
user.stub(:screen_name).and_return(name)
|
25
25
|
user
|
26
26
|
end
|
27
27
|
|
28
28
|
def entry(user, status, name = 'entry', id = 0)
|
29
|
-
entry =
|
30
|
-
entry.stub
|
31
|
-
entry.stub
|
32
|
-
entry.stub
|
29
|
+
entry = double name
|
30
|
+
entry.stub('id').and_return(id)
|
31
|
+
entry.stub('user').and_return(user)
|
32
|
+
entry.stub('status').and_return(status)
|
33
33
|
entry
|
34
34
|
end
|
35
35
|
|
data/spec/update_checker_spec.rb
CHANGED
@@ -13,8 +13,8 @@ describe Atig::UpdateChecker,'when use git version' do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
before do
|
16
|
-
Atig::UpdateChecker.stub
|
17
|
-
Atig::UpdateChecker.stub
|
16
|
+
Atig::UpdateChecker.stub(:git?).and_return(true)
|
17
|
+
Atig::UpdateChecker.stub(:commits).
|
18
18
|
and_return [
|
19
19
|
commit('a', 'foo'),
|
20
20
|
commit('b', 'bar'),
|
@@ -25,29 +25,29 @@ describe Atig::UpdateChecker,'when use git version' do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
it "should not do anything when use HEAD version" do
|
28
|
-
Atig::UpdateChecker.stub
|
29
|
-
Atig::UpdateChecker.stub
|
28
|
+
Atig::UpdateChecker.stub(:local_repos?).and_return true
|
29
|
+
Atig::UpdateChecker.stub(:server_version).and_return rev('a')
|
30
30
|
|
31
31
|
Atig::UpdateChecker.latest.should == []
|
32
32
|
end
|
33
33
|
|
34
34
|
it "should notify when not use HEAD version" do
|
35
|
-
Atig::UpdateChecker.stub
|
36
|
-
Atig::UpdateChecker.stub
|
35
|
+
Atig::UpdateChecker.stub(:local_repos?).and_return false
|
36
|
+
Atig::UpdateChecker.stub(:server_version).and_return rev('b')
|
37
37
|
|
38
38
|
Atig::UpdateChecker.latest.should == [ 'foo' ]
|
39
39
|
end
|
40
40
|
|
41
41
|
it "should notify many changes" do
|
42
|
-
Atig::UpdateChecker.stub
|
43
|
-
Atig::UpdateChecker.stub
|
42
|
+
Atig::UpdateChecker.stub(:local_repos?).and_return false
|
43
|
+
Atig::UpdateChecker.stub(:server_version).and_return rev('d')
|
44
44
|
|
45
45
|
Atig::UpdateChecker.latest.should == [ 'foo', 'bar', 'baz' ]
|
46
46
|
end
|
47
47
|
|
48
48
|
it "should notify all changes" do
|
49
|
-
Atig::UpdateChecker.stub
|
50
|
-
Atig::UpdateChecker.stub
|
49
|
+
Atig::UpdateChecker.stub(:local_repos?).and_return false
|
50
|
+
Atig::UpdateChecker.stub(:server_version).and_return rev('z')
|
51
51
|
|
52
52
|
Atig::UpdateChecker.latest.should == [ 'foo', 'bar', 'baz', 'xyzzy', 'fuga' ]
|
53
53
|
end
|
metadata
CHANGED
@@ -1,125 +1,125 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: atig
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SHIBATA Hiroshi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-10-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sqlite3
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 1.3.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 1.3.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: net-irc
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: oauth
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: json
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: bundler
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rspec
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: coveralls
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
description: Atig.rb is Twitter Irc Gateway.
|
@@ -130,9 +130,9 @@ executables:
|
|
130
130
|
extensions: []
|
131
131
|
extra_rdoc_files: []
|
132
132
|
files:
|
133
|
-
- .gitignore
|
134
|
-
- .rspec
|
135
|
-
- .travis.yml
|
133
|
+
- ".gitignore"
|
134
|
+
- ".rspec"
|
135
|
+
- ".travis.yml"
|
136
136
|
- Gemfile
|
137
137
|
- Gemfile.lock
|
138
138
|
- README.mkdn
|
@@ -308,17 +308,17 @@ require_paths:
|
|
308
308
|
- lib
|
309
309
|
required_ruby_version: !ruby/object:Gem::Requirement
|
310
310
|
requirements:
|
311
|
-
- -
|
311
|
+
- - ">="
|
312
312
|
- !ruby/object:Gem::Version
|
313
313
|
version: '0'
|
314
314
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
315
315
|
requirements:
|
316
|
-
- -
|
316
|
+
- - ">="
|
317
317
|
- !ruby/object:Gem::Version
|
318
318
|
version: '0'
|
319
319
|
requirements: []
|
320
320
|
rubyforge_project:
|
321
|
-
rubygems_version: 2.
|
321
|
+
rubygems_version: 2.1.8
|
322
322
|
signing_key:
|
323
323
|
specification_version: 4
|
324
324
|
summary: Atig.rb is forked from cho45's tig.rb. We improve some features of tig.rb.
|
@@ -366,3 +366,4 @@ test_files:
|
|
366
366
|
- spec/sized_hash_spec.rb
|
367
367
|
- spec/spec_helper.rb
|
368
368
|
- spec/update_checker_spec.rb
|
369
|
+
has_rdoc:
|