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,19 @@
1
+ ---
2
+ title: 1.0.0
3
+ summary: First public version
4
+ date: 2012-12-20
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.0.0.html
9
+ ---
10
+
11
+ This is the first publicly-announced release. Since none of the previous
12
+ releases have been publicised in any way, it's assumed that nobody out there has
13
+ been using them.
14
+
15
+ This being the case, the changelog entry for `1.0.0` is effectively the set of
16
+ all changes since the non-existence of the program until this version. So let's
17
+ put that in list form as seems to be customary in changelogs:
18
+
19
+ * ppl now exists
@@ -0,0 +1,28 @@
1
+ ---
2
+ title: 1.1.0
3
+ summary: Hacker News feature requests and bugfixes
4
+ date: 2012-12-20
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.1.0.html
9
+ ---
10
+
11
+ These are some very quickly added changes resulting from this morning's exposure
12
+ on [Hacker News](http://news.ycombinator.com/item?id=4947047). A few real
13
+ show-stopping bugs have been fixed, and a new feature has been added for mutt
14
+ users.
15
+
16
+ Many thanks to [@storge](https://github.com/storge) on GitHub for all the help
17
+ fixing the long series of issues in [Issue #1](https://github.com/hnrysmth/ppl/issues/1). You absolute legend.
18
+
19
+ Also, thanks to [7h0ma5](http://news.ycombinator.com/user?id=7h0ma5) on HN for
20
+ the [mutt integration suggestion](http://news.ycombinator.com/item?id=4947256)
21
+ and the helpful documentation link. Support for usage as the backend to mutt's
22
+ `query_command` option has been added in the form of [ppl
23
+ mutt](/documentation/commands/mutt).
24
+
25
+ * Fixed missing dependency declaration in gemspec
26
+ * Fixed missing minimum ruby version in gemspec
27
+ * Fixed completely broken and useless `ppl init` command
28
+ * Added `ppl mutt` command
@@ -0,0 +1,18 @@
1
+ ---
2
+ title: 1.2.0
3
+ summary: ppl post
4
+ date: 2012-12-20
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.2.0.html
9
+ ---
10
+
11
+ A relatively small release in terms of new functionality, `1.2.0` simply adds
12
+ the [ppl post](/documentation/commands/post) command. This command was always in
13
+ the pipeline, but thanks anways to
14
+ [nicky0](http://news.ycombinator.com/user?id=nicky0) on Hacker News for
15
+ [prompting me](http://news.ycombinator.com/item?id=4947468) to prioritise it
16
+ slightly.
17
+
18
+ * Added `ppl post` command
@@ -0,0 +1,20 @@
1
+ ---
2
+ title: 1.3.0
3
+ summary: XDG-compatible configuration
4
+ date: 2012-12-21
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.3.0.html
9
+ ---
10
+
11
+ Adds support for XDG-compatible configuration. Many thanks to
12
+ [@tijn](https://github.com/hnrysmth/ppl/issues/4) on GitHub for [recommending this
13
+ functionality](https://github.com/hnrysmth/ppl/issues/4).
14
+
15
+ This means ppl can now be alternatively configured using a file at
16
+ `~/.config/ppl/config`. If you like keeping your `~/` free of dotfile clutter
17
+ then this is good news. If not, don't worry, `~/.pplconfig` continues working as
18
+ normal.
19
+
20
+ * Add support for XDG-compatible configuration file location
@@ -0,0 +1,26 @@
1
+ ---
2
+ title: Thanks For All Your Feedback
3
+ date: 2012-12-21
4
+ layout: news
5
+ section: news
6
+ categories: [news]
7
+ ---
8
+
9
+ Yesterday I worked up the courage to submit this project to Hacker News under
10
+ the usual [Show HN](http://news.ycombinator.com/item?id=4947047) format. I was
11
+ pleasantly surprised by how positive the feedback was overall. It was especially
12
+ heartening to confirm that I'm not the only person out there who would be
13
+ interested in using a command line address book!
14
+
15
+ As a result of all the attention that came flooding in, questions were asked and
16
+ answered, bugs were reported and fixed, and features were suggested and
17
+ implemented. It was a really fun day.
18
+
19
+ The elephant in the room is obviously sync functionality at this point. Lots
20
+ and lots of people have made it very clear that even though they think this
21
+ project is a great idea it is useless in the extreme to them unless it can sync
22
+ with their GMail or iCloud. Rest assured that [this has not gone
23
+ unnoticed](https://github.com/hnrysmth/ppl/issues/5).
24
+
25
+ Stay tuned!
26
+
@@ -0,0 +1,21 @@
1
+ ---
2
+ title: 1.4.1
3
+ summary: Multiple email addresses per contact
4
+ date: 2012-12-22
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.4.1.html
9
+ ---
10
+
11
+ This version is a first step towards removing the annoying limitation of one
12
+ email address, postal address and so on per contact. This isn't glamorous work
13
+ but it's vital functionality.
14
+
15
+ The ability to add more than one email address to a contact has been added. This
16
+ is not 100% complete: email addresses cannot yet be deleted, for example. And
17
+ [ppl show](/documentation/commands/show) does not yet show all the addresses
18
+ (only [ppl email](/documentation/commands/email) does for now). But at least
19
+ it's now possible to store the data
20
+
21
+ * Contacts can now have more than one email address
@@ -0,0 +1,17 @@
1
+ ---
2
+ title: 1.5.0
3
+ summary: ppl shell
4
+ date: 2012-12-22
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.5.0.html
9
+ ---
10
+
11
+ The addition of "interactive mode" in the form of [ppl
12
+ shell](/documentation/commands/shell). Thanks to
13
+ [@axelGschaider](https://github.com/axelGschaider) on GitHub for [the
14
+ suggestion](https://github.com/hnrysmth/ppl/issues/7). This ought to make life a lot
15
+ easier for people entering lots of commands at once!
16
+
17
+ * Added `ppl shell` command
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: 1.5.1
3
+ summary: ppl post bugfix
4
+ date: 2012-12-23
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.5.1.html
9
+ ---
10
+
11
+ This is a very small release to fix one very small bug.
12
+
13
+ * Fix fatal error in `ppl post <contact>` when contact has no address
@@ -0,0 +1,15 @@
1
+ ---
2
+ title: 1.5.2
3
+ summary: ppl shell usability tweaks
4
+ date: 2012-12-23
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.5.2.html
9
+ ---
10
+
11
+ Another very small, very minor release addressing a usability issue with [ppl
12
+ shell](/documentation/commands/shell).
13
+
14
+ * Add "welcome" message to `ppl shell` explaining how to quit
15
+ * Don't show "ppl>" prompt in `ppl shell` if stdin isn't a tty
@@ -0,0 +1,19 @@
1
+ ---
2
+ title: 1.5.3
3
+ summary: Better 'no such contact' error message
4
+ date: 2012-12-26
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.5.3.html
9
+ ---
10
+
11
+ There have been a lot of internal changes in this release, and one user-facing
12
+ change to improve the error message when a non-existent contact is specified in
13
+ a command.
14
+
15
+ Before this change, non-existent contacts resulted in a fairly cryptic error
16
+ message consisting only of the given non-existent contact ID. From now on the
17
+ problem is actually explained to the user.
18
+
19
+ * Added a proper error message when a non-existent contact is specified
@@ -0,0 +1,18 @@
1
+ ---
2
+ title: 1.6.0
3
+ summary: ppl email --delete and bugfix
4
+ date: 2012-12-27
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.6.0.html
9
+ ---
10
+
11
+ This release contains a bugfix and the means for users to undo the minor damage
12
+ caused by the bug. The bug was causing every new email address added by users to
13
+ be saved against the contact *twice*. The fix stops that from happening. And a
14
+ new feature has been added in the form of a `--delete` flag for [ppl
15
+ email](/documentation/commands/email) so that dupliate addresses can be removed.
16
+
17
+ * Fixed a bug causing duplicate email addresses to be saved
18
+ * Added `--delete` flag to `ppl email`
@@ -0,0 +1,18 @@
1
+ ---
2
+ title: 1.7.0
3
+ summary: ppl show output overhaul
4
+ date: 2012-12-29
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.7.0.html
9
+ ---
10
+
11
+ This version contains some fairly substantial changes to the way the [ppl
12
+ show](/documentation/commands/show) command formats its output. The need for
13
+ this change was unearthed by a [question from
14
+ @storge](https://github.com/hnrysmth/ppl/issues/14) on GitHub. In short, the command
15
+ was only showing one of the given contact's email addresses, giving the
16
+ impression that this was all that ppl supported storing.
17
+
18
+ * Improved the output format of `ppl show`
@@ -0,0 +1,18 @@
1
+ ---
2
+ title: 1.8.0
3
+ summary: ppl url
4
+ date: 2013-01-05
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.8.0.html
9
+ ---
10
+
11
+ Added another attribute that contacts often have: URLs. For example, a given
12
+ contact may have a profile page on some social network, a personal website, or
13
+ any number of different possibilities. The new comand, [ppl
14
+ url](/documentation/commands/url), works similarly to [ppl
15
+ email](/documentation/commands/email) and allows you to store these URLs in your
16
+ address book.
17
+
18
+ * Added `ppl url` command
@@ -0,0 +1,20 @@
1
+ ---
2
+ title: 1.9.0
3
+ summary: Aliases and ppl version
4
+ date: 2013-01-06
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.9.0.html
9
+ ---
10
+
11
+ This release adds two new features: the [version
12
+ command](/documentation/commands/version), and support for
13
+ [aliases](/documentation/configuration/alias). Both features function similarly
14
+ to their git counterparts, albeit in a less complete way. For now the aliasing
15
+ only supports simple aliasing of plain command names, and doesn't allow things
16
+ like aliasing long chains of arguments or git's `!f() {}` style commands. These
17
+ things will come in time.
18
+
19
+ * Added `ppl version` command
20
+ * Added rudimentary alias support
@@ -0,0 +1,18 @@
1
+ ---
2
+ title: 1.10.0
3
+ summary: Multiple organizations and phone numbers
4
+ date: 2013-01-10
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.10.0.html
9
+ ---
10
+
11
+ A lot of the work in this release went into some much-needed refactoring as a
12
+ precautionary measure against accumulating too much technical debt early on. The
13
+ code reuse enabled by this refactor facilitated the addition of some key
14
+ functionality, too.
15
+
16
+ * Added support for storing multiple organizations with `ppl org` command
17
+ * Added support for storing multiple phone numbers with `ppl phone` command
18
+ * Added support for deleting phone numbers with `ppl phone` command
@@ -0,0 +1,14 @@
1
+ ---
2
+ title: 1.11.0
3
+ summary: ppl nick
4
+ date: 2013-01-20
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.11.0.html
9
+ ---
10
+
11
+ This is a simple release that just adds new functionality in the form of support
12
+ for another vCard property: [nicknames](/documentation/commands/nick).
13
+
14
+ * Added `ppl nick` command
@@ -0,0 +1,14 @@
1
+ ---
2
+ title: 1.12.0
3
+ summary: ppl age
4
+ date: 2013-02-16
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.12.0.html
9
+ ---
10
+
11
+ This release adds the [age](/documentation/commands/age) command, which provides
12
+ easy access to the ages of all contacts based on their dates of birth.
13
+
14
+ * Added `ppl age` command
@@ -0,0 +1,29 @@
1
+ ---
2
+ title: 1.13.0
3
+ summary: ppl push, pull and remote
4
+ date: 2013-02-17
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.13.0.html
9
+ ---
10
+
11
+ The result of a lot of thought, this is the long-awaited git synchronisation
12
+ functionality. What's been added are three new commands,
13
+ [pull](/documentation/commands/pull), [push](/documentation/commands/push), and
14
+ [remote](/documentation/commands/remote). These commands have no behaviour of
15
+ their own, and are effectively aliases that execute their git counterparts
16
+ inside the address book's directory.
17
+
18
+ I think that this functionality is a good compromise: synchronising address book
19
+ data can be accomplished using simple, familiar commands such as `ppl pull
20
+ origin master`, and ppl itself is not unduly burdened with duplicating any git
21
+ functionality.
22
+
23
+ Another positive outcome of this work is that it brings proper git-style "bang"
24
+ aliases closer to being a reality. The code changes required for these three
25
+ commands lay a lot of the foundations necessary for bang aliases.
26
+
27
+ * Added `ppl pull` command
28
+ * Added `ppl push` command
29
+ * Added `ppl remote` command
@@ -0,0 +1,15 @@
1
+ ---
2
+ title: 1.14.0
3
+ summary: Bang aliases
4
+ date: 2013-02-17
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.14.0.html
9
+ ---
10
+
11
+ Hot on the heels of `1.13.0`, this release brings the git-style bang alias
12
+ functionality facilitated by the previous release's code changes. This allows
13
+ the creation of aliases which execute a shell command.
14
+
15
+ * Add bang alias support
@@ -0,0 +1,18 @@
1
+ ---
2
+ title: 1.14.1
3
+ summary: Removes discrepancy with documentation
4
+ date: 2013-02-17
5
+ layout: changelog
6
+ section: development
7
+ categories: [changelog]
8
+ permalink: /development/changelog/1.14.1.html
9
+ ---
10
+
11
+ The release of `1.14.0` exposed a small screw-up in ppl's alias support. The
12
+ `[alias]` section of the `~/.pplconfig` file was not being picked up at all.
13
+ Instead it was looking for a section called `[aliases]`, which was insconsistent
14
+ with the documentation and with git, on which the functionality is based. This
15
+ release, therefore, is a fix for this issue: an `[alias]` section in
16
+ `.pplconfig` should now work as described.
17
+
18
+ * Fixed `[alias]` configuration
@@ -0,0 +1,27 @@
1
+ ---
2
+ title: Two Months In
3
+ date: 2013-02-17
4
+ layout: news
5
+ section: news
6
+ categories: [news]
7
+ ---
8
+
9
+ It's been almost two months now since the big day of [ppl's public
10
+ release](news/thank-you-for-your-all-your-feedback/). In that time, development
11
+ has continued at a more steady, sustainable pace than during the period leading
12
+ up to the release itself. New functionality has been added, and a few bugs have
13
+ been fixed, as [the changelog](/development/changelog) will attest.
14
+
15
+ One particularly nasty bug has been reported whose solution eludes me for the
16
+ moment. It seems ppl does not cope well with [non-ASCII
17
+ characters](https://github.com/hnrysmth/ppl/issues/17). The error itself is coming
18
+ from within vpim - although it is almost certainly not a vpim bug - and is
19
+ proving a tough nut to crack. Encodings in Ruby 1.9 are [fraught with
20
+ complexity](http://yehudakatz.com/2010/05/05/ruby-1-9-encodings-a-primer-and-the-solution-for-rails/),
21
+ but I'm optimistic about the existence of a simple solution.
22
+
23
+ On a more positive note, it's worth mentioning that the overall health of the
24
+ project seems to be good. I continue to enjoy building and maintaining ppl, and
25
+ public interest in a command-line address book is as strong as could be expected
26
+ for such a niche piece of software. Thanks for all your patience and support!
27
+