termtter 1.6.0 → 1.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +5 -0
- data/README.rdoc +2 -2
- data/Rakefile +41 -75
- data/VERSION +1 -0
- data/bin/termtter +9 -2
- data/doc/Termtter-1.0-Release-Note-English.txt +37 -0
- data/doc/Termtter-1.0-Release-Note.txt +37 -0
- data/lib/plugins/another_prompt.rb +8 -8
- data/lib/plugins/ar.rb +102 -0
- data/lib/plugins/async.rb +1 -1
- data/lib/plugins/babelfish.rb +34 -0
- data/lib/plugins/confirm.rb +2 -0
- data/lib/plugins/crypt.rb +44 -0
- data/lib/plugins/defaults/auto_reload.rb +1 -1
- data/lib/plugins/defaults/command_line.rb +34 -17
- data/lib/plugins/defaults/confirm.rb +30 -0
- data/lib/plugins/defaults/hashtag.rb +1 -1
- data/lib/plugins/defaults/irb.rb +30 -0
- data/lib/plugins/defaults/keyword.rb +58 -0
- data/lib/plugins/defaults/list.rb +155 -0
- data/lib/plugins/defaults/plugin.rb +59 -0
- data/lib/plugins/defaults/retweet.rb +75 -23
- data/lib/plugins/defaults/standard_commands.rb +60 -87
- data/lib/plugins/defaults/standard_completion.rb +25 -15
- data/lib/plugins/defaults/stdout.rb +49 -10
- data/lib/plugins/defaults/switch.rb +1 -1
- data/lib/plugins/defaults/users.rb +63 -0
- data/lib/plugins/draft.rb +58 -0
- data/lib/plugins/expand-tinyurl.rb +5 -9
- data/lib/plugins/favotter.rb +1 -1
- data/lib/plugins/footer.rb +22 -0
- data/lib/plugins/friends.rb +5 -4
- data/lib/plugins/g.rb +9 -16
- data/lib/plugins/gem_install.rb +24 -0
- data/lib/plugins/gist.rb +20 -0
- data/lib/plugins/grass.rb +1 -1
- data/lib/plugins/gyazo.rb +78 -0
- data/lib/plugins/http_server.rb +1 -1
- data/lib/plugins/hugeurl.rb +6 -13
- data/lib/plugins/irc_gw.rb +15 -11
- data/lib/plugins/me.rb +1 -1
- data/lib/plugins/notify-send.rb +1 -1
- data/lib/plugins/notify-send3.rb +1 -1
- data/lib/plugins/open.rb +1 -1
- data/lib/plugins/open_url.rb +5 -1
- data/lib/plugins/pool.rb +1 -1
- data/lib/plugins/random.rb +1 -1
- data/lib/plugins/reply_retweet.rb +42 -0
- data/lib/plugins/screen-notify.rb +1 -1
- data/lib/plugins/sl.rb +3 -3
- data/lib/plugins/storage.rb +7 -10
- data/lib/plugins/storage/sqlite3.rb +155 -0
- data/lib/plugins/storage/status.rb +2 -0
- data/lib/plugins/stream.rb +1 -1
- data/lib/plugins/tinyurl.rb +3 -9
- data/lib/plugins/trends.rb +2 -2
- data/lib/plugins/truncate.rb +1 -1
- data/lib/plugins/w3mimg.rb +1 -1
- data/lib/termtter.rb +19 -20
- data/lib/termtter/active_rubytter.rb +4 -0
- data/lib/termtter/api.rb +22 -5
- data/lib/termtter/client.rb +55 -40
- data/lib/termtter/command.rb +3 -2
- data/lib/termtter/config_setup.rb +1 -1
- data/lib/termtter/config_template.erb +5 -0
- data/lib/termtter/default_config.rb +18 -0
- data/lib/termtter/hookable.rb +1 -0
- data/lib/termtter/httppool.rb +44 -0
- data/lib/termtter/memory_cache.rb +32 -0
- data/lib/termtter/optparse.rb +8 -15
- data/lib/termtter/rubytter_proxy.rb +65 -4
- data/lib/termtter/system_extensions.rb +40 -9
- data/lib/termtter/task.rb +2 -1
- data/spec/plugins/defaults/hashtag_spec.rb +8 -7
- data/spec/plugins/defaults/list_spec.rb +33 -0
- data/spec/plugins/defaults/plugin_spec.rb +17 -0
- data/spec/plugins/defaults/retweet_spec.rb +205 -0
- data/spec/plugins/draft_spec.rb +59 -0
- data/spec/plugins/expand-tinyurl_spec.rb +21 -0
- data/spec/plugins/footer_spec.rb +50 -0
- data/spec/plugins/storage/sqlite3_spec.rb +41 -0
- data/spec/termtter/api_spec.rb +1 -1
- data/spec/termtter/client_spec.rb +21 -21
- data/spec/termtter/command_spec.rb +8 -8
- data/spec/termtter/config_spec.rb +2 -2
- data/spec/termtter/memory_cache_spec.rb +20 -0
- data/spec/termtter/optparse_spec.rb +1 -1
- data/spec/termtter/rubytter_proxy_spec.rb +38 -0
- data/spec/termtter/system_extensions_spec.rb +25 -23
- data/spec/termtter/task_manager_spec.rb +1 -1
- data/spec/termtter_spec.rb +4 -2
- metadata +88 -19
- data/lib/plugins/defaults/lists.rb +0 -14
- data/lib/plugins/irb.rb +0 -6
- data/lib/plugins/storage/DB.rb +0 -37
- data/lib/termtter/version.rb +0 -4
- data/spec/plugins/defaults/lists_spec.rb +0 -34
- data/spec/plugins/storage/DB_spec_.rb +0 -12
@@ -0,0 +1,59 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
module Termtter
|
4
|
+
describe 'plugin draft' do
|
5
|
+
before do
|
6
|
+
Client.setup_task_manager
|
7
|
+
Client.plug 'draft'
|
8
|
+
Client.public_storage[:drafts].clear
|
9
|
+
Client.public_storage[:drafts] << 'foo'
|
10
|
+
Client.public_storage[:drafts] << 'bar'
|
11
|
+
Client.stub!(:puts)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should puts drafts' do
|
15
|
+
Client.should_receive(:puts).with("0: foo")
|
16
|
+
Client.should_receive(:puts).with("1: bar")
|
17
|
+
Client.execute('draft list')
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should clear drafts' do
|
21
|
+
Client.execute('draft clear')
|
22
|
+
Client.public_storage[:drafts].size.should == 0
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should exec last draft' do
|
26
|
+
Client.should_receive(:execute).with('bar')
|
27
|
+
Client.get_command(:'draft exec').call('draft exec')
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should exec specified draft' do
|
31
|
+
Client.should_receive(:execute).with('foo')
|
32
|
+
Client.get_command(:'draft exec').call('draft exec', '0')
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should not exec draft if index is wrong' do
|
36
|
+
Client.should_not_receive(:execute)
|
37
|
+
Client.get_command(:'draft exec').call('draft exec', '2')
|
38
|
+
Client.should_not_receive(:execute)
|
39
|
+
Client.get_command(:'draft exec').call('draft exec', 'a')
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should delete draft' do
|
43
|
+
Client.get_command(:'draft delete').call('draft delete')
|
44
|
+
Client.public_storage[:drafts].should == ["foo"]
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'should delete specified draft' do
|
48
|
+
Client.get_command(:'draft delete').call('draft delete', '0')
|
49
|
+
Client.public_storage[:drafts].should == ["bar"]
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'should not delete draft if index is wrong' do
|
53
|
+
Client.get_command(:'draft delete').call('draft delete', '2')
|
54
|
+
Client.public_storage[:drafts].should == ["foo", "bar"]
|
55
|
+
Client.get_command(:'draft delete').call('draft delete', 'a')
|
56
|
+
Client.public_storage[:drafts].should == ["foo", "bar"]
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
4
|
+
|
5
|
+
describe Termtter::Client, 'when the plugin expand-tinyurl is loaded' do
|
6
|
+
before do
|
7
|
+
be_quiet { Termtter::Client.plug 'expand-tinyurl' }
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should define expand_url method' do
|
11
|
+
# TODO: 直接ネットにアクセスしに行かないようにしたい。 fakeweb?
|
12
|
+
|
13
|
+
expand_url('tinyurl.com', '/kotu').should == 'http://example.com/'
|
14
|
+
|
15
|
+
expand_url('tinyurl.com', '/de5my6').should == 'http://example.com/テスト'
|
16
|
+
|
17
|
+
expand_url('is.gd', '/5oDxw').should == 'http://example.com/'
|
18
|
+
|
19
|
+
expand_url('goo.gl', '/e').should == 'http://www.google.com/'
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
#-*- coding: utf-8 -*-
|
2
|
+
require File.dirname(__FILE__) + '/../spec_helper.rb'
|
3
|
+
|
4
|
+
describe Termtter::Client, 'when the plugin footer is loaded' do
|
5
|
+
@r = nil
|
6
|
+
before(:all) do
|
7
|
+
@r = nil
|
8
|
+
Termtter::Client.clear_hooks
|
9
|
+
Termtter::Client.setup_task_manager
|
10
|
+
|
11
|
+
config.footer = "[termtter]"
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
before do
|
16
|
+
@r = nil
|
17
|
+
Termtter::Client.register_command(:name => :update, :aliases => [:u], :exec => lambda{|arg| @r = arg })
|
18
|
+
Termtter::Client.plug 'footer'
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should add hook add_footer and command footer' do
|
22
|
+
Termtter::Client.should_receive(:register_hook).once
|
23
|
+
Termtter::Client.should_receive(:register_command).once
|
24
|
+
Termtter::Client.plug 'footer'
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should add footer at update' do
|
28
|
+
@r.should be_nil
|
29
|
+
Termtter::Client.execute('update foo')
|
30
|
+
config.footer.should == '[termtter]'
|
31
|
+
@r.should == 'foo [termtter]'
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should call footer command to change config.footer' do
|
35
|
+
Termtter::Client.execute('footer #termtter')
|
36
|
+
config.footer.should == '#termtter'
|
37
|
+
@r.should be_nil
|
38
|
+
Termtter::Client.execute('update bar')
|
39
|
+
@r.should == 'bar #termtter'
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should call footer no argument to set config.footer to nil' do
|
43
|
+
Termtter::Client.execute('footer')
|
44
|
+
config.footer.should == nil
|
45
|
+
@r.should be_nil
|
46
|
+
Termtter::Client.execute('update hoge')
|
47
|
+
@r.should == 'hoge'
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'tmpdir'
|
2
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
3
|
+
require File.dirname(__FILE__) + '/../../../lib/plugins/storage/sqlite3'
|
4
|
+
|
5
|
+
module Termtter::Storage
|
6
|
+
describe "sqlite3" do
|
7
|
+
DB_FILE = File.join(Dir.tmpdir, 'test.db')
|
8
|
+
before(:each) do
|
9
|
+
File.delete(DB_FILE) if File.exists?(DB_FILE)
|
10
|
+
@db = Termtter::Storage::SQLite3.new(DB_FILE)
|
11
|
+
end
|
12
|
+
|
13
|
+
after do
|
14
|
+
File.delete(DB_FILE) if File.exists?(DB_FILE)
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'update should not return false' do
|
18
|
+
h = {
|
19
|
+
:post_id => 1,
|
20
|
+
:created_at => 12345,
|
21
|
+
:in_reply_to_status_id => -1,
|
22
|
+
:in_reply_to_user_id => -1,
|
23
|
+
:text => 'bomb',
|
24
|
+
:user_id => 1
|
25
|
+
}
|
26
|
+
@db.update(h).should_not be_false
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'find_id returns status' do
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'find_text returns status' do
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'find_user returns status' do
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'size of statuses' do
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/spec/termtter/api_spec.rb
CHANGED
@@ -61,7 +61,7 @@ module Termtter
|
|
61
61
|
it_should_examine_with('test', nil) { nil }
|
62
62
|
}
|
63
63
|
result[:stdout].should ==
|
64
|
-
"Please enter your Twitter login:\nPassword: \n"
|
64
|
+
"Please enter your Twitter login:\nUsername: test\nPassword: \n"
|
65
65
|
end
|
66
66
|
|
67
67
|
it 'can examine username and password (only pass)' do
|
@@ -48,7 +48,8 @@ module Termtter
|
|
48
48
|
config.system.eval_scripts = []
|
49
49
|
config.system.cmd_mode = false
|
50
50
|
Client.should_receive(:call_hooks).with(:initialize)
|
51
|
-
Client.should_receive(:call_hooks).with(:
|
51
|
+
Client.should_receive(:call_hooks).with(:init_command_line)
|
52
|
+
# NOTE: :launched も呼ばれるはず
|
52
53
|
Client.run
|
53
54
|
end
|
54
55
|
|
@@ -163,9 +164,9 @@ module Termtter
|
|
163
164
|
['test foo bar ', 'foo bar'],
|
164
165
|
['test foo bar ', 'foo bar'],
|
165
166
|
].each do |input, args|
|
166
|
-
status = Client.
|
167
|
+
status = Client.execute(input)
|
167
168
|
command_arg.should == args
|
168
|
-
status.should ==
|
169
|
+
status.should == true
|
169
170
|
end
|
170
171
|
end
|
171
172
|
|
@@ -191,7 +192,7 @@ module Termtter
|
|
191
192
|
input_command.should be_nil
|
192
193
|
input_arg.should be_nil
|
193
194
|
decided_arg.should be_nil
|
194
|
-
Client.
|
195
|
+
Client.execute('u foo')
|
195
196
|
input_command.should == 'u'
|
196
197
|
input_arg.should == 'foo'
|
197
198
|
decided_arg.should == 'FOO'
|
@@ -205,11 +206,11 @@ module Termtter
|
|
205
206
|
Client.register_command(:name => :update, :exec => lambda{|arg|})
|
206
207
|
|
207
208
|
hook_called.should == false
|
208
|
-
Client.
|
209
|
+
Client.execute('')
|
209
210
|
hook_called.should == true
|
210
211
|
|
211
212
|
hook_called = false
|
212
|
-
Client.
|
213
|
+
Client.execute('update foo')
|
213
214
|
hook_called.should == true
|
214
215
|
end
|
215
216
|
|
@@ -221,10 +222,10 @@ module Termtter
|
|
221
222
|
Client.register_command(:name => :update, :exec => lambda{|arg|})
|
222
223
|
|
223
224
|
hook_called.should == false
|
224
|
-
Client.
|
225
|
+
Client.execute('')
|
225
226
|
hook_called.should == false
|
226
227
|
|
227
|
-
Client.
|
228
|
+
Client.execute('update foo')
|
228
229
|
hook_called.should == true
|
229
230
|
end
|
230
231
|
|
@@ -236,7 +237,7 @@ module Termtter
|
|
236
237
|
Client.register_command(:name => :update, :exec => lambda{|arg|})
|
237
238
|
|
238
239
|
hook_called.should == false
|
239
|
-
Client.
|
240
|
+
Client.execute('update foo')
|
240
241
|
hook_called.should == true
|
241
242
|
end
|
242
243
|
|
@@ -248,7 +249,7 @@ module Termtter
|
|
248
249
|
Client.register_command(:name => :update, :exec_proc => lambda {|arg| command_called = true})
|
249
250
|
|
250
251
|
command_called.should == false
|
251
|
-
Client.
|
252
|
+
Client.execute('update foo')
|
252
253
|
command_called.should == false
|
253
254
|
end
|
254
255
|
|
@@ -260,7 +261,7 @@ module Termtter
|
|
260
261
|
Client.register_command(:name => :update, :exec_proc => lambda {|arg| 'foo'})
|
261
262
|
|
262
263
|
command_result.should == nil
|
263
|
-
Client.
|
264
|
+
Client.execute('update foo')
|
264
265
|
command_result.should == 'foo'
|
265
266
|
end
|
266
267
|
|
@@ -444,7 +445,7 @@ module Termtter
|
|
444
445
|
}
|
445
446
|
)
|
446
447
|
command.should_not_receive(:call)
|
447
|
-
Client.
|
448
|
+
Client.execute('test')
|
448
449
|
end
|
449
450
|
|
450
451
|
it 'gets default help' do
|
@@ -533,10 +534,8 @@ module Termtter
|
|
533
534
|
text = 'text'
|
534
535
|
command = mock('command', :null_object => true)
|
535
536
|
command.stub(:call) { raise CommandCanceled }
|
536
|
-
Client.stub(:
|
537
|
-
|
538
|
-
Client.call_commands(text).should == 1
|
539
|
-
}.should_not raise_error
|
537
|
+
Client.stub(:find_command).with(text).and_return(command)
|
538
|
+
Client.execute(text).should == false
|
540
539
|
end
|
541
540
|
|
542
541
|
describe 'add commands' do
|
@@ -545,16 +544,17 @@ module Termtter
|
|
545
544
|
Client.register_command(:name => :foo1)
|
546
545
|
Client.register_command(:name => :foo2)
|
547
546
|
Client.register_command(:name => :bar)
|
547
|
+
Client.register_command(:name => 'bar xxx')
|
548
548
|
end
|
549
549
|
|
550
550
|
it 'commands number is 3' do
|
551
|
-
Client.commands.size.should ==
|
551
|
+
Client.commands.size.should == 4
|
552
552
|
end
|
553
553
|
|
554
554
|
it 'finds a command' do
|
555
|
-
Client.
|
556
|
-
Client.
|
557
|
-
Client.
|
555
|
+
Client.find_command('foo1').name.should == :foo1
|
556
|
+
Client.find_command('bar').name.should == :bar
|
557
|
+
Client.find_command('bar xxx').name.should == :'bar xxx'
|
558
558
|
end
|
559
559
|
|
560
560
|
it 'check command exists' do
|
@@ -565,7 +565,7 @@ module Termtter
|
|
565
565
|
end
|
566
566
|
|
567
567
|
it 'finds no command' do
|
568
|
-
Client.
|
568
|
+
Client.find_command('foo').should be_nil
|
569
569
|
end
|
570
570
|
end
|
571
571
|
|
@@ -5,19 +5,19 @@ require File.dirname(__FILE__) + '/../spec_helper'
|
|
5
5
|
module Termtter
|
6
6
|
describe 'Command#initialize' do
|
7
7
|
it 'requires the name element in the argument hash' do
|
8
|
-
lambda { Command.new(:nama =>
|
9
|
-
lambda { Command.new(:name =>
|
8
|
+
lambda { Command.new(:nama => :a) }.should raise_error(ArgumentError)
|
9
|
+
lambda { Command.new(:name => :a) }.should_not raise_error(ArgumentError)
|
10
10
|
end
|
11
11
|
|
12
12
|
it 'does not destroy the argument hash' do
|
13
13
|
hash = {
|
14
|
-
:name =>
|
14
|
+
:name => 'a',
|
15
15
|
:exec => 3
|
16
16
|
}
|
17
17
|
Command.new hash
|
18
18
|
|
19
19
|
hash.should eql(hash)
|
20
|
-
hash[:name].should ==
|
20
|
+
hash[:name].should == 'a'
|
21
21
|
hash[:exec].should == 3
|
22
22
|
hash[:exec_proc].should be_nil
|
23
23
|
end
|
@@ -66,11 +66,9 @@ module Termtter
|
|
66
66
|
it 'returns candidates for completion' do
|
67
67
|
# complement
|
68
68
|
[
|
69
|
-
['
|
70
|
-
['
|
71
|
-
[' upd ', []],
|
69
|
+
['update ', ['complete1', 'complete2']],
|
70
|
+
[' update ', ['complete1', 'complete2']],
|
72
71
|
['update a', ['complete1', 'complete2']],
|
73
|
-
[' update ', []],
|
74
72
|
['u foo', ['complete1', 'complete2']],
|
75
73
|
].each do |input, comp|
|
76
74
|
@command.complement(input).should == comp
|
@@ -143,6 +141,8 @@ module Termtter
|
|
143
141
|
should == ['test', 'foo bar']
|
144
142
|
@command.split_command_line(' test foo bar ').
|
145
143
|
should == ['test', 'foo bar']
|
144
|
+
@command.split_command_line('test ').
|
145
|
+
should == ['test', '']
|
146
146
|
end
|
147
147
|
end
|
148
148
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
3
|
+
|
4
|
+
module Termtter
|
5
|
+
describe MemoryCache do
|
6
|
+
it 'is like Hash' do
|
7
|
+
cache = MemoryCache.new(2)
|
8
|
+
cache[:foo] = 'foo'
|
9
|
+
cache[:bar] = 'bar'
|
10
|
+
|
11
|
+
cache[:foo].should == 'foo'
|
12
|
+
cache[:foo].should == 'foo'
|
13
|
+
|
14
|
+
cache[:jugyo] = 'jugyo'
|
15
|
+
cache[:jugyo].should == 'jugyo'
|
16
|
+
|
17
|
+
cache.key?(:foo).should be_false
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -38,5 +38,43 @@ module Termtter
|
|
38
38
|
|
39
39
|
@twitter.update('test')
|
40
40
|
end
|
41
|
+
|
42
|
+
it 'should retry to be success' do
|
43
|
+
config.retry = 3
|
44
|
+
@rubytter_mock.stub!(:update).exactly(1).times
|
45
|
+
@twitter.update('test')
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'should retry when raise TimeoutError' do
|
49
|
+
config.retry = 3
|
50
|
+
@rubytter_mock.stub!(:update).exactly(config.retry).times.and_raise(TimeoutError)
|
51
|
+
@twitter.update('test')
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'should store cache when call "show"' do
|
55
|
+
status = "status"
|
56
|
+
@rubytter_mock.should_receive(:show).exactly(1).and_return(status)
|
57
|
+
@twitter.should_receive(:store_status_cache).with(status)
|
58
|
+
@twitter.show(1)
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'should store cache when call "home_timeline"' do
|
62
|
+
statuses = ["1", "2"]
|
63
|
+
@rubytter_mock.should_receive(:home_timeline).exactly(1).and_return(statuses)
|
64
|
+
@twitter.should_receive(:store_status_cache).exactly(2)
|
65
|
+
@twitter.home_timeline
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'should store cache when call "store_status_cache"' do
|
69
|
+
user = "user"
|
70
|
+
@twitter.should_receive(:store_user_cache).with(user)
|
71
|
+
@twitter.store_status_cache(Rubytter.structize({:user => user}))
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'should not call rubytter if cache exists' do
|
75
|
+
@twitter.status_cache_store[1] = "status"
|
76
|
+
@rubytter_mock.should_receive(:show).exactly(0)
|
77
|
+
@twitter.show(1).should == "status"
|
78
|
+
end
|
41
79
|
end
|
42
80
|
end
|