ppl 4.0.2 → 4.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (156) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +12 -0
  3. data/.eleventy.js +86 -0
  4. data/.eleventyignore +1 -0
  5. data/.github/workflows/build.yml +30 -2
  6. data/.gitignore +3 -1
  7. data/Rakefile +1 -1
  8. data/features/step_definitions/ppl_steps.rb +24 -24
  9. data/gh-pages/Gemfile +2 -0
  10. data/gh-pages/_config.yml +5 -0
  11. data/gh-pages/_includes/changelog.html +23 -0
  12. data/gh-pages/_includes/development-sidebar.html +25 -0
  13. data/gh-pages/_includes/footer.html +22 -0
  14. data/gh-pages/_includes/header.html +43 -0
  15. data/gh-pages/_includes/news.html +36 -0
  16. data/gh-pages/_includes/tip.html +54 -0
  17. data/gh-pages/_layouts/changelog.html +1 -0
  18. data/gh-pages/_layouts/command.html +104 -0
  19. data/gh-pages/_layouts/configuration.html +71 -0
  20. data/gh-pages/_layouts/development.html +20 -0
  21. data/gh-pages/_layouts/frontpage.html +6 -0
  22. data/gh-pages/_layouts/integration.html +44 -0
  23. data/gh-pages/_layouts/news.html +2 -0
  24. data/gh-pages/_layouts/page.html +6 -0
  25. data/gh-pages/_layouts/tip.html +2 -0
  26. data/gh-pages/_posts/2012-01-15-first-post.md +16 -0
  27. data/gh-pages/_posts/2012-12-20-1.0.0.md +19 -0
  28. data/gh-pages/_posts/2012-12-20-1.1.0.md +28 -0
  29. data/gh-pages/_posts/2012-12-20-1.2.0.md +18 -0
  30. data/gh-pages/_posts/2012-12-21-1.3.0.md +20 -0
  31. data/gh-pages/_posts/2012-12-21-thank-you-for-your-all-your-feedback.md +26 -0
  32. data/gh-pages/_posts/2012-12-22-1.4.1.md +21 -0
  33. data/gh-pages/_posts/2012-12-22-1.5.0.md +17 -0
  34. data/gh-pages/_posts/2012-12-23-1.5.1.md +13 -0
  35. data/gh-pages/_posts/2012-12-23-1.5.2.md +15 -0
  36. data/gh-pages/_posts/2012-12-26-1.5.3.md +19 -0
  37. data/gh-pages/_posts/2012-12-27-1.6.0.md +18 -0
  38. data/gh-pages/_posts/2012-12-29-1.7.0.md +18 -0
  39. data/gh-pages/_posts/2013-01-05-1.8.0.md +18 -0
  40. data/gh-pages/_posts/2013-01-06-1.9.0.md +20 -0
  41. data/gh-pages/_posts/2013-01-10-1.10.0.md +18 -0
  42. data/gh-pages/_posts/2013-01-20-1.11.0.md +14 -0
  43. data/gh-pages/_posts/2013-02-16-1.12.0.md +14 -0
  44. data/gh-pages/_posts/2013-02-17-1.13.0.md +29 -0
  45. data/gh-pages/_posts/2013-02-17-1.14.0.md +15 -0
  46. data/gh-pages/_posts/2013-02-17-1.14.1.md +18 -0
  47. data/gh-pages/_posts/2013-02-17-two-months-in.md +27 -0
  48. data/gh-pages/_posts/2013-03-16-1.15.0.md +28 -0
  49. data/gh-pages/_posts/2013-03-16-coloured-output-released.md +27 -0
  50. data/gh-pages/_posts/2013-04-10-ruby-2.0-compatibility.md +28 -0
  51. data/gh-pages/_posts/2013-04-11-1.15.1.md +13 -0
  52. data/gh-pages/_posts/2013-04-12-1.16.0.md +22 -0
  53. data/gh-pages/_posts/2013-04-14-1.17.0.md +15 -0
  54. data/gh-pages/_posts/2013-04-14-1.17.1.md +20 -0
  55. data/gh-pages/_posts/2013-04-14-1.17.2.md +13 -0
  56. data/gh-pages/_posts/2013-04-15-sync-alias.md +31 -0
  57. data/gh-pages/_posts/2013-04-15-utf8-fixed-and-more.md +37 -0
  58. data/gh-pages/_posts/2013-04-16-1.18.0.md +15 -0
  59. data/gh-pages/_posts/2013-04-16-set-up-color-output.md +47 -0
  60. data/gh-pages/_posts/2013-04-19-1.19.0.md +13 -0
  61. data/gh-pages/_posts/2013-04-19-1.20.0.md +15 -0
  62. data/gh-pages/_posts/2013-04-20-1.21.0.md +16 -0
  63. data/gh-pages/_posts/2013-04-20-1.22.0.md +14 -0
  64. data/gh-pages/_posts/2013-04-20-1.22.1.md +13 -0
  65. data/gh-pages/_posts/2013-04-21-1.22.2.md +15 -0
  66. data/gh-pages/_posts/2013-04-21-1.23.0.md +35 -0
  67. data/gh-pages/_posts/2013-04-23-1.24.0.md +16 -0
  68. data/gh-pages/_posts/2013-04-24-1.25.0.md +21 -0
  69. data/gh-pages/_posts/2013-05-09-2.0.0.md +33 -0
  70. data/gh-pages/_posts/2013-05-09-version-2.0.0-released.md +32 -0
  71. data/gh-pages/_posts/2013-07-20-2.1.0.md +36 -0
  72. data/gh-pages/_posts/2013-07-20-2.2.0.md +20 -0
  73. data/gh-pages/_posts/2013-10-12-2.3.0.md +19 -0
  74. data/gh-pages/_posts/2014-03-30-2.3.1.md +25 -0
  75. data/gh-pages/_posts/2015-01-05-2.3.2.md +18 -0
  76. data/gh-pages/_posts/2015-12-03-get-involved.md +29 -0
  77. data/gh-pages/_posts/2015-12-05-2.3.3.md +16 -0
  78. data/gh-pages/_posts/2016-01-02-2.4.0.md +19 -0
  79. data/gh-pages/_posts/2017-05-01-2.4.1.md +12 -0
  80. data/gh-pages/_posts/2017-10-23-sleep-mode.md +18 -0
  81. data/gh-pages/_posts/2018-01-03-3.0.1.md +12 -0
  82. data/gh-pages/_stylesheets/ppl/color.less +119 -0
  83. data/gh-pages/_stylesheets/ppl/layout.less +54 -0
  84. data/gh-pages/_stylesheets/ppl/style.less +185 -0
  85. data/gh-pages/_stylesheets/ppl/typography.less +59 -0
  86. data/gh-pages/development/changelog/index.md +18 -0
  87. data/gh-pages/development/changelog/split.rb +51 -0
  88. data/gh-pages/development/index.html +32 -0
  89. data/gh-pages/development/roadmap/index.md +15 -0
  90. data/gh-pages/documentation/about/index.html +63 -0
  91. data/gh-pages/documentation/commands/add/index.md +43 -0
  92. data/gh-pages/documentation/commands/age/add/index.md +40 -0
  93. data/gh-pages/documentation/commands/age/index.md +38 -0
  94. data/gh-pages/documentation/commands/bday/index.md +44 -0
  95. data/gh-pages/documentation/commands/completion/index.md +38 -0
  96. data/gh-pages/documentation/commands/email/index.md +64 -0
  97. data/gh-pages/documentation/commands/grep/index.md +32 -0
  98. data/gh-pages/documentation/commands/init/index.md +28 -0
  99. data/gh-pages/documentation/commands/ls/index.md +55 -0
  100. data/gh-pages/documentation/commands/mutt/index.md +36 -0
  101. data/gh-pages/documentation/commands/mv/index.md +26 -0
  102. data/gh-pages/documentation/commands/name/index.md +45 -0
  103. data/gh-pages/documentation/commands/nick/index.md +44 -0
  104. data/gh-pages/documentation/commands/org/index.md +45 -0
  105. data/gh-pages/documentation/commands/phone/index.md +56 -0
  106. data/gh-pages/documentation/commands/post/index.md +61 -0
  107. data/gh-pages/documentation/commands/pull/index.md +39 -0
  108. data/gh-pages/documentation/commands/push/index.md +36 -0
  109. data/gh-pages/documentation/commands/remote/index.md +40 -0
  110. data/gh-pages/documentation/commands/rm/index.md +23 -0
  111. data/gh-pages/documentation/commands/scrape/index.md +38 -0
  112. data/gh-pages/documentation/commands/shell/index.md +39 -0
  113. data/gh-pages/documentation/commands/show/index.md +33 -0
  114. data/gh-pages/documentation/commands/url/index.md +44 -0
  115. data/gh-pages/documentation/commands/version/index.md +27 -0
  116. data/gh-pages/documentation/configuration/address_book/index.md +22 -0
  117. data/gh-pages/documentation/configuration/alias/index.md +45 -0
  118. data/gh-pages/documentation/configuration/color/index.md +47 -0
  119. data/gh-pages/documentation/configuration/color_age/index.md +20 -0
  120. data/gh-pages/documentation/configuration/color_bday/index.md +20 -0
  121. data/gh-pages/documentation/configuration/color_email/index.md +21 -0
  122. data/gh-pages/documentation/configuration/color_ls/index.md +21 -0
  123. data/gh-pages/documentation/configuration/color_name/index.md +20 -0
  124. data/gh-pages/documentation/configuration/color_nick/index.md +20 -0
  125. data/gh-pages/documentation/configuration/color_org/index.md +20 -0
  126. data/gh-pages/documentation/configuration/color_phone/index.md +22 -0
  127. data/gh-pages/documentation/configuration/color_post/index.md +20 -0
  128. data/gh-pages/documentation/configuration/color_url/index.md +20 -0
  129. data/gh-pages/documentation/configuration/index.html +8 -0
  130. data/gh-pages/documentation/index.html +183 -0
  131. data/gh-pages/documentation/integration/bash/index.md +23 -0
  132. data/gh-pages/documentation/integration/google/index.md +26 -0
  133. data/gh-pages/documentation/integration/index.html +8 -0
  134. data/gh-pages/documentation/integration/mutt/index.md +35 -0
  135. data/gh-pages/documentation/integration/zsh/index.md +19 -0
  136. data/gh-pages/documentation/quick-start/index.html +88 -0
  137. data/gh-pages/documentation/tips/index.html +9 -0
  138. data/gh-pages/index.html +108 -0
  139. data/gh-pages/news/index.html +9 -0
  140. data/gh-pages/robots.txt +3 -0
  141. data/gh-pages/stylesheets/flatstrap.css +10 -0
  142. data/gh-pages/stylesheets/ppl.scss +235 -0
  143. data/gh-pages/wiki.png +0 -0
  144. data/lib/ppl.rb +4 -1
  145. data/makefile +18 -0
  146. data/package.json +23 -0
  147. data/ppl.gemspec +1 -1
  148. data/site/_data/url.js +4 -0
  149. data/site/casts/hero.cast +189 -0
  150. data/site/development.njk +6 -0
  151. data/site/documentation.njk +6 -0
  152. data/site/index.njk +75 -0
  153. data/site/news.njk +6 -0
  154. data/site/style.scss +140 -0
  155. data/yarn.lock +3605 -0
  156. metadata +149 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4cc246db0a4e91b85f3f04c9c7961ff4e564c9ce91ba87631d4efdabe6c0aec0
4
- data.tar.gz: cc829862f67814f88a44a8f50367b7a453d2deee549d2f73af9b4f7c47855b4f
3
+ metadata.gz: 811a963ed2b1070a5f92fbead6775bcb118c505eb483f677803982243d31b3ef
4
+ data.tar.gz: 7a6a53a6638676786409b13c8b327fbdbc6e8a3a0d814bf8fc74a7293a4047d7
5
5
  SHA512:
6
- metadata.gz: e32285452876a1a7312a4a683b18bbdca0ff2e45bea87034def7bd794a0044bbd8c5e6a8b2067da36a12a070345afeb46ff03b8e698ae8dda1003c3bc491f7a4
7
- data.tar.gz: aab66b67e9def63ef307be8ea85619d7346f4a77897fbe1dd29bc3db847d1dbe496dfe69007e515da2c282a7f128f516c870d24d069710c6f703888262822cd8
6
+ metadata.gz: b424d715aadb384bbb924355264a1fd8381f662c9b6958e9cf683d10aaba11a1a793a1348a6a65373d48965871e14c0e6a6ecdc24ecc643a664ae76c7304cc64
7
+ data.tar.gz: b42f7c2ec5c109eacc4efb37c2e9f910b9ea6c8b2b4edefa667480aeab01c2b6006f786a698a922d24ab8b4afdc50297912d3ab49d7ab2905dc84d81cbcdba5c
data/.editorconfig CHANGED
@@ -1,3 +1,15 @@
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
+
1
13
  [*.yml]
2
14
  indent_style = space
3
15
  indent_size = 2
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
@@ -8,22 +8,50 @@ on:
8
8
  - trunk
9
9
 
10
10
  jobs:
11
- test:
11
+ build:
12
12
  runs-on: ubuntu-latest
13
13
  steps:
14
14
  - uses: actions/checkout@v2
15
+
16
+ - uses: actions/setup-node@v2
17
+ with:
18
+ node-version: 14
19
+
15
20
  - uses: actions/setup-ruby@v1
16
21
  with:
17
22
  ruby-version: 3.0.0
23
+
18
24
  - uses: jwlawson/actions-setup-cmake@v1.8
19
25
  with:
20
26
  cmake-version: "3.16.x"
27
+
21
28
  - name: Install dependencies
22
- run: bundle install
29
+ run: |
30
+ bundle install
31
+ yarn install --pure-lockfile
32
+
23
33
  - name: rspec
24
34
  run: bundle exec rake spec
35
+
25
36
  - name: cucumber
26
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
+
27
55
  - uses: dawidd6/action-publish-gem@v1
28
56
  continue-on-error: true
29
57
  if: ${{ github.ref == 'refs/heads/trunk' }}
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,5 +1,5 @@
1
1
  task :features => [:disable_config] do
2
- system "bundle exec cucumber"
2
+ system "bundle exec cucumber --publish-quiet"
3
3
  end
4
4
 
5
5
  task :spec do
@@ -20,7 +20,7 @@ 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
@@ -33,84 +33,84 @@ 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
+
@@ -0,0 +1,22 @@
1
+
2
+ </div>
3
+ </div>
4
+
5
+ <footer class="global">
6
+ <div class="footer container">
7
+ <div class="row">
8
+ <div class="span12">
9
+ The contents of this site are available under the terms of the <a
10
+ href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation
11
+ License</a>.
12
+ </div>
13
+ </div>
14
+ </div>
15
+ </footer>
16
+
17
+ <script src="{{site.url}}/javascript/flatstrap/jquery.js"></script>
18
+ <script src="{{site.url}}/javascript/flatstrap/bootstrap.min.js"></script>
19
+
20
+ </body>
21
+ </html>
22
+
@@ -0,0 +1,43 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta property="og:title" content="{{page.title}}" />
6
+ <meta property="og:url" content="{{site.url}}{{page.url}}" />
7
+ <meta property="og:type" content="website" />
8
+ <title>{{page.title}}</title>
9
+
10
+ <link href='https://fonts.googleapis.com/css?family=Inconsolata:400,700' rel='stylesheet' type='text/css'>
11
+ <link href='https://fonts.googleapis.com/css?family=Arvo' rel='stylesheet' type='text/css'>
12
+
13
+ <link href="{{ site.url }}/stylesheets/flatstrap.css" rel="stylesheet" />
14
+ <link href="{{ site.url }}/stylesheets/ppl.css" rel="stylesheet" type="text/css" />
15
+ </head>
16
+ <body>
17
+
18
+ <div class="navbar navbar-static-top">
19
+ <div class="navbar-inner">
20
+ <div class="container">
21
+
22
+ {% if page.url != "/index.html" %}
23
+ <a class="brand" href="{{site.url}}/">ppl</a>
24
+ {% endif %}
25
+
26
+ <ul class="nav pull-right">
27
+ {% if page.section == "documentation" %}<li class="active">{% else %}<li>{% endif %}
28
+ <a href="{{site.url}}/documentation">Documentation</a>
29
+ </li>
30
+ {% if page.section == "news" %}<li class="active">{% else %}<li>{% endif %}
31
+ <a href="{{site.url}}/news">News</a>
32
+ </li>
33
+ {% if page.section == "development" %}<li class="active">{% else %}<li>{% endif %}
34
+ <a href="{{site.url}}/development">Development</a>
35
+ </li>
36
+ </ul>
37
+ </div>
38
+ </div>
39
+ </div>
40
+
41
+ <div class="content">
42
+ <div class="container global">
43
+