ppl 3.0.0 → 4.0.3

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