t 2.7.0 → 2.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -4
  3. data/bin/t +1 -1
  4. data/lib/t/cli.rb +26 -2
  5. data/lib/t/list.rb +0 -2
  6. data/lib/t/printable.rb +6 -5
  7. data/lib/t/stream.rb +0 -20
  8. data/lib/t/version.rb +1 -1
  9. data/t.gemspec +4 -8
  10. metadata +6 -131
  11. data/Rakefile +0 -21
  12. data/spec/cli_spec.rb +0 -4141
  13. data/spec/delete_spec.rb +0 -250
  14. data/spec/editor_spec.rb +0 -102
  15. data/spec/fixtures/200_direct_messages.json +0 -1
  16. data/spec/fixtures/200_statuses.json +0 -1
  17. data/spec/fixtures/501_ids.json +0 -1
  18. data/spec/fixtures/501_users_list.json +0 -1
  19. data/spec/fixtures/access_token +0 -1
  20. data/spec/fixtures/bearer_token.json +0 -1
  21. data/spec/fixtures/checkip.html +0 -1
  22. data/spec/fixtures/direct_message.json +0 -1
  23. data/spec/fixtures/direct_messages.json +0 -1
  24. data/spec/fixtures/empty_array.json +0 -1
  25. data/spec/fixtures/empty_cursor.json +0 -1
  26. data/spec/fixtures/favorites.json +0 -1
  27. data/spec/fixtures/followers_ids.json +0 -1
  28. data/spec/fixtures/following.json +0 -1
  29. data/spec/fixtures/friends_ids.json +0 -1
  30. data/spec/fixtures/gem.json +0 -1
  31. data/spec/fixtures/geo.json +0 -414
  32. data/spec/fixtures/geo_no_city.json +0 -344
  33. data/spec/fixtures/geo_no_state.json +0 -299
  34. data/spec/fixtures/geoplugin.xml +0 -17
  35. data/spec/fixtures/ids_list.json +0 -1
  36. data/spec/fixtures/ids_list2.json +0 -1
  37. data/spec/fixtures/list.json +0 -1
  38. data/spec/fixtures/lists.json +0 -1
  39. data/spec/fixtures/locations.json +0 -1
  40. data/spec/fixtures/long.png +0 -0
  41. data/spec/fixtures/matrix.json +0 -1
  42. data/spec/fixtures/me.jpg +0 -0
  43. data/spec/fixtures/not_following.json +0 -1
  44. data/spec/fixtures/not_found.json +0 -1
  45. data/spec/fixtures/rate_limit_status.json +0 -1
  46. data/spec/fixtures/recommendations.json +0 -1
  47. data/spec/fixtures/request_token +0 -1
  48. data/spec/fixtures/retweet.json +0 -1
  49. data/spec/fixtures/search.json +0 -1
  50. data/spec/fixtures/search2.json +0 -1
  51. data/spec/fixtures/search_with_entities.json +0 -1
  52. data/spec/fixtures/settings.json +0 -1
  53. data/spec/fixtures/sferik.json +0 -1
  54. data/spec/fixtures/status.json +0 -1
  55. data/spec/fixtures/status_no_attributes.json +0 -1
  56. data/spec/fixtures/status_no_country.json +0 -1
  57. data/spec/fixtures/status_no_full_name.json +0 -1
  58. data/spec/fixtures/status_no_locality.json +0 -1
  59. data/spec/fixtures/status_no_place.json +0 -1
  60. data/spec/fixtures/status_no_street_address.json +0 -1
  61. data/spec/fixtures/status_with_mention.json +0 -1
  62. data/spec/fixtures/statuses.json +0 -1
  63. data/spec/fixtures/trends.json +0 -1
  64. data/spec/fixtures/users.json +0 -1
  65. data/spec/fixtures/users_list.json +0 -1
  66. data/spec/fixtures/we_concept_bg2.png +0 -0
  67. data/spec/helper.rb +0 -78
  68. data/spec/list_spec.rb +0 -812
  69. data/spec/rcfile_spec.rb +0 -221
  70. data/spec/search_spec.rb +0 -944
  71. data/spec/set_spec.rb +0 -154
  72. data/spec/stream_spec.rb +0 -286
  73. data/spec/utils_spec.rb +0 -96
@@ -1,154 +0,0 @@
1
- # encoding: utf-8
2
- require 'helper'
3
-
4
- describe T::Set do
5
-
6
- before do
7
- T::RCFile.instance.path = fixture_path + '/.trc'
8
- @set = T::Set.new
9
- @old_stderr = $stderr
10
- $stderr = StringIO.new
11
- @old_stdout = $stdout
12
- $stdout = StringIO.new
13
- end
14
-
15
- after do
16
- T::RCFile.instance.reset
17
- $stderr = @old_stderr
18
- $stdout = @old_stdout
19
- end
20
-
21
- describe '#active' do
22
- before do
23
- @set.options = @set.options.merge('profile' => fixture_path + '/.trc_set')
24
- end
25
- it 'has the correct output' do
26
- @set.active('testcli', 'abc123')
27
- expect($stdout.string.chomp).to eq 'Active account has been updated to testcli.'
28
- end
29
- it 'accepts an account name without a consumer key' do
30
- @set.active('testcli')
31
- expect($stdout.string.chomp).to eq 'Active account has been updated to testcli.'
32
- end
33
- it 'is case insensitive' do
34
- @set.active('TestCLI', 'abc123')
35
- expect($stdout.string.chomp).to eq 'Active account has been updated to testcli.'
36
- end
37
- it 'raises an error if username is ambiguous' do
38
- expect do
39
- @set.active('test', 'abc123')
40
- end.to raise_error(ArgumentError, /Username test is ambiguous/)
41
- end
42
- it 'raises an error if the username is not found' do
43
- expect do
44
- @set.active('clitest')
45
- end.to raise_error(ArgumentError, /Username clitest is not found/)
46
- end
47
- end
48
-
49
- describe '#bio' do
50
- before do
51
- @set.options = @set.options.merge('profile' => fixture_path + '/.trc')
52
- stub_post('/1.1/account/update_profile.json').with(:body => {:description => 'Vagabond.'}).to_return(:body => fixture('sferik.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
53
- end
54
- it 'requests the correct resource' do
55
- @set.bio('Vagabond.')
56
- expect(a_post('/1.1/account/update_profile.json').with(:body => {:description => 'Vagabond.'})).to have_been_made
57
- end
58
- it 'has the correct output' do
59
- @set.bio('Vagabond.')
60
- expect($stdout.string.chomp).to eq "@testcli's bio has been updated."
61
- end
62
- end
63
-
64
- describe '#language' do
65
- before do
66
- @set.options = @set.options.merge('profile' => fixture_path + '/.trc')
67
- stub_post('/1.1/account/settings.json').with(:body => {:lang => 'en'}).to_return(:body => fixture('settings.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
68
- end
69
- it 'requests the correct resource' do
70
- @set.language('en')
71
- expect(a_post('/1.1/account/settings.json').with(:body => {:lang => 'en'})).to have_been_made
72
- end
73
- it 'has the correct output' do
74
- @set.language('en')
75
- expect($stdout.string.chomp).to eq "@testcli's language has been updated."
76
- end
77
- end
78
-
79
- describe '#location' do
80
- before do
81
- @set.options = @set.options.merge('profile' => fixture_path + '/.trc')
82
- stub_post('/1.1/account/update_profile.json').with(:body => {:location => 'San Francisco'}).to_return(:body => fixture('sferik.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
83
- end
84
- it 'requests the correct resource' do
85
- @set.location('San Francisco')
86
- expect(a_post('/1.1/account/update_profile.json').with(:body => {:location => 'San Francisco'})).to have_been_made
87
- end
88
- it 'has the correct output' do
89
- @set.location('San Francisco')
90
- expect($stdout.string.chomp).to eq "@testcli's location has been updated."
91
- end
92
- end
93
-
94
- describe '#name' do
95
- before do
96
- @set.options = @set.options.merge('profile' => fixture_path + '/.trc')
97
- stub_post('/1.1/account/update_profile.json').with(:body => {:name => 'Erik Michaels-Ober'}).to_return(:body => fixture('sferik.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
98
- end
99
- it 'requests the correct resource' do
100
- @set.name('Erik Michaels-Ober')
101
- expect(a_post('/1.1/account/update_profile.json').with(:body => {:name => 'Erik Michaels-Ober'})).to have_been_made
102
- end
103
- it 'has the correct output' do
104
- @set.name('Erik Michaels-Ober')
105
- expect($stdout.string.chomp).to eq "@testcli's name has been updated."
106
- end
107
- end
108
-
109
- describe '#profile_background_image' do
110
- before do
111
- @set.options = @set.options.merge('profile' => fixture_path + '/.trc')
112
- stub_post('/1.1/account/update_profile_background_image.json').to_return(:body => fixture('sferik.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
113
- end
114
- it 'requests the correct resource' do
115
- @set.profile_background_image(fixture_path + '/we_concept_bg2.png')
116
- expect(a_post('/1.1/account/update_profile_background_image.json')).to have_been_made
117
- end
118
- it 'has the correct output' do
119
- @set.profile_background_image(fixture_path + '/we_concept_bg2.png')
120
- expect($stdout.string.chomp).to eq "@testcli's background image has been updated."
121
- end
122
- end
123
-
124
- describe '#profile_image' do
125
- before do
126
- @set.options = @set.options.merge('profile' => fixture_path + '/.trc')
127
- stub_post('/1.1/account/update_profile_image.json').to_return(:body => fixture('sferik.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
128
- end
129
- it 'requests the correct resource' do
130
- @set.profile_image(fixture_path + '/me.jpg')
131
- expect(a_post('/1.1/account/update_profile_image.json')).to have_been_made
132
- end
133
- it 'has the correct output' do
134
- @set.profile_image(fixture_path + '/me.jpg')
135
- expect($stdout.string.chomp).to eq "@testcli's image has been updated."
136
- end
137
- end
138
-
139
- describe '#website' do
140
- before do
141
- @set.options = @set.options.merge('profile' => fixture_path + '/.trc')
142
- stub_post('/1.1/account/update_profile.json').with(:body => {:url => 'https://github.com/sferik'}).to_return(:body => fixture('sferik.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
143
- end
144
- it 'requests the correct resource' do
145
- @set.website('https://github.com/sferik')
146
- expect(a_post('/1.1/account/update_profile.json').with(:body => {:url => 'https://github.com/sferik'})).to have_been_made
147
- end
148
- it 'has the correct output' do
149
- @set.website('https://github.com/sferik')
150
- expect($stdout.string.chomp).to eq "@testcli's website has been updated."
151
- end
152
- end
153
-
154
- end
@@ -1,286 +0,0 @@
1
- require 'helper'
2
-
3
- describe T::Stream do
4
- let(:t_class) do
5
- klass = Class.new
6
- allow(klass).to receive(:options=)
7
- allow(klass).to receive(:options).and_return({})
8
- klass
9
- end
10
-
11
- before :all do
12
- @status = status_from_fixture('status.json')
13
- end
14
-
15
- before do
16
- T::RCFile.instance.path = fixture_path + '/.trc'
17
- @streaming_client = double('Twitter::Streaming::Client').as_null_object
18
- @stream = T::Stream.new
19
- allow(@stream).to receive(:streaming_client) { @streaming_client }
20
- allow(@stream).to receive(:say)
21
- allow(STDOUT).to receive(:tty?).and_return(true)
22
- end
23
-
24
- describe '#all' do
25
- before do
26
- allow(@streaming_client).to receive(:sample).and_yield(@status)
27
- end
28
- it 'prints the tweet status' do
29
- expect(@stream).to receive(:print_message)
30
- @stream.all
31
- end
32
- context '--csv' do
33
- before do
34
- @stream.options = @stream.options.merge('csv' => true)
35
- end
36
- it 'outputs headings when the stream initializes' do
37
- allow(@streaming_client).to receive(:before_request).and_yield
38
- allow(@streaming_client).to receive(:sample)
39
- expect(@stream).to receive(:say).with("ID,Posted at,Screen name,Text\n")
40
- @stream.all
41
- end
42
- it 'outputs in CSV format' do
43
- allow(@streaming_client).to receive(:before_request)
44
- allow(@streaming_client).to receive(:sample).and_yield(@status)
45
- expect(@stream).to receive(:print_csv_tweet).with(any_args)
46
- @stream.all
47
- end
48
- end
49
- context '--long' do
50
- before do
51
- @stream.options = @stream.options.merge('long' => true)
52
- end
53
- it 'outputs headings when the stream initializes' do
54
- allow(@streaming_client).to receive(:before_request).and_yield
55
- allow(@streaming_client).to receive(:sample)
56
- expect(@stream).to receive(:print_table).with(any_args)
57
- @stream.all
58
- end
59
- it 'outputs in long text format' do
60
- allow(@streaming_client).to receive(:before_request)
61
- allow(@streaming_client).to receive(:sample).and_yield(@status)
62
- expect(@stream).to receive(:print_table).with(any_args)
63
- @stream.all
64
- end
65
- end
66
- it 'invokes Twitter::Streaming::Client#sample' do
67
- allow(@streaming_client).to receive(:before_request)
68
- allow(@streaming_client).to receive(:sample)
69
- expect(@streaming_client).to receive(:sample)
70
- @stream.all
71
- end
72
- end
73
-
74
- describe '#list' do
75
- before do
76
- stub_get('/1.1/lists/members.json').with(:query => {:cursor => '-1', :owner_screen_name => 'testcli', :slug => 'presidents'}).to_return(:body => fixture('users_list.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
77
- end
78
- it 'prints the tweet status' do
79
- expect(@stream).to receive(:print_message)
80
- allow(@streaming_client).to receive(:filter).and_yield(@status)
81
- @stream.list('presidents')
82
- end
83
- it 'requests the correct resource' do
84
- @stream.list('presidents')
85
- expect(a_get('/1.1/lists/members.json').with(:query => {:cursor => '-1', :owner_screen_name => 'testcli', :slug => 'presidents'})).to have_been_made
86
- end
87
- context '--csv' do
88
- before do
89
- @stream.options = @stream.options.merge('csv' => true)
90
- end
91
- it 'outputs in CSV format' do
92
- allow(@streaming_client).to receive(:before_request)
93
- allow(@streaming_client).to receive(:filter).and_yield(@status)
94
- expect(@stream).to receive(:print_csv_tweet).with(any_args)
95
- @stream.list('presidents')
96
- end
97
- it 'requests the correct resource' do
98
- @stream.list('presidents')
99
- expect(a_get('/1.1/lists/members.json').with(:query => {:cursor => '-1', :owner_screen_name => 'testcli', :slug => 'presidents'})).to have_been_made
100
- end
101
- end
102
- context '--long' do
103
- before do
104
- @stream.options = @stream.options.merge('long' => true)
105
- end
106
- it 'outputs in long text format' do
107
- allow(@streaming_client).to receive(:before_request)
108
- allow(@streaming_client).to receive(:filter).and_yield(@status)
109
- expect(@stream).to receive(:print_table).with(any_args)
110
- @stream.list('presidents')
111
- end
112
- it 'requests the correct resource' do
113
- @stream.list('presidents')
114
- expect(a_get('/1.1/lists/members.json').with(:query => {:cursor => '-1', :owner_screen_name => 'testcli', :slug => 'presidents'})).to have_been_made
115
- end
116
- end
117
- it 'performs a REST search when the stream initializes' do
118
- allow(@streaming_client).to receive(:before_request).and_yield
119
- allow(@streaming_client).to receive(:filter)
120
- allow(T::List).to receive(:new).and_return(t_class)
121
- expect(t_class).to receive(:timeline)
122
- @stream.list('presidents')
123
- end
124
- it 'invokes Twitter::Streaming::Client#userstream' do
125
- allow(@streaming_client).to receive(:filter)
126
- expect(@streaming_client).to receive(:filter)
127
- @stream.list('presidents')
128
- end
129
- end
130
-
131
- describe '#matrix' do
132
- before do
133
- stub_get('/1.1/search/tweets.json').with(:query => {:q => 'lang:ja', :count => 100, :include_entities => 'false'}).to_return(:body => fixture('empty_cursor.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
134
- end
135
- it 'outputs the tweet status' do
136
- allow(@streaming_client).to receive(:before_request)
137
- allow(@streaming_client).to receive(:sample).and_yield(@status)
138
- expect(@stream).to receive(:say).with(any_args)
139
- @stream.matrix
140
- end
141
- it 'invokes Twitter::Streaming::Client#sample' do
142
- allow(@streaming_client).to receive(:before_request)
143
- allow(@streaming_client).to receive(:sample).and_yield(@status)
144
- expect(@streaming_client).to receive(:sample)
145
- @stream.matrix
146
- end
147
- it 'requests the correct resource' do
148
- allow(@streaming_client).to receive(:before_request).and_yield
149
- @stream.matrix
150
- expect(a_get('/1.1/search/tweets.json').with(:query => {:q => 'lang:ja', :count => 100, :include_entities => 'false'})).to have_been_made
151
- end
152
- end
153
-
154
- describe '#search' do
155
- before do
156
- allow(@streaming_client).to receive(:filter).with(:track => 'twitter,gem').and_yield(@status)
157
- end
158
- it 'prints the tweet status' do
159
- expect(@stream).to receive(:print_message)
160
- @stream.search(%w[twitter gem])
161
- end
162
- context '--csv' do
163
- before do
164
- @stream.options = @stream.options.merge('csv' => true)
165
- end
166
- it 'outputs in CSV format' do
167
- allow(@streaming_client).to receive(:before_request)
168
- expect(@stream).to receive(:print_csv_tweet).with(any_args)
169
- @stream.search(%w[twitter gem])
170
- end
171
- end
172
- context '--long' do
173
- before do
174
- @stream.options = @stream.options.merge('long' => true)
175
- end
176
- it 'outputs in long text format' do
177
- allow(@streaming_client).to receive(:before_request)
178
- allow(@streaming_client).to receive(:filter).with(:track => 'twitter,gem').and_yield(@status)
179
- expect(@stream).to receive(:print_table).with(any_args)
180
- @stream.search(%w[twitter gem])
181
- end
182
- end
183
- it 'performs a REST search when the stream initializes' do
184
- allow(@streaming_client).to receive(:before_request).and_yield
185
- allow(@streaming_client).to receive(:filter)
186
- allow(T::Search).to receive(:new).and_return(t_class)
187
- expect(t_class).to receive(:all).with('t OR gem')
188
- @stream.search('t', 'gem')
189
- end
190
- it 'invokes Twitter::Streaming::Client#filter' do
191
- allow(@streaming_client).to receive(:filter)
192
- expect(@streaming_client).to receive(:filter).with(:track => 'twitter,gem')
193
- @stream.search(%w[twitter gem])
194
- end
195
- end
196
-
197
- describe '#timeline' do
198
- before do
199
- allow(@streaming_client).to receive(:user).and_yield(@status)
200
- end
201
- it 'prints the tweet status' do
202
- expect(@stream).to receive(:print_message)
203
- @stream.timeline
204
- end
205
- context '--csv' do
206
- before do
207
- @stream.options = @stream.options.merge('csv' => true)
208
- end
209
- it 'outputs in CSV format' do
210
- allow(@streaming_client).to receive(:before_request)
211
- expect(@stream).to receive(:print_csv_tweet).with(any_args)
212
- @stream.timeline
213
- end
214
- end
215
- context '--long' do
216
- before do
217
- @stream.options = @stream.options.merge('long' => true)
218
- end
219
- it 'outputs in long text format' do
220
- allow(@streaming_client).to receive(:before_request)
221
- expect(@stream).to receive(:print_table).with(any_args)
222
- @stream.timeline
223
- end
224
- end
225
- it 'performs a REST search when the stream initializes' do
226
- allow(@streaming_client).to receive(:before_request).and_yield
227
- allow(@streaming_client).to receive(:user)
228
- allow(T::CLI).to receive(:new).and_return(t_class)
229
- expect(t_class).to receive(:timeline)
230
- @stream.timeline
231
- end
232
- it 'invokes Twitter::Streaming::Client#userstream' do
233
- allow(@streaming_client).to receive(:user)
234
- expect(@streaming_client).to receive(:user)
235
- @stream.timeline
236
- end
237
- end
238
-
239
- describe '#users' do
240
- before do
241
- allow(@streaming_client).to receive(:filter).and_yield(@status)
242
- end
243
- it 'prints the tweet status' do
244
- expect(@stream).to receive(:print_message)
245
- @stream.users('123')
246
- end
247
- context '--csv' do
248
- before do
249
- @stream.options = @stream.options.merge('csv' => true)
250
- end
251
- it 'outputs headings when the stream initializes' do
252
- allow(@streaming_client).to receive(:before_request).and_yield
253
- allow(@streaming_client).to receive(:filter)
254
- expect(@stream).to receive(:say).with("ID,Posted at,Screen name,Text\n")
255
- @stream.users('123')
256
- end
257
- it 'outputs in CSV format' do
258
- allow(@streaming_client).to receive(:before_request)
259
- expect(@stream).to receive(:print_csv_tweet).with(any_args)
260
- @stream.users('123')
261
- end
262
- end
263
- context '--long' do
264
- before do
265
- @stream.options = @stream.options.merge('long' => true)
266
- end
267
- it 'outputs headings when the stream initializes' do
268
- allow(@streaming_client).to receive(:before_request).and_yield
269
- allow(@streaming_client).to receive(:filter)
270
- expect(@stream).to receive(:print_table).with(any_args)
271
- @stream.users('123')
272
- end
273
- it 'outputs in long text format' do
274
- allow(@streaming_client).to receive(:before_request)
275
- allow(@streaming_client).to receive(:filter).and_yield(@status)
276
- expect(@stream).to receive(:print_table).with(any_args)
277
- @stream.users('123')
278
- end
279
- end
280
- it 'invokes Twitter::Streaming::Client#follow' do
281
- allow(@streaming_client).to receive(:filter)
282
- expect(@streaming_client).to receive(:filter).with(:follow => '123,456,789')
283
- @stream.users('123', '456', '789')
284
- end
285
- end
286
- end
@@ -1,96 +0,0 @@
1
- # encoding: utf-8
2
- require 'helper'
3
-
4
- describe T::Utils do
5
-
6
- before :all do
7
- Timecop.freeze(Time.utc(2011, 11, 24, 16, 20, 0))
8
- T.utc_offset = -28_800
9
- class Test; end
10
- end
11
-
12
- before do
13
- @test = Test.new
14
- @test.extend(T::Utils)
15
- end
16
-
17
- after :all do
18
- T.utc_offset = nil
19
- Timecop.return
20
- end
21
-
22
- describe '#distance_of_time_in_words' do
23
- it "returns \"a split second\" if difference is less than a second" do
24
- expect(@test.send(:distance_of_time_in_words, (Time.utc(2011, 11, 24, 16, 20, 0)))).to eq 'a split second'
25
- end
26
- it "returns \"a second\" if difference is a second" do
27
- expect(@test.send(:distance_of_time_in_words, (Time.utc(2011, 11, 24, 16, 20, 1)))).to eq 'a second'
28
- end
29
- it "returns \"2 seconds\" if difference is 2 seconds" do
30
- expect(@test.send(:distance_of_time_in_words, (Time.utc(2011, 11, 24, 16, 20, 2)))).to eq '2 seconds'
31
- end
32
- it "returns \"59 seconds\" if difference is just shy of 1 minute" do
33
- expect(@test.send(:distance_of_time_in_words, (Time.utc(2011, 11, 24, 16, 20, 59.9)))).to eq '59 seconds'
34
- end
35
- it "returns \"a minute\" if difference is 1 minute" do
36
- expect(@test.send(:distance_of_time_in_words, (Time.utc(2011, 11, 24, 16, 21, 0)))).to eq 'a minute'
37
- end
38
- it "returns \"2 minutes\" if difference is 2 minutes" do
39
- expect(@test.send(:distance_of_time_in_words, (Time.utc(2011, 11, 24, 16, 22, 0)))).to eq '2 minutes'
40
- end
41
- it "returns \"59 minutes\" if difference is just shy of 1 hour" do
42
- expect(@test.send(:distance_of_time_in_words, (Time.utc(2011, 11, 24, 17, 19, 59.9)))).to eq '59 minutes'
43
- end
44
- it "returns \"an hour\" if difference is 1 hour" do
45
- expect(@test.send(:distance_of_time_in_words, (Time.utc(2011, 11, 24, 17, 20, 0)))).to eq 'an hour'
46
- end
47
- it "returns \"2 hours\" if difference is 2 hours" do
48
- expect(@test.send(:distance_of_time_in_words, (Time.utc(2011, 11, 24, 18, 20, 0)))).to eq '2 hours'
49
- end
50
- it "returns \"23 hours\" if difference is just shy of 23.5 hours" do
51
- expect(@test.send(:distance_of_time_in_words, (Time.utc(2011, 11, 25, 15, 49, 59.9)))).to eq '23 hours'
52
- end
53
- it "returns \"a day\" if difference is 23.5 hours" do
54
- expect(@test.send(:distance_of_time_in_words, (Time.utc(2011, 11, 25, 15, 50, 0)))).to eq 'a day'
55
- end
56
- it "returns \"2 days\" if difference is 2 days" do
57
- expect(@test.send(:distance_of_time_in_words, (Time.utc(2011, 11, 26, 16, 20, 0)))).to eq '2 days'
58
- end
59
- it "returns \"29 days\" if difference is just shy of 29.5 days" do
60
- expect(@test.send(:distance_of_time_in_words, (Time.utc(2011, 12, 24, 4, 19, 59.9)))).to eq '29 days'
61
- end
62
- it "returns \"a month\" if difference is 29.5 days" do
63
- expect(@test.send(:distance_of_time_in_words, (Time.utc(2011, 12, 24, 4, 20, 0)))).to eq 'a month'
64
- end
65
- it "returns \"2 months\" if difference is 2 months" do
66
- expect(@test.send(:distance_of_time_in_words, (Time.utc(2012, 1, 24, 16, 20, 0)))).to eq '2 months'
67
- end
68
- it "returns \"11 months\" if difference is just shy of 11.5 months" do
69
- expect(@test.send(:distance_of_time_in_words, (Time.utc(2012, 11, 8, 11, 19, 59.9)))).to eq '11 months'
70
- end
71
- it "returns \"a year\" if difference is 11.5 months" do
72
- expect(@test.send(:distance_of_time_in_words, (Time.utc(2012, 11, 8, 11, 20, 0)))).to eq 'a year'
73
- end
74
- it "returns \"2 years\" if difference is 2 years" do
75
- expect(@test.send(:distance_of_time_in_words, (Time.utc(2013, 11, 24, 16, 20, 0)))).to eq '2 years'
76
- end
77
- end
78
-
79
- describe '#strip_tags' do
80
- it 'returns string sans tags' do
81
- expect(@test.send(:strip_tags, '<a href="http://twitter.com/#!/download/iphone" rel="nofollow">Twitter for iPhone</a>')).to eq 'Twitter for iPhone'
82
- end
83
- end
84
-
85
- describe '#number_with_delimiter' do
86
- it 'returns number with delimiter' do
87
- expect(@test.send(:number_with_delimiter, 1_234_567_890)).to eq '1,234,567,890'
88
- end
89
- context 'with custom delimiter' do
90
- it 'returns number with custom delimiter' do
91
- expect(@test.send(:number_with_delimiter, 1_234_567_890, '.')).to eq '1.234.567.890'
92
- end
93
- end
94
- end
95
-
96
- end