ppl 1.25.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/features/email.feature +10 -0
- data/features/ls.feature +15 -0
- data/features/post.feature +24 -0
- data/features/step_definitions/ppl_steps.rb +17 -0
- data/lib/ppl/adapter/vcard/greencard.rb +49 -19
- data/lib/ppl/application/bootstrap.rb +13 -3
- data/lib/ppl/application/shell.rb +2 -0
- data/lib/ppl/command/post.rb +60 -16
- data/lib/ppl/entity/contact.rb +10 -4
- data/lib/ppl/entity/postal_address.rb +6 -0
- data/lib/ppl/error/postal_address_not_found.rb +4 -0
- data/lib/ppl/format/address_book/postal_addresses.rb +5 -18
- data/lib/ppl/format/contact/full.rb +5 -6
- data/lib/ppl/format/contact/postal_addresses.rb +26 -0
- data/lib/ppl/format/custom/contact.rb +8 -12
- data/lib/ppl/format/postal_address/multi_line.rb +16 -0
- data/lib/ppl/format/postal_address/one_line.rb +21 -9
- data/lib/ppl/service/postal_address.rb +65 -0
- data/lib/ppl.rb +5 -1
- data/ppl.gemspec +4 -4
- data/spec/ppl/adapter/vcard/greencard_spec.rb +151 -98
- data/spec/ppl/application/bootstrap_spec.rb +14 -2
- data/spec/ppl/application/shell_spec.rb +8 -0
- data/spec/ppl/command/post_spec.rb +83 -61
- data/spec/ppl/entity/contact_spec.rb +40 -10
- data/spec/ppl/entity/postal_address_spec.rb +6 -0
- data/spec/ppl/format/address_book/postal_addresses_spec.rb +6 -14
- data/spec/ppl/format/contact/full_spec.rb +1 -1
- data/spec/ppl/format/contact/postal_addresses_spec.rb +36 -0
- data/spec/ppl/format/postal_address/multi_line_spec.rb +57 -0
- data/spec/ppl/format/postal_address/one_line_spec.rb +32 -18
- data/spec/ppl/service/postal_address_spec.rb +152 -0
- metadata +13 -4
@@ -24,6 +24,12 @@ describe Ppl::Entity::Contact do
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
+
describe "#postal_addresses" do
|
28
|
+
it "should return an array" do
|
29
|
+
@contact.postal_addresses.should be_a(Array)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
27
33
|
describe "#birthday" do
|
28
34
|
it "should return a value" do
|
29
35
|
@contact.birthday.should eq nil
|
@@ -36,16 +42,6 @@ describe Ppl::Entity::Contact do
|
|
36
42
|
end
|
37
43
|
end
|
38
44
|
|
39
|
-
describe "#has_email_address?" do
|
40
|
-
it "should know if the contact has the given email address" do
|
41
|
-
@contact.email_addresses.push "test@example.org"
|
42
|
-
@contact.has_email_address?("test@example.org").should eq true
|
43
|
-
end
|
44
|
-
it "should know if the contact lacks the given email address" do
|
45
|
-
@contact.has_email_address?("test@example.org").should eq false
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
45
|
describe "#urls" do
|
50
46
|
it "should return an array" do
|
51
47
|
@contact.urls.should be_a(Array)
|
@@ -80,5 +76,39 @@ describe Ppl::Entity::Contact do
|
|
80
76
|
end
|
81
77
|
end
|
82
78
|
|
79
|
+
describe "#preferred_email_address" do
|
80
|
+
|
81
|
+
before(:each) do
|
82
|
+
@contact.email_addresses << Ppl::Entity::EmailAddress.new
|
83
|
+
end
|
84
|
+
|
85
|
+
it "returns nil if there's no preferred address" do
|
86
|
+
@contact.preferred_email_address.should eq nil
|
87
|
+
end
|
88
|
+
|
89
|
+
it "returns the preferred email address" do
|
90
|
+
@contact.email_addresses[0].preferred = true
|
91
|
+
@contact.preferred_email_address.should be_a(Ppl::Entity::EmailAddress)
|
92
|
+
end
|
93
|
+
|
94
|
+
end
|
95
|
+
|
96
|
+
describe "#preferred_phone_number" do
|
97
|
+
|
98
|
+
before(:each) do
|
99
|
+
@contact.phone_numbers << Ppl::Entity::PhoneNumber.new
|
100
|
+
end
|
101
|
+
|
102
|
+
it "returns nil if there's no preferred number" do
|
103
|
+
@contact.preferred_phone_number.should eq nil
|
104
|
+
end
|
105
|
+
|
106
|
+
it "returns the preferred phone number" do
|
107
|
+
@contact.phone_numbers[0].preferred = true
|
108
|
+
@contact.preferred_phone_number.should be_a(Ppl::Entity::PhoneNumber)
|
109
|
+
end
|
110
|
+
|
111
|
+
end
|
112
|
+
|
83
113
|
end
|
84
114
|
|
@@ -5,6 +5,12 @@ describe Ppl::Entity::PostalAddress do
|
|
5
5
|
@address = Ppl::Entity::PostalAddress.new
|
6
6
|
end
|
7
7
|
|
8
|
+
describe "#preferred" do
|
9
|
+
it "should be false by default" do
|
10
|
+
@address.preferred.should eq false
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
8
14
|
describe "#street" do
|
9
15
|
it "should return a value" do
|
10
16
|
@address.street.should be nil
|
@@ -3,7 +3,7 @@ describe Ppl::Format::AddressBook::PostalAddresses do
|
|
3
3
|
describe "#initialize" do
|
4
4
|
it "should pass the colors through to the table" do
|
5
5
|
colors = {"id" => "blue"}
|
6
|
-
Ppl::Format::Table.should_receive(:new).with([:id, :
|
6
|
+
Ppl::Format::Table.should_receive(:new).with([:id, :address_ids], colors)
|
7
7
|
format = Ppl::Format::AddressBook::PostalAddresses.new(colors)
|
8
8
|
end
|
9
9
|
end
|
@@ -18,8 +18,9 @@ describe Ppl::Format::AddressBook::PostalAddresses do
|
|
18
18
|
@address = Ppl::Entity::PostalAddress.new
|
19
19
|
@table = double(Ppl::Format::Table)
|
20
20
|
|
21
|
+
@address.id = "home"
|
21
22
|
@contact.id = "test"
|
22
|
-
@contact.
|
23
|
+
@contact.postal_addresses << @address
|
23
24
|
@format.table = @table
|
24
25
|
|
25
26
|
@address_book.contacts.push(@contact)
|
@@ -27,19 +28,10 @@ describe Ppl::Format::AddressBook::PostalAddresses do
|
|
27
28
|
|
28
29
|
describe "#process" do
|
29
30
|
|
30
|
-
it "
|
31
|
+
it "shows the contact's and address' IDs" do
|
31
32
|
@table.should_receive(:add_row).with({
|
32
|
-
:id
|
33
|
-
:
|
34
|
-
})
|
35
|
-
@format.process(@address_book)
|
36
|
-
end
|
37
|
-
|
38
|
-
it "should show the postal address if it's available" do
|
39
|
-
@address.street = "1 Test Road"
|
40
|
-
@table.should_receive(:add_row).with({
|
41
|
-
:id => "test:",
|
42
|
-
:postal_address => "1 Test Road",
|
33
|
+
:id => "test:",
|
34
|
+
:address_ids => "home",
|
43
35
|
})
|
44
36
|
@format.process(@address_book)
|
45
37
|
end
|
@@ -64,7 +64,7 @@ describe Ppl::Format::Contact::Full do
|
|
64
64
|
end
|
65
65
|
|
66
66
|
it "should show their postal address if available" do
|
67
|
-
@contact.
|
67
|
+
@contact.postal_addresses << @address
|
68
68
|
@postal_address_format.should_receive(:process).and_return("")
|
69
69
|
@format.process(@contact)
|
70
70
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
|
2
|
+
describe Ppl::Format::Contact::PostalAddresses do
|
3
|
+
describe "#initialize" do
|
4
|
+
it "should pass the colors through to the table" do
|
5
|
+
colors = {"address_id" => "blue"}
|
6
|
+
Ppl::Format::Table.should_receive(:new).with([:star, :address_id, :address_text], colors)
|
7
|
+
format = Ppl::Format::Contact::PostalAddresses.new(colors)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe Ppl::Format::Contact::PostalAddresses do
|
13
|
+
|
14
|
+
before(:each) do
|
15
|
+
@format = Ppl::Format::Contact::PostalAddresses.new
|
16
|
+
@contact = Ppl::Entity::Contact.new
|
17
|
+
@address = Ppl::Entity::PostalAddress.new
|
18
|
+
@table = double(Ppl::Format::Table)
|
19
|
+
@pa_fmt = double(Ppl::Format::PostalAddress)
|
20
|
+
@format.table = @table
|
21
|
+
@format.postal_address_format = @pa_fmt
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "#process" do
|
25
|
+
|
26
|
+
it "passes each postal address to the postal address formatter" do
|
27
|
+
@contact.postal_addresses << @address
|
28
|
+
@pa_fmt.should_receive(:process).with(@address, @table)
|
29
|
+
@table.should_receive(:to_s)
|
30
|
+
@format.process(@contact)
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
@@ -0,0 +1,57 @@
|
|
1
|
+
|
2
|
+
describe Ppl::Format::PostalAddress::MultiLine do
|
3
|
+
|
4
|
+
before(:each) do
|
5
|
+
@format = Ppl::Format::PostalAddress::MultiLine.new
|
6
|
+
@address = Ppl::Entity::PostalAddress.new
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "#process" do
|
10
|
+
|
11
|
+
context "all address attributes contain a value" do
|
12
|
+
|
13
|
+
before(:each) do
|
14
|
+
@address.id = "home"
|
15
|
+
@address.street = "123 Happy Lane"
|
16
|
+
@address.country = "United Kingdom"
|
17
|
+
@address.locality = "Bristol"
|
18
|
+
@address.po_box = "12345"
|
19
|
+
@address.postal_code = "BS1 1SB"
|
20
|
+
@address.region = "A very nice region indeed"
|
21
|
+
end
|
22
|
+
|
23
|
+
it "outputs each address attribute on its own line" do
|
24
|
+
@lines = @format.process(@address).split "\n"
|
25
|
+
@lines[0].should eq "123 Happy Lane"
|
26
|
+
@lines[1].should eq "Bristol"
|
27
|
+
@lines[2].should eq "A very nice region indeed"
|
28
|
+
@lines[3].should eq "United Kingdom"
|
29
|
+
@lines[4].should eq "12345"
|
30
|
+
@lines[5].should eq "BS1 1SB"
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
context "some empty address attributes" do
|
36
|
+
|
37
|
+
before(:each) do
|
38
|
+
@address.id = "home"
|
39
|
+
@address.street = "123 Happy Lane"
|
40
|
+
@address.country = "United Kingdom"
|
41
|
+
@address.locality = "Bristol"
|
42
|
+
end
|
43
|
+
|
44
|
+
it "doesn't output superfluous blank lines" do
|
45
|
+
@lines = @format.process(@address).split "\n"
|
46
|
+
@lines.length.should eq 3
|
47
|
+
@lines[0].should eq "123 Happy Lane"
|
48
|
+
@lines[1].should eq "Bristol"
|
49
|
+
@lines[2].should eq "United Kingdom"
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
|
@@ -3,39 +3,53 @@ describe Ppl::Format::PostalAddress::OneLine do
|
|
3
3
|
|
4
4
|
before(:each) do
|
5
5
|
@format = Ppl::Format::PostalAddress::OneLine.new
|
6
|
+
@table = double(Ppl::Format::Table)
|
6
7
|
@address = Ppl::Entity::PostalAddress.new
|
7
8
|
end
|
8
9
|
|
9
10
|
describe "#process" do
|
10
11
|
|
11
|
-
|
12
|
-
@address.
|
13
|
-
@
|
12
|
+
before(:each) do
|
13
|
+
@address.id = "home"
|
14
|
+
@address.street = "123 Happy Lane"
|
15
|
+
@address.country = "United Kingdom"
|
14
16
|
end
|
15
17
|
|
16
|
-
|
17
|
-
@address
|
18
|
-
@format.process(@address).should include "Liverpool"
|
18
|
+
after(:each) do
|
19
|
+
@format.process(@address, @table)
|
19
20
|
end
|
20
21
|
|
21
|
-
it "
|
22
|
-
@
|
23
|
-
@format.process(@address).should include "1 Test Road"
|
22
|
+
it "inserts a blank 'star' column" do
|
23
|
+
@table.should_receive(:add_row) { |r| r[:star].should eq " " }
|
24
24
|
end
|
25
25
|
|
26
|
-
it "
|
27
|
-
@address.
|
28
|
-
@
|
26
|
+
it "marks preferred addresses with a star" do
|
27
|
+
@address.preferred = true
|
28
|
+
@table.should_receive(:add_row) { |r| r[:star].should eq "*" }
|
29
29
|
end
|
30
30
|
|
31
|
-
it "
|
32
|
-
@
|
33
|
-
@format.process(@address).should include "L1 9AA"
|
31
|
+
it "puts the ID in its own column" do
|
32
|
+
@table.should_receive(:add_row) { |r| r[:address_id].should eq "home" }
|
34
33
|
end
|
35
34
|
|
36
|
-
it "
|
37
|
-
@address.
|
38
|
-
@
|
35
|
+
it "concatenates the rest of the address in its own column" do
|
36
|
+
@address.country = nil
|
37
|
+
@table.should_receive(:add_row) do |row|
|
38
|
+
row[:address_text].should eq "123 Happy Lane"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
it "separates address elements with commas" do
|
43
|
+
@table.should_receive(:add_row) do |row|
|
44
|
+
row[:address_text].should eq "123 Happy Lane, United Kingdom"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
it "prunes elements that are empty" do
|
49
|
+
@address.country = ""
|
50
|
+
@table.should_receive(:add_row) do |row|
|
51
|
+
row[:address_text].should eq "123 Happy Lane"
|
52
|
+
end
|
39
53
|
end
|
40
54
|
|
41
55
|
end
|
@@ -0,0 +1,152 @@
|
|
1
|
+
|
2
|
+
describe Ppl::Service::PostalAddress do
|
3
|
+
|
4
|
+
before(:each) do
|
5
|
+
@service = Ppl::Service::PostalAddress.new
|
6
|
+
@contact = Ppl::Entity::Contact.new
|
7
|
+
@address = Ppl::Entity::PostalAddress.new
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "#add" do
|
11
|
+
|
12
|
+
before(:each) do
|
13
|
+
@service.add(@contact, "home", {
|
14
|
+
:country => "United Kingdom",
|
15
|
+
:locality => "Bristol",
|
16
|
+
:street => "1 Broad Mead",
|
17
|
+
:po_box => "550011",
|
18
|
+
:postal_code => "BS1 1SB",
|
19
|
+
:region => "South West",
|
20
|
+
})
|
21
|
+
@address = @contact.postal_addresses.first
|
22
|
+
end
|
23
|
+
|
24
|
+
it "adds one postal address to the contact" do
|
25
|
+
@contact.postal_addresses.length.should eq 1
|
26
|
+
end
|
27
|
+
|
28
|
+
it "sets the country of the new address" do
|
29
|
+
@address.country.should eq "United Kingdom"
|
30
|
+
end
|
31
|
+
it "sets the locality of the new address" do
|
32
|
+
@address.locality.should eq "Bristol"
|
33
|
+
end
|
34
|
+
it "sets the street of the new address" do
|
35
|
+
@address.street.should eq "1 Broad Mead"
|
36
|
+
end
|
37
|
+
it "sets the PO box of the new address" do
|
38
|
+
@address.po_box.should eq "550011"
|
39
|
+
end
|
40
|
+
it "sets the postal code of the new address" do
|
41
|
+
@address.postal_code.should eq "BS1 1SB"
|
42
|
+
end
|
43
|
+
it "sets the region of the new address" do
|
44
|
+
@address.region.should eq "South West"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
describe "#update" do
|
50
|
+
|
51
|
+
before(:each) do
|
52
|
+
@address.id = "home"
|
53
|
+
@contact.postal_addresses << @address
|
54
|
+
@service.update(@contact, "home", {
|
55
|
+
:country => "United Kingdom",
|
56
|
+
:locality => "Bristol",
|
57
|
+
:street => "1 Broad Mead",
|
58
|
+
:po_box => "550011",
|
59
|
+
:postal_code => "BS1 1SB",
|
60
|
+
:region => "South West",
|
61
|
+
})
|
62
|
+
end
|
63
|
+
|
64
|
+
it "doesn't change the number of addresses owned by the contact" do
|
65
|
+
@contact.postal_addresses.length.should eq 1
|
66
|
+
end
|
67
|
+
it "sets the country of the new address" do
|
68
|
+
@address.country.should eq "United Kingdom"
|
69
|
+
end
|
70
|
+
it "sets the locality of the new address" do
|
71
|
+
@address.locality.should eq "Bristol"
|
72
|
+
end
|
73
|
+
it "sets the street of the new address" do
|
74
|
+
@address.street.should eq "1 Broad Mead"
|
75
|
+
end
|
76
|
+
it "sets the PO box of the new address" do
|
77
|
+
@address.po_box.should eq "550011"
|
78
|
+
end
|
79
|
+
it "sets the postal code of the new address" do
|
80
|
+
@address.postal_code.should eq "BS1 1SB"
|
81
|
+
end
|
82
|
+
it "sets the region of the new address" do
|
83
|
+
@address.region.should eq "South West"
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
|
88
|
+
describe "#update" do
|
89
|
+
|
90
|
+
before(:each) do
|
91
|
+
@address.id = "home"
|
92
|
+
@contact.postal_addresses << @address
|
93
|
+
end
|
94
|
+
|
95
|
+
it "allows addresses to be moved" do
|
96
|
+
@service.should_receive(:move)
|
97
|
+
@service.update(@contact, "home", {:new_id => "work"})
|
98
|
+
end
|
99
|
+
|
100
|
+
it "sets addresses as preferred" do
|
101
|
+
second_address = Ppl::Entity::PostalAddress.new
|
102
|
+
second_address.id = "other"
|
103
|
+
second_address.preferred = true
|
104
|
+
@contact.postal_addresses << second_address
|
105
|
+
@service.update(@contact, "home", {:preferred => true})
|
106
|
+
@address.preferred.should eq true
|
107
|
+
second_address.preferred.should eq false
|
108
|
+
end
|
109
|
+
|
110
|
+
it "sets addresses as not preferred" do
|
111
|
+
@address.preferred = true
|
112
|
+
@service.update(@contact, "home", {:preferred => false})
|
113
|
+
@address.preferred.should eq false
|
114
|
+
end
|
115
|
+
|
116
|
+
end
|
117
|
+
|
118
|
+
describe "#move" do
|
119
|
+
before(:each) do
|
120
|
+
@address.id = "home"
|
121
|
+
@contact.postal_addresses << @address
|
122
|
+
other_address = Ppl::Entity::PostalAddress.new
|
123
|
+
other_address.id = "other"
|
124
|
+
@contact.postal_addresses << other_address
|
125
|
+
end
|
126
|
+
it "raises an error if the new ID is already in use" do
|
127
|
+
expect{@service.move(@contact, "home", "other")}.to raise_error
|
128
|
+
end
|
129
|
+
it "moves the address to the new ID" do
|
130
|
+
@service.move(@contact, "home", "available")
|
131
|
+
@address.id.should eq "available"
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
describe "#remove" do
|
136
|
+
before(:each) do
|
137
|
+
@address.id = "home"
|
138
|
+
@contact.postal_addresses << @address
|
139
|
+
@service.remove(@contact, "home")
|
140
|
+
end
|
141
|
+
|
142
|
+
it "removes the specified address" do
|
143
|
+
@contact.postal_addresses.length.should eq 0
|
144
|
+
end
|
145
|
+
|
146
|
+
it "raises an error if there is no such address" do
|
147
|
+
expect{@service.remove(@contact, "home")}.to raise_error(Ppl::Error::PostalAddressNotFound)
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
end
|
152
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ppl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henry Smith
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-05-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colored
|
@@ -150,7 +150,8 @@ dependencies:
|
|
150
150
|
- - '>='
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
|
-
description:
|
153
|
+
description: ppl is a command-line address book using vCard & git for storage and
|
154
|
+
synchronisation
|
154
155
|
email: henry@henrysmith.org
|
155
156
|
executables:
|
156
157
|
- ppl
|
@@ -177,6 +178,7 @@ files:
|
|
177
178
|
- features/nick.feature
|
178
179
|
- features/org.feature
|
179
180
|
- features/phone.feature
|
181
|
+
- features/post.feature
|
180
182
|
- features/rm.feature
|
181
183
|
- features/step_definitions/address_book_steps.rb
|
182
184
|
- features/step_definitions/cwd_steps.rb
|
@@ -232,6 +234,7 @@ files:
|
|
232
234
|
- lib/ppl/error/completion_not_found.rb
|
233
235
|
- lib/ppl/error/contact_not_found.rb
|
234
236
|
- lib/ppl/error/incorrect_usage.rb
|
237
|
+
- lib/ppl/error/postal_address_not_found.rb
|
235
238
|
- lib/ppl/format/address_book.rb
|
236
239
|
- lib/ppl/format/address_book/ages.rb
|
237
240
|
- lib/ppl/format/address_book/birthdays.rb
|
@@ -254,16 +257,19 @@ files:
|
|
254
257
|
- lib/ppl/format/contact/organization.rb
|
255
258
|
- lib/ppl/format/contact/phone_number.rb
|
256
259
|
- lib/ppl/format/contact/postal_address.rb
|
260
|
+
- lib/ppl/format/contact/postal_addresses.rb
|
257
261
|
- lib/ppl/format/contact/urls.rb
|
258
262
|
- lib/ppl/format/custom.rb
|
259
263
|
- lib/ppl/format/custom/contact.rb
|
260
264
|
- lib/ppl/format/custom/email_address.rb
|
261
265
|
- lib/ppl/format/custom/phone_number.rb
|
262
266
|
- lib/ppl/format/postal_address.rb
|
267
|
+
- lib/ppl/format/postal_address/multi_line.rb
|
263
268
|
- lib/ppl/format/postal_address/one_line.rb
|
264
269
|
- lib/ppl/format/table.rb
|
265
270
|
- lib/ppl/service/email_address.rb
|
266
271
|
- lib/ppl/service/phone_number.rb
|
272
|
+
- lib/ppl/service/postal_address.rb
|
267
273
|
- ppl.gemspec
|
268
274
|
- spec/ppl/adapter/color/colored_spec.rb
|
269
275
|
- spec/ppl/adapter/color_spec.rb
|
@@ -332,17 +338,20 @@ files:
|
|
332
338
|
- spec/ppl/format/contact/organization_spec.rb
|
333
339
|
- spec/ppl/format/contact/phone_number_spec.rb
|
334
340
|
- spec/ppl/format/contact/postal_address_spec.rb
|
341
|
+
- spec/ppl/format/contact/postal_addresses_spec.rb
|
335
342
|
- spec/ppl/format/contact/urls_spec.rb
|
336
343
|
- spec/ppl/format/contact_spec.rb
|
337
344
|
- spec/ppl/format/custom/contact_spec.rb
|
338
345
|
- spec/ppl/format/custom/email_address_spec.rb
|
339
346
|
- spec/ppl/format/custom/phone_number_spec.rb
|
340
347
|
- spec/ppl/format/custom_spec.rb
|
348
|
+
- spec/ppl/format/postal_address/multi_line_spec.rb
|
341
349
|
- spec/ppl/format/postal_address/one_line_spec.rb
|
342
350
|
- spec/ppl/format/postal_address_spec.rb
|
343
351
|
- spec/ppl/format/table_spec.rb
|
344
352
|
- spec/ppl/service/email_address_spec.rb
|
345
353
|
- spec/ppl/service/phone_number_spec.rb
|
354
|
+
- spec/ppl/service/postal_address_spec.rb
|
346
355
|
- spec/spec_helper.rb
|
347
356
|
homepage: http://ppladdressbook.org
|
348
357
|
licenses:
|
@@ -367,5 +376,5 @@ rubyforge_project:
|
|
367
376
|
rubygems_version: 2.0.3
|
368
377
|
signing_key:
|
369
378
|
specification_version: 4
|
370
|
-
summary:
|
379
|
+
summary: The command line address book
|
371
380
|
test_files: []
|