t 2.7.0 → 2.8.0

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.
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