ppl 1.14.1 → 1.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. data/Gemfile +2 -1
  2. data/Gemfile.lock +3 -1
  3. data/lib/ppl/adapter/color/colored.rb +15 -0
  4. data/lib/ppl/adapter/color.rb +9 -0
  5. data/lib/ppl/application/bootstrap.rb +309 -61
  6. data/lib/ppl/application/configuration.rb +15 -0
  7. data/lib/ppl/command/age.rb +0 -5
  8. data/lib/ppl/command/bday.rb +0 -5
  9. data/lib/ppl/command/email.rb +1 -3
  10. data/lib/ppl/command/ls.rb +0 -5
  11. data/lib/ppl/command/mutt.rb +0 -4
  12. data/lib/ppl/command/name.rb +0 -5
  13. data/lib/ppl/command/nick.rb +1 -3
  14. data/lib/ppl/command/org.rb +1 -3
  15. data/lib/ppl/command/phone.rb +1 -3
  16. data/lib/ppl/command/post.rb +0 -5
  17. data/lib/ppl/command/url.rb +1 -3
  18. data/lib/ppl/format/address_book/ages.rb +2 -4
  19. data/lib/ppl/format/address_book/birthdays.rb +2 -2
  20. data/lib/ppl/format/address_book/email_addresses.rb +3 -3
  21. data/lib/ppl/format/address_book/names.rb +2 -2
  22. data/lib/ppl/format/address_book/nicknames.rb +2 -2
  23. data/lib/ppl/format/address_book/one_line.rb +2 -2
  24. data/lib/ppl/format/address_book/organizations.rb +2 -2
  25. data/lib/ppl/format/address_book/phone_numbers.rb +2 -2
  26. data/lib/ppl/format/address_book/postal_addresses.rb +2 -2
  27. data/lib/ppl/format/address_book/urls.rb +2 -2
  28. data/lib/ppl/format/contact/age.rb +13 -1
  29. data/lib/ppl/format/contact/birthday.rb +11 -0
  30. data/lib/ppl/format/contact/email_addresses.rb +19 -1
  31. data/lib/ppl/format/contact/name.rb +18 -2
  32. data/lib/ppl/format/contact/nicknames.rb +19 -1
  33. data/lib/ppl/format/contact/organization.rb +19 -1
  34. data/lib/ppl/format/contact/phone_number.rb +19 -1
  35. data/lib/ppl/format/contact/urls.rb +19 -1
  36. data/lib/ppl/format/table.rb +15 -6
  37. data/lib/ppl.rb +3 -1
  38. data/ppl.gemspec +4 -2
  39. data/spec/ppl/adapter/color/colored_spec.rb +24 -0
  40. data/spec/ppl/adapter/color_spec.rb +15 -0
  41. data/spec/ppl/application/bootstrap_spec.rb +403 -25
  42. data/spec/ppl/application/configuration_spec.rb +46 -0
  43. data/spec/ppl/command/mutt_spec.rb +4 -0
  44. data/spec/ppl/format/address_book/ages_spec.rb +10 -0
  45. data/spec/ppl/format/address_book/birthdays_spec.rb +10 -0
  46. data/spec/ppl/format/address_book/email_addresses_spec.rb +12 -2
  47. data/spec/ppl/format/address_book/names_spec.rb +10 -0
  48. data/spec/ppl/format/address_book/nicknames_spec.rb +10 -0
  49. data/spec/ppl/format/address_book/one_line_spec.rb +10 -0
  50. data/spec/ppl/format/address_book/organizations_spec.rb +10 -0
  51. data/spec/ppl/format/address_book/phone_numbers_spec.rb +10 -0
  52. data/spec/ppl/format/address_book/postal_addresses_spec.rb +10 -0
  53. data/spec/ppl/format/address_book/urls_spec.rb +10 -0
  54. data/spec/ppl/format/contact/age_spec.rb +10 -0
  55. data/spec/ppl/format/contact/birthday_spec.rb +8 -0
  56. data/spec/ppl/format/contact/email_addresses_spec.rb +8 -0
  57. data/spec/ppl/format/contact/name_spec.rb +8 -0
  58. data/spec/ppl/format/contact/nicknames_spec.rb +8 -0
  59. data/spec/ppl/format/contact/organization_spec.rb +8 -0
  60. data/spec/ppl/format/contact/phone_number_spec.rb +8 -0
  61. data/spec/ppl/format/contact/urls_spec.rb +8 -0
  62. data/spec/ppl/format/table_spec.rb +20 -0
  63. metadata +38 -2
@@ -5,22 +5,403 @@ describe Ppl::Application::Bootstrap do
5
5
  @bootstrap = Ppl::Application::Bootstrap.new
6
6
  end
7
7
 
8
- describe "#commands" do
9
- before(:each) do
10
- @bootstrap.stub(:storage_adapter).and_return(Ppl::Adapter::Storage.new)
8
+ describe "#command_add" do
9
+ it "should return a Ppl::Command::Add" do
10
+ @bootstrap.command_add.should be_a(Ppl::Command::Add)
11
+ end
12
+ end
13
+
14
+ describe "#command_age" do
15
+ it "should return a Ppl::Command::Age" do
16
+ @bootstrap.command_age.should be_a(Ppl::Command::Age)
17
+ end
18
+ end
19
+
20
+ describe "#command_bday" do
21
+ it "should return a Ppl::Command::Bday" do
22
+ @bootstrap.command_bday.should be_a(Ppl::Command::Bday)
23
+ end
24
+ end
25
+
26
+ describe "#command_email" do
27
+ it "should return a Ppl::Command::Email" do
28
+ @bootstrap.command_email.should be_a(Ppl::Command::Email)
29
+ end
30
+ end
31
+
32
+ describe "#command_help" do
33
+ it "should return a Ppl::Command::Help" do
34
+ @bootstrap.command_help.should be_a(Ppl::Command::Help)
35
+ end
36
+ end
37
+
38
+ describe "#command_init" do
39
+ it "should return a Ppl::Command::Init" do
40
+ @bootstrap.command_init.should be_a(Ppl::Command::Init)
41
+ end
42
+ end
43
+
44
+ describe "#command_ls" do
45
+ it "should return a Ppl::Command::Ls" do
46
+ @bootstrap.command_ls.should be_a(Ppl::Command::Ls)
47
+ end
48
+ end
49
+
50
+ describe "#command_mutt" do
51
+ it "should return a Ppl::Command::Mutt" do
52
+ @bootstrap.command_mutt.should be_a(Ppl::Command::Mutt)
53
+ end
54
+ end
55
+
56
+ describe "#command_mv" do
57
+ it "should return a Ppl::Command::Mv" do
58
+ @bootstrap.command_mv.should be_a(Ppl::Command::Mv)
59
+ end
60
+ end
61
+
62
+ describe "#command_name" do
63
+ it "should return a Ppl::Command::Name" do
64
+ @bootstrap.command_name.should be_a(Ppl::Command::Name)
65
+ end
66
+ end
67
+
68
+ describe "#command_nick" do
69
+ it "should return a Ppl::Command::Nick" do
70
+ @bootstrap.command_nick.should be_a(Ppl::Command::Nick)
71
+ end
72
+ end
73
+
74
+ describe "#command_org" do
75
+ it "should return a Ppl::Command::Org" do
76
+ @bootstrap.command_org.should be_a(Ppl::Command::Org)
77
+ end
78
+ end
79
+
80
+ describe "#command_phone" do
81
+ it "should return a Ppl::Command::Phone" do
82
+ @bootstrap.command_phone.should be_a(Ppl::Command::Phone)
83
+ end
84
+ end
85
+
86
+ describe "#command_post" do
87
+ it "should return a Ppl::Command::Post" do
88
+ @bootstrap.command_post.should be_a(Ppl::Command::Post)
89
+ end
90
+ end
91
+
92
+ describe "#command_pull" do
93
+ it "should return a command" do
94
+ @bootstrap.command_pull.should be_a(Ppl::Application::Command)
95
+ end
96
+ end
97
+
98
+ describe "#command_push" do
99
+ it "should return a command" do
100
+ @bootstrap.command_push.should be_a(Ppl::Application::Command)
101
+ end
102
+ end
103
+
104
+ describe "#command_remote" do
105
+ it "should return a command" do
106
+ @bootstrap.command_remote.should be_a(Ppl::Application::Command)
107
+ end
108
+ end
109
+
110
+ describe "#command_rm" do
111
+ it "should return a Ppl::Command::Rm" do
112
+ @bootstrap.command_rm.should be_a(Ppl::Command::Rm)
113
+ end
114
+ end
115
+
116
+ describe "#command_shell" do
117
+ it "should return a Ppl::Command::Shell" do
118
+ @bootstrap.command_shell.should be_a(Ppl::Command::Shell)
119
+ end
120
+ end
121
+
122
+ describe "#command_show" do
123
+ it "should return a Ppl::Command::Show" do
124
+ @bootstrap.command_show.should be_a(Ppl::Command::Show)
125
+ end
126
+ end
127
+
128
+ describe "#command_url" do
129
+ it "should return a Ppl::Command::Url" do
130
+ @bootstrap.command_url.should be_a(Ppl::Command::Url)
131
+ end
132
+ end
133
+
134
+ describe "#command_version" do
135
+ it "should return a Ppl::Command::Version" do
136
+ @bootstrap.command_version.should be_a(Ppl::Command::Version)
137
+ end
138
+ end
139
+
140
+ describe "#format_address_book_ages" do
141
+
142
+ it "should return a Ppl::Format::AddressBook::Ages" do
143
+ @bootstrap.format_address_book_ages.should be_a(Ppl::Format::AddressBook::Ages)
144
+ end
145
+
146
+ it "should set up colored output if configured to do so" do
147
+ @colors = {}
148
+ @config = double(Ppl::Application::Configuration)
149
+ @bootstrap.stub(:configuration).and_return(@config)
150
+ @config.should_receive(:color_enabled).with("age").and_return(true)
151
+ @config.should_receive(:command_colors).with("age").and_return(@colors)
152
+ @bootstrap.format_address_book_ages
153
+ end
154
+
155
+ end
156
+
157
+ describe "#format_address_book_birthdays" do
158
+ it "should return a Ppl::Format::AddressBook::Birthdays" do
159
+ @bootstrap.format_address_book_birthdays.should be_a(Ppl::Format::AddressBook::Birthdays)
160
+ end
161
+
162
+ it "should set up colored output if configured to do so" do
163
+ @colors = {}
164
+ @config = double(Ppl::Application::Configuration)
165
+ @bootstrap.stub(:configuration).and_return(@config)
166
+ @config.should_receive(:color_enabled).with("bday").and_return(true)
167
+ @config.should_receive(:command_colors).with("bday").and_return(@colors)
168
+ @bootstrap.format_address_book_birthdays
11
169
  end
12
- it "should return an array" do
13
- @bootstrap.commands.should be_an(Array)
170
+ end
171
+
172
+ describe "#format_address_book_email_addresses" do
173
+ it "should return a Ppl::Format::AddressBook::EmailAddresses" do
174
+ @bootstrap.format_address_book_email_addresses.should be_a(Ppl::Format::AddressBook::EmailAddresses)
14
175
  end
15
- it "should return commands" do
16
- @bootstrap.commands.each do |command|
17
- command.should be_a(Ppl::Application::Command)
18
- end
176
+ it "should set up colored output if configured to do so" do
177
+ @colors = {}
178
+ @config = double(Ppl::Application::Configuration)
179
+ @bootstrap.stub(:configuration).and_return(@config)
180
+ @config.should_receive(:color_enabled).with("email").and_return(true)
181
+ @config.should_receive(:command_colors).with("email").and_return(@colors)
182
+ @bootstrap.format_address_book_email_addresses
19
183
  end
20
- it "should inject a storage adapter into each command" do
21
- @bootstrap.commands.each do |command|
22
- command.storage.should be_a(Ppl::Adapter::Storage)
23
- end
184
+ end
185
+
186
+ describe "#format_address_book_mutt_query" do
187
+ it "should return a Ppl::Format::AddressBook::MuttQuery" do
188
+ @bootstrap.format_address_book_mutt_query.should be_a(Ppl::Format::AddressBook::MuttQuery)
189
+ end
190
+ end
191
+
192
+ describe "#format_address_book_organizations" do
193
+ it "should return a Ppl::Format::AddressBook::Organizations" do
194
+ @bootstrap.format_address_book_organizations.should be_a(Ppl::Format::AddressBook::Organizations)
195
+ end
196
+ it "should set up colored output if configured to do so" do
197
+ @colors = {}
198
+ @config = double(Ppl::Application::Configuration)
199
+ @bootstrap.stub(:configuration).and_return(@config)
200
+ @config.should_receive(:color_enabled).with("org").and_return(true)
201
+ @config.should_receive(:command_colors).with("org").and_return(@colors)
202
+ @bootstrap.format_address_book_organizations
203
+ end
204
+ end
205
+
206
+ describe "#format_address_book_names" do
207
+ it "should return a Ppl::Format::AddressBook::Names" do
208
+ @bootstrap.format_address_book_names.should be_a(Ppl::Format::AddressBook::Names)
209
+ end
210
+ it "should set up colored output if configured to do so" do
211
+ @colors = {}
212
+ @config = double(Ppl::Application::Configuration)
213
+ @bootstrap.stub(:configuration).and_return(@config)
214
+ @config.should_receive(:color_enabled).with("name").and_return(true)
215
+ @config.should_receive(:command_colors).with("name").and_return(@colors)
216
+ @bootstrap.format_address_book_names
217
+ end
218
+ end
219
+
220
+ describe "#format_address_book_nicknames" do
221
+ it "should return a Ppl::Format::AddressBook::Nicknames" do
222
+ @bootstrap.format_address_book_nicknames.should be_a(Ppl::Format::AddressBook::Nicknames)
223
+ end
224
+ it "should set up colored output if configured to do so" do
225
+ @colors = {}
226
+ @config = double(Ppl::Application::Configuration)
227
+ @bootstrap.stub(:configuration).and_return(@config)
228
+ @config.should_receive(:color_enabled).with("nick").and_return(true)
229
+ @config.should_receive(:command_colors).with("nick").and_return(@colors)
230
+ @bootstrap.format_address_book_nicknames
231
+ end
232
+ end
233
+
234
+ describe "#format_address_book_one_line" do
235
+ it "should return a Ppl::Format::AddressBook::OneLine" do
236
+ @bootstrap.format_address_book_one_line.should be_a(Ppl::Format::AddressBook::OneLine)
237
+ end
238
+ it "should set up colored output if configured to do so" do
239
+ @colors = {}
240
+ @config = double(Ppl::Application::Configuration)
241
+ @bootstrap.stub(:configuration).and_return(@config)
242
+ @config.should_receive(:color_enabled).with("ls").and_return(true)
243
+ @config.should_receive(:command_colors).with("ls").and_return(@colors)
244
+ @bootstrap.format_address_book_one_line
245
+ end
246
+ end
247
+
248
+ describe "#format_address_book_phone_numbers" do
249
+ it "should return a Ppl::Format::Address_book::PhoneNumbers" do
250
+ @bootstrap.format_address_book_phone_numbers.should be_a(Ppl::Format::AddressBook::PhoneNumbers)
251
+ end
252
+ it "should set up colored output if configured to do so" do
253
+ @colors = {}
254
+ @config = double(Ppl::Application::Configuration)
255
+ @bootstrap.stub(:configuration).and_return(@config)
256
+ @config.should_receive(:color_enabled).with("phone").and_return(true)
257
+ @config.should_receive(:command_colors).with("phone").and_return(@colors)
258
+ @bootstrap.format_address_book_phone_numbers
259
+ end
260
+ end
261
+
262
+ describe "#format_address_book_postal_addresses" do
263
+ it "should return a Ppl::Format::AddressBook::PostalAddresses" do
264
+ @bootstrap.format_address_book_postal_addresses.should be_a(Ppl::Format::AddressBook::PostalAddresses)
265
+ end
266
+ it "should set up colored output if configured to do so" do
267
+ @colors = {}
268
+ @config = double(Ppl::Application::Configuration)
269
+ @bootstrap.stub(:configuration).and_return(@config)
270
+ @config.should_receive(:color_enabled).with("post").and_return(true)
271
+ @config.should_receive(:command_colors).with("post").and_return(@colors)
272
+ @bootstrap.format_address_book_postal_addresses
273
+ end
274
+ end
275
+
276
+ describe "#format_address_book_urls" do
277
+ it "should return a Ppl::Format::AddressBook::Urls" do
278
+ @bootstrap.format_address_book_urls.should be_a(Ppl::Format::AddressBook::Urls)
279
+ end
280
+ it "should set up colored output if configured to do so" do
281
+ @colors = {}
282
+ @config = double(Ppl::Application::Configuration)
283
+ @bootstrap.stub(:configuration).and_return(@config)
284
+ @config.should_receive(:color_enabled).with("url").and_return(true)
285
+ @config.should_receive(:command_colors).with("url").and_return(@colors)
286
+ @bootstrap.format_address_book_urls
287
+ end
288
+ end
289
+
290
+ describe "#format_contact_age" do
291
+ it "should return a Ppl::Format::Contact::Age" do
292
+ @bootstrap.format_contact_age.should be_a(Ppl::Format::Contact::Age)
293
+ end
294
+ it "should set up colored output if configured to do so" do
295
+ @colors = {}
296
+ @config = double(Ppl::Application::Configuration)
297
+ @bootstrap.stub(:configuration).and_return(@config)
298
+ @config.should_receive(:color_enabled).with("age").and_return(true)
299
+ @config.should_receive(:command_colors).with("age").and_return(@colors)
300
+ @bootstrap.format_contact_age
301
+ end
302
+ end
303
+
304
+ describe "#format_contact_birthday" do
305
+ it "should return a Ppl::Format::Contact::Birthday" do
306
+ @bootstrap.format_contact_birthday.should be_a(Ppl::Format::Contact::Birthday)
307
+ end
308
+ it "should set up colored output if configured to do so" do
309
+ @colors = {}
310
+ @config = double(Ppl::Application::Configuration)
311
+ @bootstrap.stub(:configuration).and_return(@config)
312
+ @config.should_receive(:color_enabled).with("bday").and_return(true)
313
+ @config.should_receive(:command_colors).with("bday").and_return(@colors)
314
+ @bootstrap.format_contact_birthday
315
+ end
316
+ end
317
+
318
+ describe "#format_contact_email_addresses" do
319
+ it "should return a Ppl::Format::Contact::EmailAddresses" do
320
+ @bootstrap.format_contact_email_addresses.should be_a(Ppl::Format::Contact::EmailAddresses)
321
+ end
322
+ it "should set up colored output if configured to do so" do
323
+ @colors = {}
324
+ @config = double(Ppl::Application::Configuration)
325
+ @bootstrap.stub(:configuration).and_return(@config)
326
+ @config.should_receive(:color_enabled).with("email").and_return(true)
327
+ @config.should_receive(:command_colors).with("email").and_return(@colors)
328
+ @bootstrap.format_contact_email_addresses
329
+ end
330
+ end
331
+
332
+ describe "#format_contact_name" do
333
+ it "should return a Ppl::Format::Contact::Name" do
334
+ @bootstrap.format_contact_name.should be_a(Ppl::Format::Contact::Name)
335
+ end
336
+ it "should set up colored output if configured to do so" do
337
+ @colors = {}
338
+ @config = double(Ppl::Application::Configuration)
339
+ @bootstrap.stub(:configuration).and_return(@config)
340
+ @config.should_receive(:color_enabled).with("name").and_return(true)
341
+ @config.should_receive(:command_colors).with("name").and_return(@colors)
342
+ @bootstrap.format_contact_name
343
+ end
344
+ end
345
+
346
+ describe "#format_contact_nicknames" do
347
+ it "should return a Ppl::Format::Contact::Nicknames" do
348
+ @bootstrap.format_contact_nicknames.should be_a(Ppl::Format::Contact::Nicknames)
349
+ end
350
+ it "should set up colored output if configured to do so" do
351
+ @colors = {}
352
+ @config = double(Ppl::Application::Configuration)
353
+ @bootstrap.stub(:configuration).and_return(@config)
354
+ @config.should_receive(:color_enabled).with("nick").and_return(true)
355
+ @config.should_receive(:command_colors).with("nick").and_return(@colors)
356
+ @bootstrap.format_contact_nicknames
357
+ end
358
+ end
359
+
360
+ describe "#format_contact_organizations" do
361
+ it "should return a Ppl::Format::Contact::Organizations" do
362
+ @bootstrap.format_contact_organizations.should be_a(Ppl::Format::Contact::Organization)
363
+ end
364
+ it "should set up colored output if configured to do so" do
365
+ @colors = {}
366
+ @config = double(Ppl::Application::Configuration)
367
+ @bootstrap.stub(:configuration).and_return(@config)
368
+ @config.should_receive(:color_enabled).with("org").and_return(true)
369
+ @config.should_receive(:command_colors).with("org").and_return(@colors)
370
+ @bootstrap.format_contact_organizations
371
+ end
372
+ end
373
+
374
+ describe "#format_contact_phone_numbers" do
375
+ it "should return a Ppl::Format::Contact::PhoneNumber" do
376
+ @bootstrap.format_contact_phone_numbers.should be_a(Ppl::Format::Contact::PhoneNumber)
377
+ end
378
+ it "should set up colored output if configured to do so" do
379
+ @colors = {}
380
+ @config = double(Ppl::Application::Configuration)
381
+ @bootstrap.stub(:configuration).and_return(@config)
382
+ @config.should_receive(:color_enabled).with("phone").and_return(true)
383
+ @config.should_receive(:command_colors).with("phone").and_return(@colors)
384
+ @bootstrap.format_contact_phone_numbers
385
+ end
386
+ end
387
+
388
+ describe "#format_contact_postal_addresses" do
389
+ it "should return a Ppl::Format::Contact::PostalAddress" do
390
+ @bootstrap.format_contact_postal_addresses.should be_a(Ppl::Format::Contact::PostalAddress)
391
+ end
392
+ end
393
+
394
+ describe "#format_contact_urls" do
395
+ it "should return a Ppl::Format::Contact::Urls" do
396
+ @bootstrap.format_contact_urls.should be_a(Ppl::Format::Contact::Urls)
397
+ end
398
+ it "should set up colored output if configured to do so" do
399
+ @colors = {}
400
+ @config = double(Ppl::Application::Configuration)
401
+ @bootstrap.stub(:configuration).and_return(@config)
402
+ @config.should_receive(:color_enabled).with("url").and_return(true)
403
+ @config.should_receive(:command_colors).with("url").and_return(@colors)
404
+ @bootstrap.format_contact_urls
24
405
  end
25
406
  end
26
407
 
@@ -72,6 +453,15 @@ describe Ppl::Application::Bootstrap do
72
453
  it "should contain the 'post' command" do
73
454
  @bootstrap.command_suite.find_command("post").should_not be nil
74
455
  end
456
+ it "should contain the 'pull' command" do
457
+ @bootstrap.command_suite.find_command("pull").should_not be nil
458
+ end
459
+ it "should contain the 'push' command" do
460
+ @bootstrap.command_suite.find_command("push").should_not be nil
461
+ end
462
+ it "should contain the 'remote' command" do
463
+ @bootstrap.command_suite.find_command("remote").should_not be nil
464
+ end
75
465
  it "should contain the 'rm' command" do
76
466
  @bootstrap.command_suite.find_command("rm").should_not be nil
77
467
  end
@@ -92,18 +482,6 @@ describe Ppl::Application::Bootstrap do
92
482
  end
93
483
  end
94
484
 
95
- describe "#git_commands" do
96
- it "should contain the 'pull' command" do
97
- @bootstrap.git_commands[0].name.should eq "pull"
98
- end
99
- it "should contain the 'push' command" do
100
- @bootstrap.git_commands[1].name.should eq "push"
101
- end
102
- it "should contain the 'remote' command" do
103
- @bootstrap.git_commands[2].name.should eq "remote"
104
- end
105
- end
106
-
107
485
  describe "#configuration" do
108
486
  it "should return a Ppl::Application::Configuration" do
109
487
  @bootstrap.configuration.should be_a(Ppl::Application::Configuration)
@@ -28,5 +28,51 @@ describe Ppl::Application::Configuration do
28
28
  end
29
29
  end
30
30
 
31
+ describe "#color_enabled" do
32
+
33
+ it "should return true if color is explicitly enabled" do
34
+ @config.stub(:user_configuration).and_return({
35
+ "color" => {
36
+ "cmd" => "true",
37
+ },
38
+ })
39
+ @config.color_enabled("cmd").should eq true
40
+ end
41
+
42
+ it "should return false if color is not explicitly enabled" do
43
+ @config.color_enabled("cmd").should eq false
44
+ end
45
+
46
+ it "should return false if color is explicitly disabled" do
47
+ @config.stub(:user_configuration).and_return({
48
+ "color" => {
49
+ "cmd" => "false",
50
+ },
51
+ })
52
+ @config.color_enabled("cmd").should eq false
53
+ end
54
+
55
+ end
56
+
57
+ describe "#command_colors" do
58
+
59
+ it "should return the colors configured for the given command" do
60
+ @config.stub(:user_configuration).and_return({
61
+ "color \"ls\"" => {
62
+ "id" => "blue",
63
+ },
64
+ })
65
+ @config.command_colors("ls").should eq({
66
+ "id" => "blue",
67
+ })
68
+ end
69
+
70
+ it "should return nil if no colors are configured for the given command" do
71
+ @config.stub(:user_configuration).and_return({})
72
+ @config.command_colors("ls").should eq(nil)
73
+ end
74
+
75
+ end
76
+
31
77
  end
32
78
 
@@ -6,11 +6,13 @@ describe Ppl::Command::Mutt do
6
6
  @input = Ppl::Application::Input.new
7
7
  @output = double(Ppl::Application::Output)
8
8
  @storage = double(Ppl::Adapter::Storage)
9
+ @format = double(Ppl::Format::AddressBook)
9
10
 
10
11
  @address_book = Ppl::Entity::AddressBook.new
11
12
  @contact = Ppl::Entity::Contact.new
12
13
 
13
14
  @command.storage = @storage
15
+ @command.format = @format
14
16
  end
15
17
 
16
18
  describe "#name" do
@@ -41,6 +43,7 @@ describe Ppl::Command::Mutt do
41
43
  @input.arguments.push "example"
42
44
 
43
45
  @storage.should_receive(:load_address_book).and_return(@address_book)
46
+ @format.should_receive(:process).and_return("test@example.org\tTest User")
44
47
  @output.should_receive(:line) do |line|
45
48
  line.should include "Searching address book... 1 entries... 1 matching:"
46
49
  line.should include "test@example.org\tTest User"
@@ -57,6 +60,7 @@ describe Ppl::Command::Mutt do
57
60
  @input.arguments.push "User"
58
61
 
59
62
  @storage.should_receive(:load_address_book).and_return(@address_book)
63
+ @format.should_receive(:process).and_return("test@example.org\tTest User")
60
64
  @output.should_receive(:line) do |line|
61
65
  line.should include "Searching address book... 1 entries... 1 matching:"
62
66
  line.should include "test@example.org\tTest User"
@@ -1,4 +1,14 @@
1
1
 
2
+ describe Ppl::Format::AddressBook::Ages do
3
+ describe "#initialize" do
4
+ it "should pass the colors through to the table" do
5
+ colors = {"id" => "blue"}
6
+ Ppl::Format::Table.should_receive(:new).with([:id, :age], colors)
7
+ format = Ppl::Format::AddressBook::Ages.new(colors)
8
+ end
9
+ end
10
+ end
11
+
2
12
  describe Ppl::Format::AddressBook::Ages do
3
13
 
4
14
  before(:each) do
@@ -1,4 +1,14 @@
1
1
 
2
+ describe Ppl::Format::AddressBook::Birthdays do
3
+ describe "#initialize" do
4
+ it "should pass the colors through to the table" do
5
+ colors = {"id" => "blue"}
6
+ Ppl::Format::Table.should_receive(:new).with([:id, :birthday], colors)
7
+ format = Ppl::Format::AddressBook::Birthdays.new(colors)
8
+ end
9
+ end
10
+ end
11
+
2
12
  describe Ppl::Format::AddressBook::Birthdays do
3
13
 
4
14
  before(:each) do
@@ -1,4 +1,14 @@
1
1
 
2
+ describe Ppl::Format::AddressBook::EmailAddresses do
3
+ describe "#initialize" do
4
+ it "should pass the colors through to the table" do
5
+ colors = {"id" => "blue"}
6
+ Ppl::Format::Table.should_receive(:new).with([:id, :email_addresses], colors)
7
+ format = Ppl::Format::AddressBook::EmailAddresses.new(colors)
8
+ end
9
+ end
10
+ end
11
+
2
12
  describe Ppl::Format::AddressBook::EmailAddresses do
3
13
 
4
14
  before(:each) do
@@ -17,7 +27,7 @@ describe Ppl::Format::AddressBook::EmailAddresses do
17
27
 
18
28
  it "should at least show the contact's id" do
19
29
  @table.should_receive(:add_row).with({
20
- :contact_id => "test:",
30
+ :id => "test:",
21
31
  :email_addresses => "",
22
32
  })
23
33
  @format.process(@address_book)
@@ -26,7 +36,7 @@ describe Ppl::Format::AddressBook::EmailAddresses do
26
36
  it "should show an email address if it's available" do
27
37
  @contact.email_addresses.push "jdoe@example.org"
28
38
  @table.should_receive(:add_row).with({
29
- :contact_id => "test:",
39
+ :id => "test:",
30
40
  :email_addresses => "jdoe@example.org",
31
41
  })
32
42
  @format.process(@address_book)
@@ -1,4 +1,14 @@
1
1
 
2
+ describe Ppl::Format::AddressBook::Names do
3
+ describe "#initialize" do
4
+ it "should pass the colors through to the table" do
5
+ colors = {"id" => "blue"}
6
+ Ppl::Format::Table.should_receive(:new).with([:id, :name], colors)
7
+ format = Ppl::Format::AddressBook::Names.new(colors)
8
+ end
9
+ end
10
+ end
11
+
2
12
  describe Ppl::Format::AddressBook::Names do
3
13
 
4
14
  before(:each) do
@@ -1,4 +1,14 @@
1
1
 
2
+ describe Ppl::Format::AddressBook::Nicknames do
3
+ describe "#initialize" do
4
+ it "should pass the colors through to the table" do
5
+ colors = {"id" => "blue"}
6
+ Ppl::Format::Table.should_receive(:new).with([:id, :nicknames], colors)
7
+ format = Ppl::Format::AddressBook::Nicknames.new(colors)
8
+ end
9
+ end
10
+ end
11
+
2
12
  describe Ppl::Format::AddressBook::Nicknames do
3
13
 
4
14
  before(:each) do
@@ -1,4 +1,14 @@
1
1
 
2
+ describe Ppl::Format::AddressBook::OneLine do
3
+ describe "#initialize" do
4
+ it "should pass the colors through to the table" do
5
+ colors = {"id" => "blue"}
6
+ Ppl::Format::Table.should_receive(:new).with([:id, :name, :email], colors)
7
+ format = Ppl::Format::AddressBook::OneLine.new(colors)
8
+ end
9
+ end
10
+ end
11
+
2
12
  describe Ppl::Format::AddressBook::OneLine do
3
13
 
4
14
  before(:each) do
@@ -1,4 +1,14 @@
1
1
 
2
+ describe Ppl::Format::AddressBook::Organizations do
3
+ describe "#initialize" do
4
+ it "should pass the colors through to the table" do
5
+ colors = {"id" => "blue"}
6
+ Ppl::Format::Table.should_receive(:new).with([:id, :organizations], colors)
7
+ format = Ppl::Format::AddressBook::Organizations.new(colors)
8
+ end
9
+ end
10
+ end
11
+
2
12
  describe Ppl::Format::AddressBook::Organizations do
3
13
 
4
14
  before(:each) do
@@ -1,4 +1,14 @@
1
1
 
2
+ describe Ppl::Format::AddressBook::PhoneNumbers do
3
+ describe "#initialize" do
4
+ it "should pass the colors through to the table" do
5
+ colors = {"id" => "blue"}
6
+ Ppl::Format::Table.should_receive(:new).with([:id, :phone_numbers], colors)
7
+ format = Ppl::Format::AddressBook::PhoneNumbers.new(colors)
8
+ end
9
+ end
10
+ end
11
+
2
12
  describe Ppl::Format::AddressBook::PhoneNumbers do
3
13
 
4
14
  before(:each) do
@@ -1,4 +1,14 @@
1
1
 
2
+ describe Ppl::Format::AddressBook::PostalAddresses do
3
+ describe "#initialize" do
4
+ it "should pass the colors through to the table" do
5
+ colors = {"id" => "blue"}
6
+ Ppl::Format::Table.should_receive(:new).with([:id, :postal_address], colors)
7
+ format = Ppl::Format::AddressBook::PostalAddresses.new(colors)
8
+ end
9
+ end
10
+ end
11
+
2
12
  describe Ppl::Format::AddressBook::PostalAddresses do
3
13
 
4
14
  before(:each) do