ppl 4.0.2 → 4.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.editorconfig +12 -0
- data/.eleventy.js +86 -0
- data/.eleventyignore +1 -0
- data/.github/workflows/build.yml +30 -2
- data/.gitignore +3 -1
- data/Rakefile +1 -1
- data/features/step_definitions/ppl_steps.rb +24 -24
- data/gh-pages/Gemfile +2 -0
- data/gh-pages/_config.yml +5 -0
- data/gh-pages/_includes/changelog.html +23 -0
- data/gh-pages/_includes/development-sidebar.html +25 -0
- data/gh-pages/_includes/footer.html +22 -0
- data/gh-pages/_includes/header.html +43 -0
- data/gh-pages/_includes/news.html +36 -0
- data/gh-pages/_includes/tip.html +54 -0
- data/gh-pages/_layouts/changelog.html +1 -0
- data/gh-pages/_layouts/command.html +104 -0
- data/gh-pages/_layouts/configuration.html +71 -0
- data/gh-pages/_layouts/development.html +20 -0
- data/gh-pages/_layouts/frontpage.html +6 -0
- data/gh-pages/_layouts/integration.html +44 -0
- data/gh-pages/_layouts/news.html +2 -0
- data/gh-pages/_layouts/page.html +6 -0
- data/gh-pages/_layouts/tip.html +2 -0
- data/gh-pages/_posts/2012-01-15-first-post.md +16 -0
- data/gh-pages/_posts/2012-12-20-1.0.0.md +19 -0
- data/gh-pages/_posts/2012-12-20-1.1.0.md +28 -0
- data/gh-pages/_posts/2012-12-20-1.2.0.md +18 -0
- data/gh-pages/_posts/2012-12-21-1.3.0.md +20 -0
- data/gh-pages/_posts/2012-12-21-thank-you-for-your-all-your-feedback.md +26 -0
- data/gh-pages/_posts/2012-12-22-1.4.1.md +21 -0
- data/gh-pages/_posts/2012-12-22-1.5.0.md +17 -0
- data/gh-pages/_posts/2012-12-23-1.5.1.md +13 -0
- data/gh-pages/_posts/2012-12-23-1.5.2.md +15 -0
- data/gh-pages/_posts/2012-12-26-1.5.3.md +19 -0
- data/gh-pages/_posts/2012-12-27-1.6.0.md +18 -0
- data/gh-pages/_posts/2012-12-29-1.7.0.md +18 -0
- data/gh-pages/_posts/2013-01-05-1.8.0.md +18 -0
- data/gh-pages/_posts/2013-01-06-1.9.0.md +20 -0
- data/gh-pages/_posts/2013-01-10-1.10.0.md +18 -0
- data/gh-pages/_posts/2013-01-20-1.11.0.md +14 -0
- data/gh-pages/_posts/2013-02-16-1.12.0.md +14 -0
- data/gh-pages/_posts/2013-02-17-1.13.0.md +29 -0
- data/gh-pages/_posts/2013-02-17-1.14.0.md +15 -0
- data/gh-pages/_posts/2013-02-17-1.14.1.md +18 -0
- data/gh-pages/_posts/2013-02-17-two-months-in.md +27 -0
- data/gh-pages/_posts/2013-03-16-1.15.0.md +28 -0
- data/gh-pages/_posts/2013-03-16-coloured-output-released.md +27 -0
- data/gh-pages/_posts/2013-04-10-ruby-2.0-compatibility.md +28 -0
- data/gh-pages/_posts/2013-04-11-1.15.1.md +13 -0
- data/gh-pages/_posts/2013-04-12-1.16.0.md +22 -0
- data/gh-pages/_posts/2013-04-14-1.17.0.md +15 -0
- data/gh-pages/_posts/2013-04-14-1.17.1.md +20 -0
- data/gh-pages/_posts/2013-04-14-1.17.2.md +13 -0
- data/gh-pages/_posts/2013-04-15-sync-alias.md +31 -0
- data/gh-pages/_posts/2013-04-15-utf8-fixed-and-more.md +37 -0
- data/gh-pages/_posts/2013-04-16-1.18.0.md +15 -0
- data/gh-pages/_posts/2013-04-16-set-up-color-output.md +47 -0
- data/gh-pages/_posts/2013-04-19-1.19.0.md +13 -0
- data/gh-pages/_posts/2013-04-19-1.20.0.md +15 -0
- data/gh-pages/_posts/2013-04-20-1.21.0.md +16 -0
- data/gh-pages/_posts/2013-04-20-1.22.0.md +14 -0
- data/gh-pages/_posts/2013-04-20-1.22.1.md +13 -0
- data/gh-pages/_posts/2013-04-21-1.22.2.md +15 -0
- data/gh-pages/_posts/2013-04-21-1.23.0.md +35 -0
- data/gh-pages/_posts/2013-04-23-1.24.0.md +16 -0
- data/gh-pages/_posts/2013-04-24-1.25.0.md +21 -0
- data/gh-pages/_posts/2013-05-09-2.0.0.md +33 -0
- data/gh-pages/_posts/2013-05-09-version-2.0.0-released.md +32 -0
- data/gh-pages/_posts/2013-07-20-2.1.0.md +36 -0
- data/gh-pages/_posts/2013-07-20-2.2.0.md +20 -0
- data/gh-pages/_posts/2013-10-12-2.3.0.md +19 -0
- data/gh-pages/_posts/2014-03-30-2.3.1.md +25 -0
- data/gh-pages/_posts/2015-01-05-2.3.2.md +18 -0
- data/gh-pages/_posts/2015-12-03-get-involved.md +29 -0
- data/gh-pages/_posts/2015-12-05-2.3.3.md +16 -0
- data/gh-pages/_posts/2016-01-02-2.4.0.md +19 -0
- data/gh-pages/_posts/2017-05-01-2.4.1.md +12 -0
- data/gh-pages/_posts/2017-10-23-sleep-mode.md +18 -0
- data/gh-pages/_posts/2018-01-03-3.0.1.md +12 -0
- data/gh-pages/_stylesheets/ppl/color.less +119 -0
- data/gh-pages/_stylesheets/ppl/layout.less +54 -0
- data/gh-pages/_stylesheets/ppl/style.less +185 -0
- data/gh-pages/_stylesheets/ppl/typography.less +59 -0
- data/gh-pages/development/changelog/index.md +18 -0
- data/gh-pages/development/changelog/split.rb +51 -0
- data/gh-pages/development/index.html +32 -0
- data/gh-pages/development/roadmap/index.md +15 -0
- data/gh-pages/documentation/about/index.html +63 -0
- data/gh-pages/documentation/commands/add/index.md +43 -0
- data/gh-pages/documentation/commands/age/add/index.md +40 -0
- data/gh-pages/documentation/commands/age/index.md +38 -0
- data/gh-pages/documentation/commands/bday/index.md +44 -0
- data/gh-pages/documentation/commands/completion/index.md +38 -0
- data/gh-pages/documentation/commands/email/index.md +64 -0
- data/gh-pages/documentation/commands/grep/index.md +32 -0
- data/gh-pages/documentation/commands/init/index.md +28 -0
- data/gh-pages/documentation/commands/ls/index.md +55 -0
- data/gh-pages/documentation/commands/mutt/index.md +36 -0
- data/gh-pages/documentation/commands/mv/index.md +26 -0
- data/gh-pages/documentation/commands/name/index.md +45 -0
- data/gh-pages/documentation/commands/nick/index.md +44 -0
- data/gh-pages/documentation/commands/org/index.md +45 -0
- data/gh-pages/documentation/commands/phone/index.md +56 -0
- data/gh-pages/documentation/commands/post/index.md +61 -0
- data/gh-pages/documentation/commands/pull/index.md +39 -0
- data/gh-pages/documentation/commands/push/index.md +36 -0
- data/gh-pages/documentation/commands/remote/index.md +40 -0
- data/gh-pages/documentation/commands/rm/index.md +23 -0
- data/gh-pages/documentation/commands/scrape/index.md +38 -0
- data/gh-pages/documentation/commands/shell/index.md +39 -0
- data/gh-pages/documentation/commands/show/index.md +33 -0
- data/gh-pages/documentation/commands/url/index.md +44 -0
- data/gh-pages/documentation/commands/version/index.md +27 -0
- data/gh-pages/documentation/configuration/address_book/index.md +22 -0
- data/gh-pages/documentation/configuration/alias/index.md +45 -0
- data/gh-pages/documentation/configuration/color/index.md +47 -0
- data/gh-pages/documentation/configuration/color_age/index.md +20 -0
- data/gh-pages/documentation/configuration/color_bday/index.md +20 -0
- data/gh-pages/documentation/configuration/color_email/index.md +21 -0
- data/gh-pages/documentation/configuration/color_ls/index.md +21 -0
- data/gh-pages/documentation/configuration/color_name/index.md +20 -0
- data/gh-pages/documentation/configuration/color_nick/index.md +20 -0
- data/gh-pages/documentation/configuration/color_org/index.md +20 -0
- data/gh-pages/documentation/configuration/color_phone/index.md +22 -0
- data/gh-pages/documentation/configuration/color_post/index.md +20 -0
- data/gh-pages/documentation/configuration/color_url/index.md +20 -0
- data/gh-pages/documentation/configuration/index.html +8 -0
- data/gh-pages/documentation/index.html +183 -0
- data/gh-pages/documentation/integration/bash/index.md +23 -0
- data/gh-pages/documentation/integration/google/index.md +26 -0
- data/gh-pages/documentation/integration/index.html +8 -0
- data/gh-pages/documentation/integration/mutt/index.md +35 -0
- data/gh-pages/documentation/integration/zsh/index.md +19 -0
- data/gh-pages/documentation/quick-start/index.html +88 -0
- data/gh-pages/documentation/tips/index.html +9 -0
- data/gh-pages/index.html +108 -0
- data/gh-pages/news/index.html +9 -0
- data/gh-pages/robots.txt +3 -0
- data/gh-pages/stylesheets/flatstrap.css +10 -0
- data/gh-pages/stylesheets/ppl.scss +235 -0
- data/gh-pages/wiki.png +0 -0
- data/lib/ppl.rb +4 -1
- data/makefile +18 -0
- data/package.json +23 -0
- data/ppl.gemspec +1 -1
- data/site/_data/url.js +4 -0
- data/site/casts/hero.cast +189 -0
- data/site/development.njk +6 -0
- data/site/documentation.njk +6 -0
- data/site/index.njk +75 -0
- data/site/news.njk +6 -0
- data/site/style.scss +140 -0
- data/yarn.lock +3605 -0
- metadata +149 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 811a963ed2b1070a5f92fbead6775bcb118c505eb483f677803982243d31b3ef
|
4
|
+
data.tar.gz: 7a6a53a6638676786409b13c8b327fbdbc6e8a3a0d814bf8fc74a7293a4047d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b424d715aadb384bbb924355264a1fd8381f662c9b6958e9cf683d10aaba11a1a793a1348a6a65373d48965871e14c0e6a6ecdc24ecc643a664ae76c7304cc64
|
7
|
+
data.tar.gz: b42f7c2ec5c109eacc4efb37c2e9f910b9ea6c8b2b4edefa667480aeab01c2b6006f786a698a922d24ab8b4afdc50297912d3ab49d7ab2905dc84d81cbcdba5c
|
data/.editorconfig
CHANGED
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
|
data/.github/workflows/build.yml
CHANGED
@@ -8,22 +8,50 @@ on:
|
|
8
8
|
- trunk
|
9
9
|
|
10
10
|
jobs:
|
11
|
-
|
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:
|
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
data/Rakefile
CHANGED
@@ -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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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}").
|
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.
|
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.
|
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].
|
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].
|
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].
|
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].
|
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].
|
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].
|
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.
|
101
|
+
expect(@email_addresses).to include "* #{email_address}"
|
102
102
|
@email_addresses.each do |line|
|
103
103
|
if line.include? "*"
|
104
|
-
line.
|
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.
|
110
|
+
expect(@phone_numbers).to include "* #{phone_number}"
|
111
111
|
@phone_numbers.each do |line|
|
112
112
|
if line.include? "*"
|
113
|
-
line.
|
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.
|
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.
|
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.
|
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}").
|
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,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
|
+
|