ppl 2.3.3 → 4.0.0
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 +26 -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 +0 -1
- 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 +12 -8
- 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 +14 -15
- data/{README.md → readme.md} +12 -10
- 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 +0 -7
- metadata +23 -38
- 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: a028d8682930e39c6389a412dcc8d184b651b7fbcd45884e03865cf51ccedee4
|
4
|
+
data.tar.gz: 23e77730f17c512b5d7e59f5d6bda1f2dd54e99628d110ebb3fbd9b5efa376b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e2981dfd3deddc4e52938681ce6ec9278d06d93bc0719572b12706ebe9fb2fd9aabec1e3c6e54a23d70a1e4145eadd9693823951ce837044298516af9da70dd1
|
7
|
+
data.tar.gz: d0378f569f3f93a0df75d55da9ba62e335681fc2449c33dbe0726c367de3146be046762f790000235499bb88adb95fe726ee3ed33dd8f256b5aa054d28be1af7
|
data/.editorconfig
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
name: Build
|
2
|
+
on: push
|
3
|
+
|
4
|
+
jobs:
|
5
|
+
test:
|
6
|
+
runs-on: ubuntu-latest
|
7
|
+
steps:
|
8
|
+
- uses: actions/checkout@v2
|
9
|
+
- uses: actions/setup-ruby@v1
|
10
|
+
with:
|
11
|
+
ruby-version: 3.0.0
|
12
|
+
- uses: jwlawson/actions-setup-cmake@v1.8
|
13
|
+
with:
|
14
|
+
cmake-version: "3.16.x"
|
15
|
+
- name: Install dependencies
|
16
|
+
run: bundle install
|
17
|
+
- name: rspec
|
18
|
+
run: bundle exec rake spec
|
19
|
+
#- name: cucumber
|
20
|
+
# run: bundle exec rake features
|
21
|
+
- uses: dawidd6/action-publish-gem@v1
|
22
|
+
continue-on-error: true
|
23
|
+
if: ${{ github.ref == 'refs/heads/trunk' }}
|
24
|
+
with:
|
25
|
+
api_key: ${{secrets.RUBYGEMS_API_KEY}}
|
26
|
+
|
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
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,20 +77,23 @@ 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 = []
|
84
84
|
update_ref = "HEAD"
|
85
85
|
end
|
86
86
|
|
87
|
-
|
88
|
-
|
87
|
+
begin
|
88
|
+
git_config = Rugged::Config.open_global.to_hash
|
89
|
+
rescue Rugged::OSError
|
90
|
+
git_config = {}
|
91
|
+
end
|
89
92
|
|
90
93
|
author = {
|
91
|
-
:email =>
|
94
|
+
:email => git_config.fetch('user.email', "#{ENV['USER']}@#{Socket.gethostname}"),
|
92
95
|
:time => Time.now,
|
93
|
-
:name => name,
|
96
|
+
:name => git_config.fetch('user.name', ENV['USER']),
|
94
97
|
}
|
95
98
|
|
96
99
|
data = {
|
@@ -115,7 +118,8 @@ class Ppl::Adapter::Storage::Git < Ppl::Adapter::Storage
|
|
115
118
|
def read_contact_from_disk(id)
|
116
119
|
filename = id + ".vcf"
|
117
120
|
target = @repository.head.target
|
118
|
-
|
121
|
+
blob = @repository.blob_at(target.oid, filename)
|
122
|
+
vcard = blob.nil? ? nil : blob.content
|
119
123
|
contact = nil
|
120
124
|
|
121
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
data/lib/ppl/command/url.rb
CHANGED