ppl 3.0.0 → 4.0.3

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.
Files changed (334) hide show
  1. checksums.yaml +5 -5
  2. data/.editorconfig +16 -0
  3. data/.eleventy.js +86 -0
  4. data/.eleventyignore +1 -0
  5. data/.github/workflows/build.yml +61 -0
  6. data/.gitignore +3 -1
  7. data/Rakefile +1 -18
  8. data/{CODE_OF_CONDUCT.md → code_of_conduct.md} +1 -1
  9. data/features/step_definitions/ppl_steps.rb +27 -27
  10. data/gh-pages/Gemfile +2 -0
  11. data/gh-pages/_config.yml +5 -0
  12. data/gh-pages/_includes/changelog.html +23 -0
  13. data/gh-pages/_includes/development-sidebar.html +25 -0
  14. data/gh-pages/_includes/footer.html +22 -0
  15. data/gh-pages/_includes/header.html +43 -0
  16. data/gh-pages/_includes/news.html +36 -0
  17. data/gh-pages/_includes/tip.html +54 -0
  18. data/gh-pages/_layouts/changelog.html +1 -0
  19. data/gh-pages/_layouts/command.html +104 -0
  20. data/gh-pages/_layouts/configuration.html +71 -0
  21. data/gh-pages/_layouts/development.html +20 -0
  22. data/gh-pages/_layouts/frontpage.html +6 -0
  23. data/gh-pages/_layouts/integration.html +44 -0
  24. data/gh-pages/_layouts/news.html +2 -0
  25. data/gh-pages/_layouts/page.html +6 -0
  26. data/gh-pages/_layouts/tip.html +2 -0
  27. data/gh-pages/_posts/2012-01-15-first-post.md +16 -0
  28. data/gh-pages/_posts/2012-12-20-1.0.0.md +19 -0
  29. data/gh-pages/_posts/2012-12-20-1.1.0.md +28 -0
  30. data/gh-pages/_posts/2012-12-20-1.2.0.md +18 -0
  31. data/gh-pages/_posts/2012-12-21-1.3.0.md +20 -0
  32. data/gh-pages/_posts/2012-12-21-thank-you-for-your-all-your-feedback.md +26 -0
  33. data/gh-pages/_posts/2012-12-22-1.4.1.md +21 -0
  34. data/gh-pages/_posts/2012-12-22-1.5.0.md +17 -0
  35. data/gh-pages/_posts/2012-12-23-1.5.1.md +13 -0
  36. data/gh-pages/_posts/2012-12-23-1.5.2.md +15 -0
  37. data/gh-pages/_posts/2012-12-26-1.5.3.md +19 -0
  38. data/gh-pages/_posts/2012-12-27-1.6.0.md +18 -0
  39. data/gh-pages/_posts/2012-12-29-1.7.0.md +18 -0
  40. data/gh-pages/_posts/2013-01-05-1.8.0.md +18 -0
  41. data/gh-pages/_posts/2013-01-06-1.9.0.md +20 -0
  42. data/gh-pages/_posts/2013-01-10-1.10.0.md +18 -0
  43. data/gh-pages/_posts/2013-01-20-1.11.0.md +14 -0
  44. data/gh-pages/_posts/2013-02-16-1.12.0.md +14 -0
  45. data/gh-pages/_posts/2013-02-17-1.13.0.md +29 -0
  46. data/gh-pages/_posts/2013-02-17-1.14.0.md +15 -0
  47. data/gh-pages/_posts/2013-02-17-1.14.1.md +18 -0
  48. data/gh-pages/_posts/2013-02-17-two-months-in.md +27 -0
  49. data/gh-pages/_posts/2013-03-16-1.15.0.md +28 -0
  50. data/gh-pages/_posts/2013-03-16-coloured-output-released.md +27 -0
  51. data/gh-pages/_posts/2013-04-10-ruby-2.0-compatibility.md +28 -0
  52. data/gh-pages/_posts/2013-04-11-1.15.1.md +13 -0
  53. data/gh-pages/_posts/2013-04-12-1.16.0.md +22 -0
  54. data/gh-pages/_posts/2013-04-14-1.17.0.md +15 -0
  55. data/gh-pages/_posts/2013-04-14-1.17.1.md +20 -0
  56. data/gh-pages/_posts/2013-04-14-1.17.2.md +13 -0
  57. data/gh-pages/_posts/2013-04-15-sync-alias.md +31 -0
  58. data/gh-pages/_posts/2013-04-15-utf8-fixed-and-more.md +37 -0
  59. data/gh-pages/_posts/2013-04-16-1.18.0.md +15 -0
  60. data/gh-pages/_posts/2013-04-16-set-up-color-output.md +47 -0
  61. data/gh-pages/_posts/2013-04-19-1.19.0.md +13 -0
  62. data/gh-pages/_posts/2013-04-19-1.20.0.md +15 -0
  63. data/gh-pages/_posts/2013-04-20-1.21.0.md +16 -0
  64. data/gh-pages/_posts/2013-04-20-1.22.0.md +14 -0
  65. data/gh-pages/_posts/2013-04-20-1.22.1.md +13 -0
  66. data/gh-pages/_posts/2013-04-21-1.22.2.md +15 -0
  67. data/gh-pages/_posts/2013-04-21-1.23.0.md +35 -0
  68. data/gh-pages/_posts/2013-04-23-1.24.0.md +16 -0
  69. data/gh-pages/_posts/2013-04-24-1.25.0.md +21 -0
  70. data/gh-pages/_posts/2013-05-09-2.0.0.md +33 -0
  71. data/gh-pages/_posts/2013-05-09-version-2.0.0-released.md +32 -0
  72. data/gh-pages/_posts/2013-07-20-2.1.0.md +36 -0
  73. data/gh-pages/_posts/2013-07-20-2.2.0.md +20 -0
  74. data/gh-pages/_posts/2013-10-12-2.3.0.md +19 -0
  75. data/gh-pages/_posts/2014-03-30-2.3.1.md +25 -0
  76. data/gh-pages/_posts/2015-01-05-2.3.2.md +18 -0
  77. data/gh-pages/_posts/2015-12-03-get-involved.md +29 -0
  78. data/gh-pages/_posts/2015-12-05-2.3.3.md +16 -0
  79. data/gh-pages/_posts/2016-01-02-2.4.0.md +19 -0
  80. data/gh-pages/_posts/2017-05-01-2.4.1.md +12 -0
  81. data/gh-pages/_posts/2017-10-23-sleep-mode.md +18 -0
  82. data/gh-pages/_posts/2018-01-03-3.0.1.md +12 -0
  83. data/gh-pages/_stylesheets/ppl/color.less +119 -0
  84. data/gh-pages/_stylesheets/ppl/layout.less +54 -0
  85. data/gh-pages/_stylesheets/ppl/style.less +185 -0
  86. data/gh-pages/_stylesheets/ppl/typography.less +59 -0
  87. data/gh-pages/development/changelog/index.md +18 -0
  88. data/gh-pages/development/changelog/split.rb +51 -0
  89. data/gh-pages/development/index.html +32 -0
  90. data/gh-pages/development/roadmap/index.md +15 -0
  91. data/gh-pages/documentation/about/index.html +63 -0
  92. data/gh-pages/documentation/commands/add/index.md +43 -0
  93. data/gh-pages/documentation/commands/age/add/index.md +40 -0
  94. data/gh-pages/documentation/commands/age/index.md +38 -0
  95. data/gh-pages/documentation/commands/bday/index.md +44 -0
  96. data/gh-pages/documentation/commands/completion/index.md +38 -0
  97. data/gh-pages/documentation/commands/email/index.md +64 -0
  98. data/gh-pages/documentation/commands/grep/index.md +32 -0
  99. data/gh-pages/documentation/commands/init/index.md +28 -0
  100. data/gh-pages/documentation/commands/ls/index.md +55 -0
  101. data/gh-pages/documentation/commands/mutt/index.md +36 -0
  102. data/gh-pages/documentation/commands/mv/index.md +26 -0
  103. data/gh-pages/documentation/commands/name/index.md +45 -0
  104. data/gh-pages/documentation/commands/nick/index.md +44 -0
  105. data/gh-pages/documentation/commands/org/index.md +45 -0
  106. data/gh-pages/documentation/commands/phone/index.md +56 -0
  107. data/gh-pages/documentation/commands/post/index.md +61 -0
  108. data/gh-pages/documentation/commands/pull/index.md +39 -0
  109. data/gh-pages/documentation/commands/push/index.md +36 -0
  110. data/gh-pages/documentation/commands/remote/index.md +40 -0
  111. data/gh-pages/documentation/commands/rm/index.md +23 -0
  112. data/gh-pages/documentation/commands/scrape/index.md +38 -0
  113. data/gh-pages/documentation/commands/shell/index.md +39 -0
  114. data/gh-pages/documentation/commands/show/index.md +33 -0
  115. data/gh-pages/documentation/commands/url/index.md +44 -0
  116. data/gh-pages/documentation/commands/version/index.md +27 -0
  117. data/gh-pages/documentation/configuration/address_book/index.md +22 -0
  118. data/gh-pages/documentation/configuration/alias/index.md +45 -0
  119. data/gh-pages/documentation/configuration/color/index.md +47 -0
  120. data/gh-pages/documentation/configuration/color_age/index.md +20 -0
  121. data/gh-pages/documentation/configuration/color_bday/index.md +20 -0
  122. data/gh-pages/documentation/configuration/color_email/index.md +21 -0
  123. data/gh-pages/documentation/configuration/color_ls/index.md +21 -0
  124. data/gh-pages/documentation/configuration/color_name/index.md +20 -0
  125. data/gh-pages/documentation/configuration/color_nick/index.md +20 -0
  126. data/gh-pages/documentation/configuration/color_org/index.md +20 -0
  127. data/gh-pages/documentation/configuration/color_phone/index.md +22 -0
  128. data/gh-pages/documentation/configuration/color_post/index.md +20 -0
  129. data/gh-pages/documentation/configuration/color_url/index.md +20 -0
  130. data/gh-pages/documentation/configuration/index.html +8 -0
  131. data/gh-pages/documentation/index.html +183 -0
  132. data/gh-pages/documentation/integration/bash/index.md +23 -0
  133. data/gh-pages/documentation/integration/google/index.md +26 -0
  134. data/gh-pages/documentation/integration/index.html +8 -0
  135. data/gh-pages/documentation/integration/mutt/index.md +35 -0
  136. data/gh-pages/documentation/integration/zsh/index.md +19 -0
  137. data/gh-pages/documentation/quick-start/index.html +88 -0
  138. data/gh-pages/documentation/tips/index.html +9 -0
  139. data/gh-pages/index.html +108 -0
  140. data/gh-pages/news/index.html +9 -0
  141. data/gh-pages/robots.txt +3 -0
  142. data/gh-pages/stylesheets/flatstrap.css +10 -0
  143. data/gh-pages/stylesheets/ppl.scss +235 -0
  144. data/gh-pages/wiki.png +0 -0
  145. data/lib/ppl.rb +4 -1
  146. data/lib/ppl/adapter/color.rb +0 -1
  147. data/lib/ppl/adapter/color/colored.rb +0 -1
  148. data/lib/ppl/adapter/email_scraper.rb +0 -1
  149. data/lib/ppl/adapter/email_scraper/mail.rb +4 -5
  150. data/lib/ppl/adapter/storage.rb +0 -1
  151. data/lib/ppl/adapter/storage/disk.rb +0 -1
  152. data/lib/ppl/adapter/storage/factory.rb +0 -1
  153. data/lib/ppl/adapter/vcard.rb +0 -1
  154. data/lib/ppl/adapter/vcard/vpim.rb +5 -1
  155. data/lib/ppl/application/bootstrap.rb +0 -1
  156. data/lib/ppl/application/command.rb +0 -1
  157. data/lib/ppl/application/command_suite.rb +0 -1
  158. data/lib/ppl/application/configuration.rb +0 -1
  159. data/lib/ppl/application/input.rb +0 -1
  160. data/lib/ppl/application/output.rb +0 -1
  161. data/lib/ppl/application/router.rb +0 -1
  162. data/lib/ppl/application/shell.rb +0 -1
  163. data/lib/ppl/command/add.rb +0 -1
  164. data/lib/ppl/command/age.rb +0 -1
  165. data/lib/ppl/command/attribute.rb +0 -1
  166. data/lib/ppl/command/bday.rb +0 -1
  167. data/lib/ppl/command/completion.rb +0 -1
  168. data/lib/ppl/command/email.rb +0 -1
  169. data/lib/ppl/command/external.rb +0 -1
  170. data/lib/ppl/command/help.rb +0 -1
  171. data/lib/ppl/command/init.rb +0 -1
  172. data/lib/ppl/command/ls.rb +0 -1
  173. data/lib/ppl/command/mutt.rb +0 -1
  174. data/lib/ppl/command/mv.rb +0 -1
  175. data/lib/ppl/command/name.rb +0 -1
  176. data/lib/ppl/command/nick.rb +0 -1
  177. data/lib/ppl/command/org.rb +0 -1
  178. data/lib/ppl/command/phone.rb +0 -1
  179. data/lib/ppl/command/post.rb +0 -1
  180. data/lib/ppl/command/rm.rb +0 -1
  181. data/lib/ppl/command/scrape.rb +0 -1
  182. data/lib/ppl/command/shell.rb +0 -1
  183. data/lib/ppl/command/show.rb +0 -1
  184. data/lib/ppl/command/url.rb +0 -1
  185. data/lib/ppl/command/version.rb +0 -1
  186. data/lib/ppl/entity/address_book.rb +0 -1
  187. data/lib/ppl/entity/contact.rb +0 -1
  188. data/lib/ppl/entity/email_address.rb +0 -1
  189. data/lib/ppl/entity/name.rb +0 -1
  190. data/lib/ppl/entity/phone_number.rb +0 -1
  191. data/lib/ppl/entity/postal_address.rb +0 -1
  192. data/lib/ppl/error/completion_not_found.rb +0 -1
  193. data/lib/ppl/error/contact_not_found.rb +0 -1
  194. data/lib/ppl/error/incorrect_usage.rb +0 -1
  195. data/lib/ppl/error/invalid_vcard.rb +1 -0
  196. data/lib/ppl/error/postal_address_not_found.rb +0 -1
  197. data/lib/ppl/format/address_book.rb +0 -1
  198. data/lib/ppl/format/address_book/ages.rb +0 -1
  199. data/lib/ppl/format/address_book/birthdays.rb +0 -1
  200. data/lib/ppl/format/address_book/email_addresses.rb +0 -1
  201. data/lib/ppl/format/address_book/mutt_query.rb +0 -1
  202. data/lib/ppl/format/address_book/names.rb +0 -1
  203. data/lib/ppl/format/address_book/nicknames.rb +0 -1
  204. data/lib/ppl/format/address_book/one_line.rb +0 -1
  205. data/lib/ppl/format/address_book/organizations.rb +0 -1
  206. data/lib/ppl/format/address_book/phone_numbers.rb +0 -1
  207. data/lib/ppl/format/address_book/postal_addresses.rb +0 -1
  208. data/lib/ppl/format/address_book/urls.rb +0 -1
  209. data/lib/ppl/format/contact.rb +0 -1
  210. data/lib/ppl/format/contact/age.rb +0 -1
  211. data/lib/ppl/format/contact/birthday.rb +0 -1
  212. data/lib/ppl/format/contact/email_addresses.rb +0 -1
  213. data/lib/ppl/format/contact/full.rb +0 -1
  214. data/lib/ppl/format/contact/nicknames.rb +0 -1
  215. data/lib/ppl/format/contact/organization.rb +0 -1
  216. data/lib/ppl/format/contact/phone_number.rb +0 -1
  217. data/lib/ppl/format/contact/postal_address.rb +0 -1
  218. data/lib/ppl/format/contact/postal_addresses.rb +0 -1
  219. data/lib/ppl/format/contact/urls.rb +0 -1
  220. data/lib/ppl/format/custom.rb +0 -1
  221. data/lib/ppl/format/custom/contact.rb +0 -1
  222. data/lib/ppl/format/custom/email_address.rb +0 -1
  223. data/lib/ppl/format/custom/phone_number.rb +0 -1
  224. data/lib/ppl/format/name.rb +0 -1
  225. data/lib/ppl/format/name/full_only.rb +0 -1
  226. data/lib/ppl/format/postal_address.rb +0 -1
  227. data/lib/ppl/format/postal_address/multi_line.rb +0 -1
  228. data/lib/ppl/format/postal_address/one_line.rb +0 -1
  229. data/lib/ppl/format/table.rb +0 -1
  230. data/lib/ppl/service/email_address.rb +0 -1
  231. data/lib/ppl/service/name.rb +0 -1
  232. data/lib/ppl/service/phone_number.rb +0 -1
  233. data/lib/ppl/service/postal_address.rb +0 -1
  234. data/{LICENSE → license} +0 -0
  235. data/makefile +18 -0
  236. data/package.json +23 -0
  237. data/ppl.gemspec +15 -13
  238. data/{README.md → readme.md} +12 -9
  239. data/site/_data/url.js +4 -0
  240. data/site/casts/hero.cast +189 -0
  241. data/site/development.njk +6 -0
  242. data/site/documentation.njk +6 -0
  243. data/site/index.njk +75 -0
  244. data/site/news.njk +6 -0
  245. data/site/style.scss +140 -0
  246. data/spec/ppl/adapter/color/colored_spec.rb +3 -4
  247. data/spec/ppl/adapter/color_spec.rb +0 -1
  248. data/spec/ppl/adapter/email_scraper/mail_spec.rb +13 -13
  249. data/spec/ppl/adapter/email_scraper_spec.rb +0 -1
  250. data/spec/ppl/adapter/output_spec.rb +7 -8
  251. data/spec/ppl/adapter/storage/disk_spec.rb +18 -19
  252. data/spec/ppl/adapter/storage/factory_spec.rb +3 -4
  253. data/spec/ppl/adapter/storage/git_spec.rb +31 -32
  254. data/spec/ppl/adapter/storage_spec.rb +3 -4
  255. data/spec/ppl/adapter/vcard/greencard_spec.rb +45 -45
  256. data/spec/ppl/adapter/vcard_spec.rb +0 -1
  257. data/spec/ppl/application/bootstrap_spec.rb +128 -129
  258. data/spec/ppl/application/command_spec.rb +8 -9
  259. data/spec/ppl/application/command_suite_spec.rb +7 -8
  260. data/spec/ppl/application/configuration_spec.rb +16 -17
  261. data/spec/ppl/application/input_spec.rb +2 -3
  262. data/spec/ppl/application/router_spec.rb +8 -9
  263. data/spec/ppl/application/shell_spec.rb +39 -40
  264. data/spec/ppl/command/add_spec.rb +6 -7
  265. data/spec/ppl/command/age_spec.rb +7 -8
  266. data/spec/ppl/command/attribute_spec.rb +22 -23
  267. data/spec/ppl/command/bday_spec.rb +11 -12
  268. data/spec/ppl/command/completion_spec.rb +7 -8
  269. data/spec/ppl/command/email_spec.rb +19 -20
  270. data/spec/ppl/command/external_spec.rb +7 -8
  271. data/spec/ppl/command/help_spec.rb +15 -16
  272. data/spec/ppl/command/init_spec.rb +5 -6
  273. data/spec/ppl/command/ls_spec.rb +12 -13
  274. data/spec/ppl/command/mutt_spec.rb +33 -34
  275. data/spec/ppl/command/mv_spec.rb +11 -12
  276. data/spec/ppl/command/name_spec.rb +17 -18
  277. data/spec/ppl/command/nick_spec.rb +1 -2
  278. data/spec/ppl/command/org_spec.rb +1 -2
  279. data/spec/ppl/command/phone_spec.rb +15 -16
  280. data/spec/ppl/command/post_spec.rb +29 -30
  281. data/spec/ppl/command/rm_spec.rb +3 -4
  282. data/spec/ppl/command/scrape_spec.rb +24 -25
  283. data/spec/ppl/command/shell_spec.rb +41 -42
  284. data/spec/ppl/command/show_spec.rb +4 -5
  285. data/spec/ppl/command/url_spec.rb +1 -2
  286. data/spec/ppl/command/version_spec.rb +4 -5
  287. data/spec/ppl/entity/address_book_spec.rb +1 -2
  288. data/spec/ppl/entity/contact_spec.rb +16 -17
  289. data/spec/ppl/entity/email_address_spec.rb +3 -4
  290. data/spec/ppl/entity/name_spec.rb +1 -2
  291. data/spec/ppl/entity/phone_number_spec.rb +5 -6
  292. data/spec/ppl/entity/postal_address_spec.rb +2 -3
  293. data/spec/ppl/format/address_book/ages_spec.rb +3 -4
  294. data/spec/ppl/format/address_book/birthdays_spec.rb +3 -4
  295. data/spec/ppl/format/address_book/email_addresses_spec.rb +3 -4
  296. data/spec/ppl/format/address_book/mutt_query_spec.rb +3 -4
  297. data/spec/ppl/format/address_book/names_spec.rb +3 -4
  298. data/spec/ppl/format/address_book/nicknames_spec.rb +4 -5
  299. data/spec/ppl/format/address_book/one_line_spec.rb +5 -6
  300. data/spec/ppl/format/address_book/organizations_spec.rb +3 -4
  301. data/spec/ppl/format/address_book/phone_numbers_spec.rb +3 -4
  302. data/spec/ppl/format/address_book/postal_addresses_spec.rb +2 -3
  303. data/spec/ppl/format/address_book/urls_spec.rb +3 -4
  304. data/spec/ppl/format/address_book_spec.rb +0 -1
  305. data/spec/ppl/format/contact/age_spec.rb +8 -9
  306. data/spec/ppl/format/contact/birthday_spec.rb +4 -5
  307. data/spec/ppl/format/contact/email_addresses_spec.rb +3 -4
  308. data/spec/ppl/format/contact/full_spec.rb +11 -12
  309. data/spec/ppl/format/contact/nicknames_spec.rb +4 -5
  310. data/spec/ppl/format/contact/organization_spec.rb +4 -5
  311. data/spec/ppl/format/contact/phone_number_spec.rb +4 -5
  312. data/spec/ppl/format/contact/postal_address_spec.rb +1 -2
  313. data/spec/ppl/format/contact/postal_addresses_spec.rb +3 -4
  314. data/spec/ppl/format/contact/urls_spec.rb +4 -5
  315. data/spec/ppl/format/contact_spec.rb +0 -1
  316. data/spec/ppl/format/custom/contact_spec.rb +13 -14
  317. data/spec/ppl/format/custom/email_address_spec.rb +3 -4
  318. data/spec/ppl/format/custom/phone_number_spec.rb +4 -5
  319. data/spec/ppl/format/custom_spec.rb +6 -7
  320. data/spec/ppl/format/name/full_only_spec.rb +4 -5
  321. data/spec/ppl/format/name_spec.rb +0 -1
  322. data/spec/ppl/format/postal_address/multi_line_spec.rb +10 -11
  323. data/spec/ppl/format/postal_address/one_line_spec.rb +9 -10
  324. data/spec/ppl/format/postal_address_spec.rb +0 -1
  325. data/spec/ppl/format/table_spec.rb +11 -11
  326. data/spec/ppl/service/email_address_spec.rb +13 -14
  327. data/spec/ppl/service/name_spec.rb +9 -10
  328. data/spec/ppl/service/phone_number_spec.rb +11 -12
  329. data/spec/ppl/service/postal_address_spec.rb +20 -21
  330. data/spec/spec_helper.rb +4 -0
  331. data/yarn.lock +3605 -0
  332. metadata +183 -22
  333. data/.travis.yml +0 -11
  334. data/COPYING +0 -339
@@ -0,0 +1,16 @@
1
+ ---
2
+ title: 1.24.0
3
+ summary: Preferred email addresses
4
+ date: 2013-04-23
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.24.0.html
9
+ ---
10
+
11
+ Preferred email addresses and phone numbers can be marked as such as of
12
+ `1.24.0`. This is good news if you have contacts with several similar addresses
13
+ or numbers who only tend to check one of them. Now you can mark their preferred
14
+ contact details with the `--preferred` flag and ppl will remember this
15
+ preferential status for you. Preferred numbers and addresses are displayed with
16
+ a `*` before them.
@@ -0,0 +1,21 @@
1
+ ---
2
+ title: 1.25.0
3
+ summary: Customizable Output
4
+ date: 2013-04-24
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.25.0.html
9
+ ---
10
+
11
+ This release brings the very basic first customizability to the output of ppl's
12
+ commands. As of this version, it's possible to pass a `--format` option to [`ppl
13
+ email`](/documentation/commands/email) and [`ppl
14
+ ls`](/documentation/commands/ls) to specify the exact nature of the output
15
+ required. Also part of this new version is the ability to configure preset
16
+ format strings for [`ppl ls`](/documentation/commands/ls) in `~/.pplconfig` and
17
+ invoke them by name using the `--pretty` option.
18
+
19
+ Obviously, this type of functionality has the potential to be added to just
20
+ about all of ppl's output. In time, that will happen. For now, this gets the
21
+ basic functionality out there for use.
@@ -0,0 +1,33 @@
1
+ ---
2
+ title: 2.0.0
3
+ summary: ppl post overhaul
4
+ date: 2013-05-09
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/2.0.0.html
9
+ ---
10
+
11
+ As a result of its backwards compatibility breaking changes, the overhaul of
12
+ [ppl post](/documentation/commands/post) brings us to version 2.0.0. The
13
+ behaviour and usage of this command have changed completely in order to cope
14
+ with storing multiple postal addresses per contact.
15
+
16
+ Here is a short summary of what has changed:
17
+
18
+ * Running `ppl post` no longer lists contacts' full addresses.
19
+ Instead it lists contacts' address *IDs*.
20
+ * Running `ppl post <contact>` no longer shows that contact's single postal
21
+ address. Instead it lists *all* that contact's postal addresses.
22
+ * Postal address now have their own IDs. In order to change a postal address,
23
+ the ID of both the contact and the address itself must be given.
24
+ * It is now possible to mark a postal address as "preferred", similarly to email
25
+ addresses and phone numbers.
26
+
27
+ From a technical point of view, the downside of this release is the minor
28
+ violation of [RFC2426](http://www.ietf.org/rfc/rfc2426.txt) that it introduces.
29
+ The `ADR` field's `TYPE` attribute is intended as a means of tagging addresses
30
+ with extra information such as "home" or "work", but as of 2.0.0, ppl
31
+ misappropriates this attribute as the home of the unique ID of each postal
32
+ address.
33
+
@@ -0,0 +1,32 @@
1
+ ---
2
+ title: ppl 2.0.0 released
3
+ date: 2013-05-09
4
+ layout: news
5
+ section: news
6
+ categories: [news]
7
+ ---
8
+
9
+ It's been almost exactly six months since the very [first
10
+ commit](https://github.com/hnrysmth/ppl/commit/e45917e06afd255271bad51ce216642e7277ce86),
11
+ and I'm proud to announce that ppl has now reached the dizzy heights of version
12
+ 2.0.0! This is a milestone release for more than one reason, and I'm very happy
13
+ that this project has made it to this point.
14
+
15
+ Most important of all, the reason for the major version bump is that [ppl
16
+ post](/documentation/commands/post) has been overhauled to support storing
17
+ multiple postal addresses per contact. This overhaul introduced a number of
18
+ backwards-incompatible changes to the behaviour of that command and ppl's
19
+ underlying vCard integration, hence the bump to 2.0.0.
20
+
21
+ The other reason why this is quite a milestone release is that support for
22
+ multiple postal addresses was really the last major missing piece of the puzzle
23
+ in terms of core ppl functionality. There are still some bits and pieces of
24
+ vCard functionality that aren't yet exposed, but those that remain now are
25
+ mostly edge cases. It's satisfying to see ppl approach the functionality goals I
26
+ had for it when I started.
27
+
28
+ This is by no means the end of the development process. There's a long way to go
29
+ still in terms of ppl's flexibility for integration with other software. In the
30
+ meantime, this version represents a big step forward, and the culmination of six
31
+ months of hard work.
32
+
@@ -0,0 +1,36 @@
1
+ ---
2
+ title: 2.1.0
3
+ summary: Better name management
4
+ date: 2013-07-20
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/2.1.0.html
9
+ ---
10
+
11
+ With thanks to [@pigmonkey](https://github.com/pigmonkey) for raising this as
12
+ [issue #42](https://github.com/hnrysmth/ppl/issues/42) on GitHub, version 2.1.0
13
+ brings increased control over the names of contacts. This is intended to improve
14
+ interoperability with other address book software, including the Android
15
+ system's contact list.
16
+
17
+ Short, lower case contact IDs are great for a CLI program, but on a phone, you
18
+ probably want to see full names. This update provides full access to all the
19
+ bits & pieces of vCard's `N` (name) field:
20
+
21
+ * Family name(s)
22
+ * Middle name(s)
23
+ * Given name(s)
24
+ * Prefix
25
+ * Suffix
26
+
27
+ See the documentation of [ppl name](/documentation/commands/name/) for more
28
+ details on how to use this new functionality.
29
+
30
+ Also included is some slightly different behaviour under the hood of [ppl
31
+ add](/documentation/commands/name/). This command now attempts to "have a
32
+ guess" at the structure of the name of a newly-added contact. It'll treat the
33
+ first word of the full name as the contact's given name, and the rest of the
34
+ string as their family name. This is a shamefully anglocentric approach to name
35
+ parsing, but at least it's a start.
36
+
@@ -0,0 +1,20 @@
1
+ ---
2
+ title: 2.2.0
3
+ summary: ppl scrape overwrite prevention
4
+ date: 2013-07-20
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/2.2.0.html
9
+ ---
10
+
11
+ Thanks again to [@pigmonkey](https://github.com/pigmonkey) for [issue #32](https://github.com/hnrysmth/ppl/issues/32),
12
+ reporting some unhelpful destructive behaviour in [ppl
13
+ scrape](/documentation/commands/scrape/). In this version, some additional
14
+ checking has been added to that command to prevent it from overwriting existing
15
+ contacts.
16
+
17
+ In the event that the scraped contact ID happens to match that of an existing
18
+ contact, ppl scrape will now notice this collision and append numbers to the new
19
+ ID until it no longer matches any existing contact's IDs.
20
+
@@ -0,0 +1,19 @@
1
+ ---
2
+ title: 2.3.0
3
+ summary: ppl grep
4
+ date: 2013-10-12
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/2.3.0.html
9
+ ---
10
+
11
+ With thanks to [@ajford](https://github.com/ajford) for the excellent [feature
12
+ request](https://github.com/hnrysmth/ppl/issues/43), version 2.3.0 brings a new
13
+ command: [ppl grep](/documentation/commands/grep/). This command leverages the
14
+ extremely high speed search `git grep` repository search in order to provide
15
+ near-instant search results.
16
+
17
+ $ ppl grep smith
18
+ john.vcf:EMAIL:john.smith@example.org
19
+
@@ -0,0 +1,25 @@
1
+ ---
2
+ title: 2.3.1
3
+ summary: Simple Bug Fixes
4
+ date: 2014-03-30
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/2.3.1.html
9
+ ---
10
+
11
+ Once again, I'm grateful to [@alexGschaider] for his patience. This minor
12
+ version fixes a couple of annoying little problems that he's bumped into.
13
+
14
+ The first problem was a pretty terrible error message which was displayed when a
15
+ `.vcf` file contains invalid vCard data. This has now been fixed, and the error
16
+ message replaced with something much more sensible.
17
+
18
+ $ ppl show badcontact
19
+ ppl: badcontact.vcf contains invalid data
20
+
21
+ The second was yet another `Encoding::CompatibilityError`, just like back in the
22
+ bad old days before ppl even supported UTF-8 at all. Hopefully this will be the
23
+ last one of those now!
24
+
25
+ [@alexGschaider]: https://github.com/axelGschaider
@@ -0,0 +1,18 @@
1
+ ---
2
+ title: 2.3.2
3
+ summary: scrape output fix
4
+ date: 2015-01-05
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/2.3.2.html
9
+ ---
10
+
11
+ I'm very grateful to [@hobarrera](https://github.com/hobarrera) for contributing
12
+ this fix to [ppl scrape](/documentation/commands/scrape/). A simple mistake in
13
+ the output formatting code was causing it to appear slightly garbled, like this:
14
+
15
+ Add "Hugo Osvaldo Barrera #<Ppl::Entity::EmailAddress:0x00000001ffbd28>>"
16
+ to your address book [Y/n]?
17
+
18
+ So thanks for fixing that, Hugo!
@@ -0,0 +1,29 @@
1
+ ---
2
+ title: Get Involved!
3
+ date: 2015-12-03
4
+ layout: news
5
+ section: news
6
+ categories: [news]
7
+ ---
8
+
9
+ The time has come to give this project a nudge into a slightly different mode of
10
+ operation. Enough people are interested in the long term health of this little
11
+ CLI app that I think it'd benefit from opening the doors a bit to potential
12
+ collaborators and maintainers. So I've converted the project into a proper
13
+ [GitHub organization](https://github.com/hnrysmth) and I'm inviting you to
14
+ come and join it.
15
+
16
+ I see lots of people come and go with great ideas for this project. I love 99%
17
+ of the ideas and suggestions that pop up but I just can't keep up with all the
18
+ different demands on my time. That's the bottleneck that's holding the project
19
+ back and it's silly, really.
20
+
21
+ For a while I've been wanting to do something about this. If you want to help
22
+ out in any way, however small, speak up on GitHub, [email me](mailto:henry@henrysmith.org),
23
+ or get in touch on [Twitter](https://twitter.com/hnrysmth). I'd love to add you
24
+ to the organization and let you *just get started* making your ideas happen.
25
+ Even if you just like the project, but don't have any immediate plans to do
26
+ anything in particular, that's fine! If you've never contributed to an open
27
+ source project before, don't let that put you off. Everyone's welcome!
28
+
29
+
@@ -0,0 +1,16 @@
1
+ ---
2
+ title: 2.3.3
3
+ summary: non-ASCII input fix
4
+ date: 2015-12-05
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/2.3.3.html
9
+ ---
10
+
11
+ This release is [@tba](https://github.com/tba)'s [non-ASCII input fix PR](https://github.com/hnrysmth/ppl/pull/56)
12
+
13
+ It's a fix enabling ppl to save non-ASCII names when scraping contact data
14
+ from emails.
15
+
16
+ It took altogether too long for me to merge this and I apologise!
@@ -0,0 +1,19 @@
1
+ ---
2
+ title: 2.4.0
3
+ summary: Better commit author
4
+ date: 2016-01-12
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/2.4.0.html
9
+ ---
10
+
11
+ If you've ever looked at the commit history that ppl generates in your address
12
+ book you'll have noticed the ugly-looking commit author. [@drewbug] certainly
13
+ noticed and took the time to do something about it.
14
+
15
+ As of this version, ppl pulls in your Git config and uses your `user.name` and
16
+ `user.email` if available. If not, it falls back to the old (ugly) author
17
+ generation.
18
+
19
+ [@drewbug]: https://github.com/drewbug
@@ -0,0 +1,12 @@
1
+ ---
2
+ title: 2.4.1
3
+ summary: Upgrade to rugged ~> v0.24.0
4
+ date: 2017-05-01
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/2.4.1.html
9
+ ---
10
+
11
+ This release is just a merge of one PR from [@acant](https://github.com/acant). It upgrades to a much more
12
+ modern version of the rugged gem.
@@ -0,0 +1,18 @@
1
+ ---
2
+ title: Sleep Mode
3
+ date: 2017-10-23
4
+ layout: news
5
+ section: news
6
+ categories: [news]
7
+ ---
8
+
9
+ This project seems to be in a good stable state. There's a small active
10
+ userbase who are mostly content with the software as-is. Not a lot of
11
+ maintenance or feature work is necessary these days and I can't justify
12
+ spending money on a domain for a project that's just chilling like this.
13
+
14
+ I'm converting the whole thing into a single, easy-to-look-after repo in my
15
+ own personal GitHub account and disabling autorenew on `ppladdressbook.org`.
16
+ Wanna make it clear that I consider this a fairly decent set of circumstances
17
+ for the project to be in btw. It mostly just works and that's for the best
18
+ cos I don't really have a lot of time to maintain and fix it any more.
@@ -0,0 +1,12 @@
1
+ ---
2
+ title: 3.0.1
3
+ summary: Fix name deletion bug
4
+ date: 2018-01-03
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/3.0.1.html
9
+ ---
10
+
11
+ Fix for a [name deletion bug](https://github.com/hnrysmth/ppl/issues/74) reported by [@the-reverend](https://github.com/the-reverend).
12
+
@@ -0,0 +1,119 @@
1
+
2
+ @base03 : #002b36;
3
+ @base02 : #073642;
4
+ @base01 : #586e75;
5
+ @base00 : #657b83;
6
+ @base0 : #839496;
7
+ @base1 : #93a1a1;
8
+ @base2 : #eee8d5;
9
+ @base3 : #fdf6e3;
10
+ @yellow : #b58900;
11
+ @orange : #cb4b16;
12
+ @red : #dc322f;
13
+ @magenta : #d33682;
14
+ @violet : #6c71c4;
15
+ @blue : #268bd2;
16
+ @cyan : #2aa198;
17
+ @green : #859900;
18
+
19
+ @lightGrey: #FAFAFA;
20
+ @darkGrey: #F0F0F0;
21
+
22
+ a:link, a:visited {
23
+ color: @blue;
24
+ }
25
+
26
+ body {
27
+ background-color: @lightGrey;
28
+ color: @base01;
29
+ }
30
+
31
+ div.content {
32
+ background-color: @lightGrey;
33
+ }
34
+
35
+ code {
36
+ background-color: @base3;
37
+ }
38
+
39
+ h2 { color: @base03; }
40
+ h3 { color: @orange; }
41
+
42
+ pre {
43
+ background-color: @base03;
44
+ color: @base2;
45
+ display: block;
46
+ }
47
+
48
+ .front-page {
49
+ h1.big-welcome, .little-welcome {
50
+ color: @base03;
51
+ }
52
+ }
53
+
54
+ .btn {
55
+ &.btn-primary {
56
+ background-color: @blue;
57
+ color: @base2;
58
+ }
59
+ }
60
+
61
+ .navbar {
62
+ .navbar-inner {
63
+ background-color: @darkGrey;
64
+ }
65
+ .brand {
66
+ color: @base03;
67
+ font-weight: bold;
68
+ text-shadow: none;
69
+ }
70
+ }
71
+
72
+ .command-list {
73
+ h2 {
74
+ color: inherit;
75
+ }
76
+ }
77
+
78
+ .navbar .nav > li > a {
79
+ color: @base02;
80
+ }
81
+
82
+ .navbar .nav > .active > a,
83
+ .navbar .nav > .active > a:hover,
84
+ .navbar .nav > .active > a:focus {
85
+ background-color: @orange;
86
+ color: @base3;
87
+ }
88
+
89
+ .nav-list {
90
+ background-color: @darkGrey;
91
+ border: 1px solid rgb(221, 221, 221);
92
+ }
93
+ .nav-list > li:hover > a {
94
+ background-color: inherit;
95
+ color: inherit;
96
+ }
97
+ .nav-list > li.active:hover > a,
98
+ .nav-list > li.active > a {
99
+ background-color: @orange;
100
+ color: @base3;
101
+ }
102
+
103
+ footer.global {
104
+ color: @base1;
105
+
106
+ a:link, a:visited {
107
+ color: @base0;
108
+ }
109
+ }
110
+
111
+ .nav-sidebar {
112
+ dt.active,
113
+ dt.active a,
114
+ dd.active {
115
+ background-color: @orange;
116
+ color: @base3;
117
+ }
118
+ }
119
+