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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 1ce2eb62997cc2f45eb1dc49547d7e7b296a409b
4
- data.tar.gz: 7779b2d342844e16ad715ec1e85fc8a9db83c5c5
2
+ SHA256:
3
+ metadata.gz: 811a963ed2b1070a5f92fbead6775bcb118c505eb483f677803982243d31b3ef
4
+ data.tar.gz: 7a6a53a6638676786409b13c8b327fbdbc6e8a3a0d814bf8fc74a7293a4047d7
5
5
  SHA512:
6
- metadata.gz: 8a89eb48e601ddab61909546be74b9cbed6f63d8b8a3c0fcf91255ccd40dbd84ada6977596e8e81235fe4746ae5326fc464e9f721e32369aea7ebe3afe3dd616
7
- data.tar.gz: 98a5e607c6700f3dd9db96cb2a67aa2bbcd67b881bfa1572b6ad81f40ed457f5ec43eff878c79c4faa8d463e759f8473aa8d711764dd026c860404413c7b9fba
6
+ metadata.gz: b424d715aadb384bbb924355264a1fd8381f662c9b6958e9cf683d10aaba11a1a793a1348a6a65373d48965871e14c0e6a6ecdc24ecc643a664ae76c7304cc64
7
+ data.tar.gz: b42f7c2ec5c109eacc4efb37c2e9f910b9ea6c8b2b4edefa667480aeab01c2b6006f786a698a922d24ab8b4afdc50297912d3ab49d7ab2905dc84d81cbcdba5c
data/.editorconfig ADDED
@@ -0,0 +1,16 @@
1
+ [*.js]
2
+ indent_style = space
3
+ indent_size = 2
4
+
5
+ [*.njk]
6
+ indent_style = space
7
+ indent_size = 2
8
+
9
+ [*.scss]
10
+ indent_style = space
11
+ indent_size = 2
12
+
13
+ [*.yml]
14
+ indent_style = space
15
+ indent_size = 2
16
+
data/.eleventy.js ADDED
@@ -0,0 +1,86 @@
1
+ const chokidar = require("chokidar")
2
+ const fs = require("fs-extra")
3
+ const htmlmin = require("html-minifier")
4
+ const sass = require("sass")
5
+
6
+ function minifyHtml(html) {
7
+ return htmlmin.minify(html, {
8
+ useShortDoctype: true,
9
+ removeComments: true,
10
+ collapseWhitespace: true
11
+ })
12
+ }
13
+
14
+ function monkeypatch(cls, fn) {
15
+ const orig = cls.prototype[fn.name][`_PS_original`] || cls.prototype[fn.name]
16
+ function wrapped() {
17
+ return fn.bind(this, orig).apply(this, arguments)
18
+ }
19
+ wrapped[`_PS_original`] = orig
20
+ cls.prototype[fn.name] = wrapped
21
+ }
22
+
23
+ const minifyPlugin = {
24
+ initArguments: {},
25
+ configFunction: function(eleventyConfig) {
26
+ eleventyConfig.addTransform(
27
+ "htmlmin",
28
+ function(content, outputPath) {
29
+ if (outputPath && outputPath.endsWith(".html")) {
30
+ return minifyHtml(content)
31
+ }
32
+ return content
33
+ }
34
+ )
35
+ }
36
+ }
37
+
38
+ function compileSass() {
39
+ const { css } = sass.renderSync({
40
+ file: "site/style.scss",
41
+ })
42
+ fs.writeFileSync("_site/style.css", css)
43
+ }
44
+
45
+ module.exports = function(eleventyConfig) {
46
+ console.log("ppl site")
47
+
48
+ fs.ensureDirSync("_site")
49
+ fs.emptyDirSync("_site")
50
+
51
+ eleventyConfig.addPassthroughCopy("site/casts/*.svg")
52
+ eleventyConfig.addPlugin(minifyPlugin)
53
+
54
+ compileSass()
55
+
56
+ if (process.argv.includes("--serve")) {
57
+ setImmediate(function() {
58
+ const Eleventy = require("@11ty/eleventy/src/Eleventy.js")
59
+ if (Eleventy.prototype) {
60
+ function watch(original) {
61
+ const watcher = chokidar.watch(["./site/style.scss"], {
62
+ persistent: true
63
+ })
64
+ const compileAndReload = eleventyInstance => () => {
65
+ compileSass()
66
+ this.eleventyServe.reload()
67
+ }
68
+ watcher.on("add", compileAndReload(this))
69
+ watcher.on("change", compileAndReload(this))
70
+ return original.apply(this)
71
+ }
72
+ monkeypatch(Eleventy, watch)
73
+ }
74
+ })
75
+ }
76
+
77
+ const input = "site"
78
+
79
+ const dir = {
80
+ input,
81
+ }
82
+
83
+ return {
84
+ dir,
85
+ }
86
+ }
data/.eleventyignore ADDED
@@ -0,0 +1 @@
1
+ gh-pages
@@ -0,0 +1,61 @@
1
+ name: Build
2
+ on:
3
+ push:
4
+ branches:
5
+ - trunk
6
+ pull_request:
7
+ branches:
8
+ - trunk
9
+
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v2
15
+
16
+ - uses: actions/setup-node@v2
17
+ with:
18
+ node-version: 14
19
+
20
+ - uses: actions/setup-ruby@v1
21
+ with:
22
+ ruby-version: 3.0.0
23
+
24
+ - uses: jwlawson/actions-setup-cmake@v1.8
25
+ with:
26
+ cmake-version: "3.16.x"
27
+
28
+ - name: Install dependencies
29
+ run: |
30
+ bundle install
31
+ yarn install --pure-lockfile
32
+
33
+ - name: rspec
34
+ run: bundle exec rake spec
35
+
36
+ - name: cucumber
37
+ run: bundle exec rake features
38
+
39
+ - name: eleventy
40
+ run: make _site
41
+
42
+ - uses: nwtgck/actions-netlify@v1.1
43
+ with:
44
+ publish-dir: "./_site"
45
+ production-branch: trunk
46
+ github-token: ${{ secrets.GITHUB_TOKEN }}
47
+ deploy-message: ${{ github.event.head_commit.message }}
48
+ enable-pull-request-comment: false
49
+ enable-commit-comment: false
50
+ env:
51
+ NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
52
+ NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
53
+ timeout-minutes: 1
54
+
55
+ - uses: dawidd6/action-publish-gem@v1
56
+ continue-on-error: true
57
+ if: ${{ github.ref == 'refs/heads/trunk' }}
58
+ with:
59
+ api_key: ${{secrets.RUBYGEMS_API_KEY}}
60
+ github_token: ${{secrets.GITHUB_TOKEN}}
61
+
data/.gitignore CHANGED
@@ -2,4 +2,6 @@ Gemfile.lock
2
2
  ppl-*.gem
3
3
  tmp
4
4
  _site
5
-
5
+ yarn-error.log
6
+ node_modules
7
+ site/casts/*.svg
data/Rakefile CHANGED
@@ -1,28 +1,11 @@
1
-
2
- task :build => [:build193, :build200]
3
- task :build193 => [:ruby193, :spec, :features]
4
- task :build200 => [:ruby200, :spec, :features]
5
-
6
1
  task :features => [:disable_config] do
7
- system "bundle exec cucumber"
2
+ system "bundle exec cucumber --publish-quiet"
8
3
  end
9
4
 
10
5
  task :spec do
11
6
  system "bundle exec rspec"
12
7
  end
13
8
 
14
- task :ruby193 do
15
- system "bash -lc 'rvm use 1.9.3'"
16
- Rake::Task["spec"].reenable
17
- Rake::Task["features"].reenable
18
- end
19
-
20
- task :ruby200 do
21
- system "bash -lc 'rvm use 2.0.0'"
22
- Rake::Task["spec"].reenable
23
- Rake::Task["features"].reenable
24
- end
25
-
26
9
  task :disable_config do
27
10
  pplconfig = File.expand_path("~/.pplconfig")
28
11
  bkpconfig = File.expand_path("~/.pplconfig.bkp")
@@ -35,7 +35,7 @@ This Code of Conduct applies both within project spaces and in public spaces
35
35
  when an individual is representing the project or its community.
36
36
 
37
37
  Instances of abusive, harassing, or otherwise unacceptable behavior may be
38
- reported by contacting a project maintainer at [henry@henrysmith.org](mailto:henry@henrysmith.org). All
38
+ reported by contacting a project maintainer at [hen@hey.com](mailto:hen@hey.com). All
39
39
  complaints will be reviewed and investigated and will result in a response that
40
40
  is deemed necessary and appropriate to the circumstances. Maintainers are
41
41
  obligated to maintain confidentiality with regard to the reporter of an
@@ -11,16 +11,16 @@ When /^I run "ppl ([^"]+)"$/ do |command|
11
11
  end
12
12
 
13
13
  Then /^it should succeed$/ do
14
- $?.exitstatus.should eq 0
14
+ expect($?.exitstatus).to eq 0
15
15
  end
16
16
 
17
17
  Then /^it should fail$/ do
18
- $?.exitstatus.should_not eq 0
18
+ expect($?.exitstatus).not_to eq 0
19
19
  end
20
20
 
21
21
  Then /^there should be (\d+) contacts?$/ do |n|
22
22
  contact_list = ppl("ls").strip.split("\n")
23
- contact_list.length.should eq n.to_i
23
+ expect(contact_list.length).to eq n.to_i
24
24
  if contact_list[0]
25
25
  @contact_id = contact_list[0].split(":").first
26
26
  end
@@ -28,89 +28,89 @@ end
28
28
 
29
29
  Then /^(bob) should have (\d+) email addresse?s?$/ do |name, number|
30
30
  @email_addresses = ppl("email #{name}").split("\n")
31
- @email_addresses.length.should eq number.to_i
31
+ expect(@email_addresses.length).to eq number.to_i
32
32
  end
33
33
 
34
34
  Then /^(bob) should have (\d+) nicknames?$/ do |name, number|
35
35
  @nicknames = ppl("nick #{name}").split("\n")
36
- @nicknames.length.should eq number.to_i
36
+ expect(@nicknames.length).to eq number.to_i
37
37
  end
38
38
 
39
39
  Then /^(bob) should have (\d+) organizations?$/ do |name, number|
40
40
  @organizations = ppl("org #{name}").split("\n")
41
- @organizations.length.should eq number.to_i
41
+ expect(@organizations.length).to eq number.to_i
42
42
  end
43
43
 
44
44
  Then /^(bob) should have (\d+) phone numbers?$/ do |name, number|
45
45
  @phone_numbers = ppl("phone #{name}").split("\n")
46
- @phone_numbers.length.should eq number.to_i
46
+ expect(@phone_numbers.length).to eq number.to_i
47
47
  end
48
48
 
49
49
  Then /^(bob) should have (\d+) postal addresse?s?$/ do |name, number|
50
50
  @postal_addresses = ppl("post #{name}").split("\n")
51
- @postal_addresses.length.should eq number.to_i
51
+ expect(@postal_addresses.length).to eq number.to_i
52
52
  end
53
53
 
54
54
  Then /^(bob) should have (\d+) URLs?$/ do |name, number|
55
55
  @urls = ppl("url #{name}").split("\n")
56
- @urls.length.should eq number.to_i
56
+ expect(@urls.length).to eq number.to_i
57
57
  end
58
58
 
59
59
  And /^its ID should be "([^"]+)"$/ do |id|
60
- @contact_id.should eq id
60
+ expect(@contact_id).to eq id
61
61
  end
62
62
 
63
63
  And /^its name should be "([^"]+)"$/ do |name|
64
- ppl("name #{@contact_id}").should eq name
64
+ expect(ppl("name #{@contact_id}")).to eq name
65
65
  end
66
66
 
67
67
  Then(/^the (\d+).. email address should be "([^"]+)"$/) do |nth, address|
68
- @email_addresses[nth.to_i - 1].strip.should eq address
68
+ expect(@email_addresses[nth.to_i - 1].strip).to eq address
69
69
  end
70
70
 
71
71
  Then /^running "ppl ([^"]+)" should output (\d+) lines?$/ do |command, lines|
72
72
  @output = ppl(command).split("\n")
73
- @output.length.should eq lines.to_i
73
+ expect(@output.length).to eq lines.to_i
74
74
  end
75
75
 
76
76
  And /^the (\d+).. line should be "([^"]+)"$/ do |nth, line|
77
- @output[nth.to_i - 1].should eq line
77
+ expect(@output[nth.to_i - 1]).to eq line
78
78
  end
79
79
 
80
80
  Then(/^the (\d+).. nickname should be "([^"]+)"$/) do |nth, nickname|
81
- @nicknames[nth.to_i - 1].should eq nickname
81
+ expect(@nicknames[nth.to_i - 1]).to eq nickname
82
82
  end
83
83
 
84
84
  Then(/^the (\d+).. organization should be "([^"]+)"$/) do |nth, organization|
85
- @organizations[nth.to_i - 1].should eq organization
85
+ expect(@organizations[nth.to_i - 1]).to eq organization
86
86
  end
87
87
 
88
88
  Then(/^the (\d+).. phone number should be "([^"]+)"$/) do |nth, phone_number|
89
- @phone_numbers[nth.to_i - 1].should eq phone_number
89
+ expect(@phone_numbers[nth.to_i - 1]).to eq phone_number
90
90
  end
91
91
 
92
92
  Then(/^the (\d+).. postal address should be "([^"]+)"$/) do |nth, address|
93
- @postal_addresses[nth.to_i - 1].should eq address
93
+ expect(@postal_addresses[nth.to_i - 1]).to eq address
94
94
  end
95
95
 
96
96
  Then(/^the (\d+).. URL should be "([^"]+)"$/) do |nth, url|
97
- @urls[nth.to_i - 1].should eq url
97
+ expect(@urls[nth.to_i - 1]).to eq url
98
98
  end
99
99
 
100
100
  And /^"([^"]+)" should be the favourite email address$/ do |email_address|
101
- @email_addresses.should include "* #{email_address}"
101
+ expect(@email_addresses).to include "* #{email_address}"
102
102
  @email_addresses.each do |line|
103
103
  if line.include? "*"
104
- line.should eq "* #{email_address}"
104
+ expect(line).to eq "* #{email_address}"
105
105
  end
106
106
  end
107
107
  end
108
108
 
109
109
  And /^"([^"]+)" should be the preferred phone number$/ do |phone_number|
110
- @phone_numbers.should include "* #{phone_number}"
110
+ expect(@phone_numbers).to include "* #{phone_number}"
111
111
  @phone_numbers.each do |line|
112
112
  if line.include? "*"
113
- line.should eq "* #{phone_number}"
113
+ expect(line).to eq "* #{phone_number}"
114
114
  end
115
115
  end
116
116
  end
@@ -118,25 +118,25 @@ end
118
118
  And /^"([^"]+)" should be the preferred postal address$/ do |postal_address|
119
119
  @postal_addresses.each do |line|
120
120
  if line.include? "*"
121
- line.should include "* #{postal_address}"
121
+ expect(line).to include "* #{postal_address}"
122
122
  end
123
123
  end
124
124
  end
125
125
 
126
126
  And /^there should be no favourite email address$/ do
127
127
  @email_addresses.each do |line|
128
- line.should_not include "*"
128
+ expect(line).not_to include "*"
129
129
  end
130
130
  end
131
131
 
132
132
  And /^there should be no preferred phone number$/ do
133
133
  @phone_numbers.each do |line|
134
- line.should_not include "*"
134
+ expect(line).not_to include "*"
135
135
  end
136
136
  end
137
137
 
138
138
  Then /^(bob)'s birthday should be "([^"]+)"$/ do |id, birthday|
139
- ppl("bday #{id}").should eq birthday
139
+ expect(ppl("bday #{id}")).to eq birthday
140
140
  end
141
141
 
142
142
  And /^(bob)'s name is "([^"]+)"$/ do |id, name|
data/gh-pages/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gem 'github-pages'
@@ -0,0 +1,5 @@
1
+ source: .
2
+ destination: _site
3
+ exclude: [.git, Gemfile, Gemfile.lock, .gitignore, README.md, Rakefile]
4
+ url: "https://hensmith.github.io/ppl"
5
+ permalink: "/news/:title"
@@ -0,0 +1,23 @@
1
+ {% include header.html %}
2
+
3
+ <h2>
4
+ Version {{page.title}}
5
+ <small>
6
+ {{page.summary}}
7
+ </small>
8
+ </h2>
9
+
10
+ <div class="row commands">
11
+
12
+ <div class="span8">
13
+ {{content}}
14
+ </div>
15
+
16
+ <div class="span4">
17
+ {% include development-sidebar.html %}
18
+ </div>
19
+
20
+ </div>
21
+
22
+ {% include footer.html %}
23
+
@@ -0,0 +1,25 @@
1
+ <dl class="nav-sidebar">
2
+
3
+ {% if page.title == "Development" %}<dt class="active">{% else %}<dt>{% endif %}
4
+ <a href="{{site.url}}/development">Introduction</a>
5
+ </dt>
6
+ {% if page.title == "Development" %}<dd class="active">{% else %}<dd>{% endif %}
7
+ The very basics
8
+ </dd>
9
+
10
+ {% if page.title == "Changelog" or page.layout == "changelog" %}<dt class="active">{% else %}<dt>{% endif %}
11
+ <a href="{{site.url}}/development/changelog">Changelog</a>
12
+ </dt>
13
+ {% if page.title == "Changelog" or page.layout == "changelog" %}<dd class="active">{% else %}<dd>{% endif %}
14
+ The story so far
15
+ </dd>
16
+
17
+ {% if page.title == "Roadmap" %}<dt class="active">{% else %}<dt>{% endif %}
18
+ <a href="{{site.url}}/development/roadmap">Roadmap</a>
19
+ </dt>
20
+ {% if page.title == "Roadmap" %}<dd class="active">{% else %}<dd>{% endif %}
21
+ The plan for the the future
22
+ </dd>
23
+
24
+ </dl>
25
+