ppl 2.4.0 → 4.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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