ppl 2.4.0 → 4.0.1
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.
- checksums.yaml +5 -5
- data/.editorconfig +4 -0
- data/.github/workflows/build.yml +32 -0
- data/Rakefile +0 -17
- data/{CODE_OF_CONDUCT.md → code_of_conduct.md} +1 -1
- data/lib/ppl.rb +2 -3
- data/lib/ppl/adapter/color.rb +0 -1
- data/lib/ppl/adapter/color/colored.rb +0 -1
- data/lib/ppl/adapter/email_scraper.rb +0 -1
- data/lib/ppl/adapter/email_scraper/mail.rb +4 -5
- data/lib/ppl/adapter/storage.rb +0 -1
- data/lib/ppl/adapter/storage/disk.rb +0 -1
- data/lib/ppl/adapter/storage/factory.rb +0 -1
- data/lib/ppl/adapter/storage/git.rb +5 -4
- data/lib/ppl/adapter/vcard.rb +0 -1
- data/lib/ppl/adapter/vcard/{greencard.rb → vpim.rb} +9 -5
- data/lib/ppl/application/bootstrap.rb +1 -2
- data/lib/ppl/application/command.rb +0 -1
- data/lib/ppl/application/command_suite.rb +0 -1
- data/lib/ppl/application/configuration.rb +0 -1
- data/lib/ppl/application/input.rb +0 -1
- data/lib/ppl/application/output.rb +0 -1
- data/lib/ppl/application/router.rb +0 -1
- data/lib/ppl/application/shell.rb +0 -1
- data/lib/ppl/command/add.rb +0 -1
- data/lib/ppl/command/age.rb +0 -1
- data/lib/ppl/command/attribute.rb +0 -1
- data/lib/ppl/command/bday.rb +0 -1
- data/lib/ppl/command/completion.rb +0 -1
- data/lib/ppl/command/email.rb +0 -1
- data/lib/ppl/command/external.rb +0 -1
- data/lib/ppl/command/help.rb +0 -1
- data/lib/ppl/command/init.rb +0 -1
- data/lib/ppl/command/ls.rb +0 -1
- data/lib/ppl/command/mutt.rb +0 -1
- data/lib/ppl/command/mv.rb +0 -1
- data/lib/ppl/command/name.rb +0 -1
- data/lib/ppl/command/nick.rb +0 -1
- data/lib/ppl/command/org.rb +0 -1
- data/lib/ppl/command/phone.rb +0 -1
- data/lib/ppl/command/post.rb +0 -1
- data/lib/ppl/command/rm.rb +0 -1
- data/lib/ppl/command/scrape.rb +0 -1
- data/lib/ppl/command/shell.rb +0 -1
- data/lib/ppl/command/show.rb +0 -1
- data/lib/ppl/command/url.rb +0 -1
- data/lib/ppl/command/version.rb +0 -1
- data/lib/ppl/entity/address_book.rb +0 -1
- data/lib/ppl/entity/contact.rb +0 -1
- data/lib/ppl/entity/email_address.rb +0 -1
- data/lib/ppl/entity/name.rb +0 -1
- data/lib/ppl/entity/phone_number.rb +0 -1
- data/lib/ppl/entity/postal_address.rb +0 -1
- data/lib/ppl/error/completion_not_found.rb +0 -1
- data/lib/ppl/error/contact_not_found.rb +0 -1
- data/lib/ppl/error/incorrect_usage.rb +0 -1
- data/lib/ppl/error/invalid_vcard.rb +1 -0
- data/lib/ppl/error/postal_address_not_found.rb +0 -1
- data/lib/ppl/format/address_book.rb +0 -1
- data/lib/ppl/format/address_book/ages.rb +0 -1
- data/lib/ppl/format/address_book/birthdays.rb +0 -1
- data/lib/ppl/format/address_book/email_addresses.rb +0 -1
- data/lib/ppl/format/address_book/mutt_query.rb +0 -1
- data/lib/ppl/format/address_book/names.rb +0 -1
- data/lib/ppl/format/address_book/nicknames.rb +0 -1
- data/lib/ppl/format/address_book/one_line.rb +0 -1
- data/lib/ppl/format/address_book/organizations.rb +0 -1
- data/lib/ppl/format/address_book/phone_numbers.rb +0 -1
- data/lib/ppl/format/address_book/postal_addresses.rb +0 -1
- data/lib/ppl/format/address_book/urls.rb +0 -1
- data/lib/ppl/format/contact.rb +0 -1
- data/lib/ppl/format/contact/age.rb +0 -1
- data/lib/ppl/format/contact/birthday.rb +0 -1
- data/lib/ppl/format/contact/email_addresses.rb +0 -1
- data/lib/ppl/format/contact/full.rb +0 -1
- data/lib/ppl/format/contact/nicknames.rb +0 -1
- data/lib/ppl/format/contact/organization.rb +0 -1
- data/lib/ppl/format/contact/phone_number.rb +0 -1
- data/lib/ppl/format/contact/postal_address.rb +0 -1
- data/lib/ppl/format/contact/postal_addresses.rb +0 -1
- data/lib/ppl/format/contact/urls.rb +0 -1
- data/lib/ppl/format/custom.rb +0 -1
- data/lib/ppl/format/custom/contact.rb +0 -1
- data/lib/ppl/format/custom/email_address.rb +0 -1
- data/lib/ppl/format/custom/phone_number.rb +0 -1
- data/lib/ppl/format/name.rb +0 -1
- data/lib/ppl/format/name/full_only.rb +0 -1
- data/lib/ppl/format/postal_address.rb +0 -1
- data/lib/ppl/format/postal_address/multi_line.rb +0 -1
- data/lib/ppl/format/postal_address/one_line.rb +0 -1
- data/lib/ppl/format/table.rb +0 -1
- data/lib/ppl/service/email_address.rb +0 -1
- data/lib/ppl/service/name.rb +0 -1
- data/lib/ppl/service/phone_number.rb +0 -1
- data/lib/ppl/service/postal_address.rb +0 -1
- data/{LICENSE → license} +0 -0
- data/ppl.gemspec +15 -15
- data/{README.md → readme.md} +12 -9
- data/spec/ppl/adapter/color/colored_spec.rb +0 -1
- data/spec/ppl/adapter/color_spec.rb +0 -1
- data/spec/ppl/adapter/email_scraper/mail_spec.rb +1 -0
- data/spec/ppl/adapter/email_scraper_spec.rb +0 -1
- data/spec/ppl/adapter/output_spec.rb +0 -1
- data/spec/ppl/adapter/storage/disk_spec.rb +0 -1
- data/spec/ppl/adapter/storage/factory_spec.rb +0 -1
- data/spec/ppl/adapter/storage/git_spec.rb +18 -7
- data/spec/ppl/adapter/storage_spec.rb +0 -1
- data/spec/ppl/adapter/vcard/greencard_spec.rb +4 -4
- data/spec/ppl/adapter/vcard_spec.rb +0 -1
- data/spec/ppl/application/bootstrap_spec.rb +2 -3
- data/spec/ppl/application/command_spec.rb +0 -1
- data/spec/ppl/application/command_suite_spec.rb +0 -1
- data/spec/ppl/application/configuration_spec.rb +0 -1
- data/spec/ppl/application/input_spec.rb +0 -1
- data/spec/ppl/application/router_spec.rb +0 -1
- data/spec/ppl/application/shell_spec.rb +0 -1
- data/spec/ppl/command/add_spec.rb +0 -1
- data/spec/ppl/command/age_spec.rb +0 -1
- data/spec/ppl/command/attribute_spec.rb +0 -1
- data/spec/ppl/command/bday_spec.rb +0 -1
- data/spec/ppl/command/completion_spec.rb +0 -1
- data/spec/ppl/command/email_spec.rb +0 -1
- data/spec/ppl/command/external_spec.rb +0 -1
- data/spec/ppl/command/help_spec.rb +0 -1
- data/spec/ppl/command/init_spec.rb +0 -1
- data/spec/ppl/command/ls_spec.rb +0 -1
- data/spec/ppl/command/mutt_spec.rb +0 -1
- data/spec/ppl/command/mv_spec.rb +0 -1
- data/spec/ppl/command/name_spec.rb +0 -1
- data/spec/ppl/command/nick_spec.rb +0 -1
- data/spec/ppl/command/org_spec.rb +0 -1
- data/spec/ppl/command/phone_spec.rb +0 -1
- data/spec/ppl/command/post_spec.rb +0 -1
- data/spec/ppl/command/rm_spec.rb +0 -1
- data/spec/ppl/command/scrape_spec.rb +0 -1
- data/spec/ppl/command/shell_spec.rb +0 -1
- data/spec/ppl/command/show_spec.rb +0 -1
- data/spec/ppl/command/url_spec.rb +0 -1
- data/spec/ppl/command/version_spec.rb +0 -1
- data/spec/ppl/entity/address_book_spec.rb +0 -1
- data/spec/ppl/entity/contact_spec.rb +0 -1
- data/spec/ppl/entity/email_address_spec.rb +0 -1
- data/spec/ppl/entity/name_spec.rb +0 -1
- data/spec/ppl/entity/phone_number_spec.rb +0 -1
- data/spec/ppl/entity/postal_address_spec.rb +0 -1
- data/spec/ppl/format/address_book/ages_spec.rb +0 -1
- data/spec/ppl/format/address_book/birthdays_spec.rb +0 -1
- data/spec/ppl/format/address_book/email_addresses_spec.rb +0 -1
- data/spec/ppl/format/address_book/mutt_query_spec.rb +0 -1
- data/spec/ppl/format/address_book/names_spec.rb +0 -1
- data/spec/ppl/format/address_book/nicknames_spec.rb +0 -1
- data/spec/ppl/format/address_book/one_line_spec.rb +0 -1
- data/spec/ppl/format/address_book/organizations_spec.rb +0 -1
- data/spec/ppl/format/address_book/phone_numbers_spec.rb +0 -1
- data/spec/ppl/format/address_book/postal_addresses_spec.rb +0 -1
- data/spec/ppl/format/address_book/urls_spec.rb +0 -1
- data/spec/ppl/format/address_book_spec.rb +0 -1
- data/spec/ppl/format/contact/age_spec.rb +0 -1
- data/spec/ppl/format/contact/birthday_spec.rb +0 -1
- data/spec/ppl/format/contact/email_addresses_spec.rb +0 -1
- data/spec/ppl/format/contact/full_spec.rb +0 -1
- data/spec/ppl/format/contact/nicknames_spec.rb +0 -1
- data/spec/ppl/format/contact/organization_spec.rb +0 -1
- data/spec/ppl/format/contact/phone_number_spec.rb +0 -1
- data/spec/ppl/format/contact/postal_address_spec.rb +0 -1
- data/spec/ppl/format/contact/postal_addresses_spec.rb +0 -1
- data/spec/ppl/format/contact/urls_spec.rb +0 -1
- data/spec/ppl/format/contact_spec.rb +0 -1
- data/spec/ppl/format/custom/contact_spec.rb +0 -1
- data/spec/ppl/format/custom/email_address_spec.rb +0 -1
- data/spec/ppl/format/custom/phone_number_spec.rb +0 -1
- data/spec/ppl/format/custom_spec.rb +0 -1
- data/spec/ppl/format/name/full_only_spec.rb +0 -1
- data/spec/ppl/format/name_spec.rb +0 -1
- data/spec/ppl/format/postal_address/multi_line_spec.rb +0 -1
- data/spec/ppl/format/postal_address/one_line_spec.rb +0 -1
- data/spec/ppl/format/postal_address_spec.rb +0 -1
- data/spec/ppl/service/email_address_spec.rb +0 -1
- data/spec/ppl/service/name_spec.rb +0 -1
- data/spec/ppl/service/phone_number_spec.rb +0 -1
- data/spec/ppl/service/postal_address_spec.rb +0 -1
- data/spec/spec_helper.rb +1 -7
- metadata +25 -26
- data/.travis.yml +0 -9
- data/COPYING +0 -339
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d7e7227e67ddcd57d56016f63b0d40b51c2989d62f9f0d42b764535c1176a436
|
4
|
+
data.tar.gz: 9444983ccb14e1ee6d73626fed21a5aaf7c6aba89013dff4d706b088bb57e654
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3efe966f2e4d2d0f19b87392a2643e457b8cb71c49916000ca5ec0c2060f8238d41110b59203b1eb4dda48703f2c7bee52880e7486235647eb1e345d9b93d83
|
7
|
+
data.tar.gz: a2b65af534bc75927673e93387ac35056b376337a31ad28e175ba5606b1717d5b31bea46cb2661b7539ff9d0aba1e8276a3b71d04ed75c7a3b8c111edf4bf472
|
data/.editorconfig
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
name: Build
|
2
|
+
on:
|
3
|
+
push:
|
4
|
+
branches:
|
5
|
+
- trunk
|
6
|
+
pull_request:
|
7
|
+
branches:
|
8
|
+
- trunk
|
9
|
+
|
10
|
+
jobs:
|
11
|
+
test:
|
12
|
+
runs-on: ubuntu-latest
|
13
|
+
steps:
|
14
|
+
- uses: actions/checkout@v2
|
15
|
+
- uses: actions/setup-ruby@v1
|
16
|
+
with:
|
17
|
+
ruby-version: 3.0.0
|
18
|
+
- uses: jwlawson/actions-setup-cmake@v1.8
|
19
|
+
with:
|
20
|
+
cmake-version: "3.16.x"
|
21
|
+
- name: Install dependencies
|
22
|
+
run: bundle install
|
23
|
+
- name: rspec
|
24
|
+
run: bundle exec rake spec
|
25
|
+
- name: cucumber
|
26
|
+
run: bundle exec rake features
|
27
|
+
- uses: dawidd6/action-publish-gem@v1
|
28
|
+
continue-on-error: true
|
29
|
+
if: ${{ github.ref == 'refs/heads/trunk' }}
|
30
|
+
with:
|
31
|
+
api_key: ${{secrets.RUBYGEMS_API_KEY}}
|
32
|
+
|
data/Rakefile
CHANGED
@@ -1,8 +1,3 @@
|
|
1
|
-
|
2
|
-
task :build => [:build193, :build200]
|
3
|
-
task :build193 => [:ruby193, :spec, :features]
|
4
|
-
task :build200 => [:ruby200, :spec, :features]
|
5
|
-
|
6
1
|
task :features => [:disable_config] do
|
7
2
|
system "bundle exec cucumber"
|
8
3
|
end
|
@@ -11,18 +6,6 @@ task :spec do
|
|
11
6
|
system "bundle exec rspec"
|
12
7
|
end
|
13
8
|
|
14
|
-
task :ruby193 do
|
15
|
-
system "bash -lc 'rvm use 1.9.3'"
|
16
|
-
Rake::Task["spec"].reenable
|
17
|
-
Rake::Task["features"].reenable
|
18
|
-
end
|
19
|
-
|
20
|
-
task :ruby200 do
|
21
|
-
system "bash -lc 'rvm use 2.0.0'"
|
22
|
-
Rake::Task["spec"].reenable
|
23
|
-
Rake::Task["features"].reenable
|
24
|
-
end
|
25
|
-
|
26
9
|
task :disable_config do
|
27
10
|
pplconfig = File.expand_path("~/.pplconfig")
|
28
11
|
bkpconfig = File.expand_path("~/.pplconfig.bkp")
|
@@ -35,7 +35,7 @@ This Code of Conduct applies both within project spaces and in public spaces
|
|
35
35
|
when an individual is representing the project or its community.
|
36
36
|
|
37
37
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
38
|
-
reported by contacting a project maintainer at [
|
38
|
+
reported by contacting a project maintainer at [hen@hey.com](mailto:hen@hey.com). All
|
39
39
|
complaints will be reviewed and investigated and will result in a response that
|
40
40
|
is deemed necessary and appropriate to the circumstances. Maintainers are
|
41
41
|
obligated to maintain confidentiality with regard to the reporter of an
|
data/lib/ppl.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
|
-
|
2
1
|
module Ppl
|
3
2
|
|
4
|
-
Version = "
|
3
|
+
Version = "3.0.1"
|
5
4
|
|
6
5
|
module Adapter
|
7
6
|
end
|
@@ -36,7 +35,7 @@ require "ppl/adapter/storage/disk"
|
|
36
35
|
require "ppl/adapter/storage/factory"
|
37
36
|
require "ppl/adapter/storage/git"
|
38
37
|
require "ppl/adapter/vcard"
|
39
|
-
require "ppl/adapter/vcard/
|
38
|
+
require "ppl/adapter/vcard/vpim"
|
40
39
|
|
41
40
|
require "ppl/application/bootstrap"
|
42
41
|
require "ppl/application/command"
|
data/lib/ppl/adapter/color.rb
CHANGED
@@ -1,12 +1,11 @@
|
|
1
|
-
|
2
1
|
require "mail"
|
3
2
|
|
4
3
|
class Ppl::Adapter::EmailScraper::Mail
|
5
4
|
|
6
5
|
attr_writer :storage_adapter
|
7
6
|
|
8
|
-
def scrape_contacts(
|
9
|
-
email = Mail.new(
|
7
|
+
def scrape_contacts(message)
|
8
|
+
email = Mail.new(message)
|
10
9
|
contacts = []
|
11
10
|
|
12
11
|
sender = scrape_sender(email)
|
@@ -24,9 +23,9 @@ class Ppl::Adapter::EmailScraper::Mail
|
|
24
23
|
unless from.nil?
|
25
24
|
sender = Ppl::Entity::Contact.new
|
26
25
|
sender.name = Ppl::Entity::Name.new
|
27
|
-
display_name = from.
|
26
|
+
display_name = from.address_list.addresses.first.display_name
|
28
27
|
sender.name.full = Mail::Encodings.value_decode(display_name) unless display_name.nil?
|
29
|
-
sender.email_addresses << Ppl::Entity::EmailAddress.new(from.
|
28
|
+
sender.email_addresses << Ppl::Entity::EmailAddress.new(from.address_list.addresses.first.address)
|
30
29
|
sender.id = generate_contact_id(sender)
|
31
30
|
sender.name.full = sender.id if display_name.nil?
|
32
31
|
sender
|
data/lib/ppl/adapter/storage.rb
CHANGED
@@ -24,7 +24,7 @@ class Ppl::Adapter::Storage::Git < Ppl::Adapter::Storage
|
|
24
24
|
def load_address_book
|
25
25
|
address_book = Ppl::Entity::AddressBook.new
|
26
26
|
|
27
|
-
head = @repository.lookup(@repository.head.target)
|
27
|
+
head = @repository.lookup(@repository.head.target.oid)
|
28
28
|
head.tree.each do |file|
|
29
29
|
extension = file[:name].slice(-4..-1)
|
30
30
|
if extension != ".vcf"
|
@@ -41,7 +41,7 @@ class Ppl::Adapter::Storage::Git < Ppl::Adapter::Storage
|
|
41
41
|
def load_contact(id)
|
42
42
|
begin
|
43
43
|
read_contact_from_disk id
|
44
|
-
rescue
|
44
|
+
rescue Vpim::InvalidEncodingError
|
45
45
|
raise Ppl::Error::InvalidVcard, "#{id}.vcf contains invalid data"
|
46
46
|
end
|
47
47
|
end
|
@@ -77,7 +77,7 @@ class Ppl::Adapter::Storage::Git < Ppl::Adapter::Storage
|
|
77
77
|
end
|
78
78
|
|
79
79
|
if !head.nil?
|
80
|
-
parents = [ @repository.lookup( @repository.head.target ).oid ]
|
80
|
+
parents = [ @repository.lookup( @repository.head.target.oid ).oid ]
|
81
81
|
update_ref = "HEAD"
|
82
82
|
else
|
83
83
|
parents = []
|
@@ -118,7 +118,8 @@ class Ppl::Adapter::Storage::Git < Ppl::Adapter::Storage
|
|
118
118
|
def read_contact_from_disk(id)
|
119
119
|
filename = id + ".vcf"
|
120
120
|
target = @repository.head.target
|
121
|
-
|
121
|
+
blob = @repository.blob_at(target.oid, filename)
|
122
|
+
vcard = blob.nil? ? nil : blob.content
|
122
123
|
contact = nil
|
123
124
|
|
124
125
|
if !vcard.nil?
|
data/lib/ppl/adapter/vcard.rb
CHANGED
@@ -1,8 +1,7 @@
|
|
1
|
-
|
2
|
-
require "greencard/vcard"
|
1
|
+
require "vpim/vcard"
|
3
2
|
require "digest/sha1"
|
4
3
|
|
5
|
-
class Ppl::Adapter::Vcard::
|
4
|
+
class Ppl::Adapter::Vcard::Vpim
|
6
5
|
|
7
6
|
@@postal_address_property_map = {
|
8
7
|
:street => :street,
|
@@ -15,7 +14,7 @@ class Ppl::Adapter::Vcard::GreenCard
|
|
15
14
|
}
|
16
15
|
|
17
16
|
def encode(contact)
|
18
|
-
vcard =
|
17
|
+
vcard = Vpim::Vcard::Maker.make2 do |maker|
|
19
18
|
encode_birthday(contact, maker)
|
20
19
|
encode_name(contact, maker)
|
21
20
|
encode_email_addresses(contact, maker)
|
@@ -29,7 +28,7 @@ class Ppl::Adapter::Vcard::GreenCard
|
|
29
28
|
end
|
30
29
|
|
31
30
|
def decode(string)
|
32
|
-
vcard =
|
31
|
+
vcard = Vpim::Vcard.decode(string).first
|
33
32
|
contact = Ppl::Entity::Contact.new
|
34
33
|
decode_birthday(vcard, contact)
|
35
34
|
decode_email_addresses(vcard, contact)
|
@@ -119,6 +118,11 @@ class Ppl::Adapter::Vcard::GreenCard
|
|
119
118
|
contact.name = Ppl::Entity::Name.new
|
120
119
|
if !vcard.name.nil?
|
121
120
|
contact.name.full = vcard.name.fullname
|
121
|
+
contact.name.given = vcard.name.given unless vcard.name.given.nil?
|
122
|
+
contact.name.family = vcard.name.family unless vcard.name.family.nil?
|
123
|
+
contact.name.middle = vcard.name.additional unless vcard.name.additional.nil?
|
124
|
+
contact.name.prefix = vcard.name.prefix unless vcard.name.prefix.nil?
|
125
|
+
contact.name.suffix = vcard.name.suffix unless vcard.name.suffix.nil?
|
122
126
|
end
|
123
127
|
end
|
124
128
|
|
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
require "morphine"
|
3
2
|
|
4
3
|
class Ppl::Application::Bootstrap
|
@@ -373,7 +372,7 @@ class Ppl::Application::Bootstrap
|
|
373
372
|
end
|
374
373
|
|
375
374
|
register :vcard_adapter do
|
376
|
-
Ppl::Adapter::Vcard::
|
375
|
+
Ppl::Adapter::Vcard::Vpim.new
|
377
376
|
end
|
378
377
|
|
379
378
|
register :email_scraper do
|
data/lib/ppl/command/add.rb
CHANGED
data/lib/ppl/command/age.rb
CHANGED
data/lib/ppl/command/bday.rb
CHANGED
data/lib/ppl/command/email.rb
CHANGED
data/lib/ppl/command/external.rb
CHANGED
data/lib/ppl/command/help.rb
CHANGED
data/lib/ppl/command/init.rb
CHANGED
data/lib/ppl/command/ls.rb
CHANGED
data/lib/ppl/command/mutt.rb
CHANGED
data/lib/ppl/command/mv.rb
CHANGED
data/lib/ppl/command/name.rb
CHANGED
data/lib/ppl/command/nick.rb
CHANGED
data/lib/ppl/command/org.rb
CHANGED
data/lib/ppl/command/phone.rb
CHANGED
data/lib/ppl/command/post.rb
CHANGED
data/lib/ppl/command/rm.rb
CHANGED
data/lib/ppl/command/scrape.rb
CHANGED
data/lib/ppl/command/shell.rb
CHANGED
data/lib/ppl/command/show.rb
CHANGED