bookends 2.3.7 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +18 -0
  3. data/lib/bookends/cli.rb +1 -5
  4. data/lib/bookends/file_actions.rb +1 -1
  5. data/lib/bookends/jekyll_handler.rb +4 -4
  6. data/lib/bookends/rails_handler.rb +16 -7
  7. data/lib/bookends/templates/bookends_helper.rb +63 -0
  8. data/lib/bookends/templates/bookends_helper_spec.rb +57 -0
  9. data/lib/bookends/templates/glostick_icons/dashboard.svg +19 -0
  10. data/lib/bookends/templates/glostick_icons/databases.svg +28 -0
  11. data/lib/bookends/templates/glostick_icons/dataclips.svg +11 -0
  12. data/lib/bookends/templates/glostick_icons/docs.svg +16 -0
  13. data/lib/bookends/templates/glostick_icons/elements.svg +39 -0
  14. data/lib/bookends/templates/glostick_icons/heroku-logo.svg +23 -0
  15. data/lib/bookends/templates/glostick_icons/navigator-purple.svg +21 -0
  16. data/lib/bookends/templates/glostick_icons/navigator.svg +21 -0
  17. data/lib/bookends/templates/glostick_icons/settings.svg +22 -0
  18. data/lib/bookends/templates/glostick_icons/signout.svg +15 -0
  19. data/lib/bookends/templates/glostick_icons/support.svg +27 -0
  20. data/lib/bookends/templates/icons/addons.svg +39 -0
  21. data/lib/bookends/templates/icons/buildpacks.svg +33 -0
  22. data/lib/bookends/templates/icons/buttons.svg +24 -0
  23. data/lib/bookends/templates/icons/connect.svg +23 -0
  24. data/lib/bookends/templates/icons/enterprise.svg +37 -0
  25. data/lib/bookends/templates/icons/platform.svg +21 -0
  26. data/lib/bookends/templates/icons/postgres.svg +28 -0
  27. data/lib/bookends/templates/icons/redis.svg +23 -0
  28. data/lib/bookends/templates/js/header-turbolinks.js +18 -0
  29. data/lib/bookends/templates/js/header.js +17 -0
  30. data/lib/bookends/templates/js/md5.js +194 -0
  31. data/lib/bookends/templates/{newsletter-init-turbolinks.js → js/newsletter-init-turbolinks.js} +0 -0
  32. data/lib/bookends/templates/{newsletter-init.js → js/newsletter-init.js} +0 -0
  33. data/lib/bookends/templates/{newsletter.js → js/newsletter.js} +0 -0
  34. data/lib/bookends/templates/rails_header.html.erb +43 -12
  35. data/lib/bookends/templates/scss/bookends.scss +2 -0
  36. data/lib/bookends/templates/{footer.scss → scss/footer.scss} +0 -0
  37. data/lib/bookends/templates/scss/glostick.scss +220 -0
  38. data/lib/bookends/version.rb +1 -1
  39. metadata +32 -6
@@ -0,0 +1,39 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"
4
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 23 23"
5
+ style="enable-background:new 0 0 23 23;" xml:space="preserve">
6
+ <style type="text/css">
7
+ .st0{fill:none;stroke:#876AAA;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
8
+ .st1{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
9
+ .st2{fill:#876AAA;}
10
+ .st3{opacity:0.3357;fill:#876AAA;enable-background:new ;}
11
+ .st4{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
12
+ .st5{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;}
13
+ .st6{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
14
+ .st7{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-miterlimit:10;}
15
+ </style>
16
+ <g id="Page-1_2_" sketch:type="MSPage">
17
+ <g transform="translate(2.000000, 2.000000)" sketch:type="MSLayerGroup">
18
+ <rect id="Rectangle-8-Copy" x="4" y="5" sketch:type="MSShapeGroup" class="st3" width="3" height="1">
19
+ </rect>
20
+ <rect id="Rectangle-8" x="4" y="4" sketch:type="MSShapeGroup" class="st2" width="3" height="1">
21
+ </rect>
22
+ <rect id="Rectangle-9-Copy" x="8" y="7" sketch:type="MSShapeGroup" class="st3" width="3" height="1">
23
+ </rect>
24
+ <rect id="Rectangle-9" x="8" y="6" sketch:type="MSShapeGroup" class="st2" width="3" height="1">
25
+ </rect>
26
+ <rect id="Rectangle-10-Copy" x="12" y="5" sketch:type="MSShapeGroup" class="st3" width="3" height="1">
27
+ </rect>
28
+ <rect id="Rectangle-10" x="12" y="4" sketch:type="MSShapeGroup" class="st2" width="3" height="1">
29
+ </rect>
30
+ <rect id="Rectangle-11-Copy" x="8" y="3" sketch:type="MSShapeGroup" class="st3" width="3" height="1">
31
+ </rect>
32
+ <rect id="Rectangle-11" x="8" y="2" sketch:type="MSShapeGroup" class="st2" width="3" height="1">
33
+ </rect>
34
+ <path id="Stroke-9" sketch:type="MSShapeGroup" class="st4" d="M1.9,3.8L8.6,0C9-0.1,10-0.1,10.4,0L17,3.8c0.5,0.4,1,1.3,1,1.9
35
+ v7.6c0,0.6-0.5,1.5-0.9,1.9L10.4,19C10,19.1,9,19.1,8.6,19L2,15.2c-0.5-0.4-1-1.3-1-1.9V5.7C1,5.1,1.5,4.2,1.9,3.8L1.9,3.8z"/>
36
+ <path id="Stroke-11_1_" sketch:type="MSShapeGroup" class="st5" d="M18,9l-7,4c-0.8,0.1-2.2,0.1-3,0L1,9"/>
37
+ </g>
38
+ </g>
39
+ </svg>
@@ -0,0 +1,33 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"
4
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 23 23"
5
+ style="enable-background:new 0 0 23 23;" xml:space="preserve">
6
+ <style type="text/css">
7
+ .st0{fill:none;stroke:#876AAA;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
8
+ .st1{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
9
+ .st2{fill:#876AAA;}
10
+ .st3{opacity:0.3357;fill:#876AAA;enable-background:new ;}
11
+ .st4{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
12
+ .st5{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;}
13
+ .st6{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
14
+ .st7{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-miterlimit:10;}
15
+ </style>
16
+ <g>
17
+ <g>
18
+ <path class="st1" d="M7.1,4l3.9-2.2c0.3-0.2,0.7-0.2,1.1,0L15.9,4c0.3,0.2,0.5,0.6,0.5,0.9v4.5c0,0.4-0.2,0.7-0.5,0.9L12,12.6
19
+ c-0.3,0.2-0.7,0.2-1.1,0l-3.9-2.2c-0.3-0.2-0.5-0.6-0.5-0.9V5C6.5,4.6,6.7,4.2,7.1,4z"/>
20
+ <path class="st6" d="M14.1,5.9l-2.4,1.4c-0.2,0.1-0.4,0.1-0.6,0L8.8,5.9"/>
21
+ </g>
22
+ <g>
23
+ <path class="st1" d="M2.1,12.6L6,10.4c0.3-0.2,0.7-0.2,1.1,0l3.9,2.2c0.3,0.2,0.5,0.6,0.5,0.9V18c0,0.4-0.2,0.7-0.5,0.9l-3.9,2.2
24
+ c-0.3,0.2-0.7,0.2-1.1,0L2.1,19c-0.3-0.2-0.5-0.6-0.5-0.9v-4.5C1.6,13.2,1.8,12.8,2.1,12.6z"/>
25
+ <path class="st6" d="M9.2,14.5l-2.4,1.4c-0.2,0.1-0.4,0.1-0.6,0l-2.4-1.4"/>
26
+ </g>
27
+ <g>
28
+ <path class="st1" d="M12.1,12.6l3.9-2.2c0.3-0.2,0.7-0.2,1.1,0l3.9,2.2c0.3,0.2,0.5,0.6,0.5,0.9V18c0,0.4-0.2,0.7-0.5,0.9L17,21.2
29
+ c-0.3,0.2-0.7,0.2-1.1,0L12.1,19c-0.3-0.2-0.5-0.6-0.5-0.9v-4.5C11.5,13.2,11.7,12.8,12.1,12.6z"/>
30
+ <path class="st6" d="M19.1,14.5l-2.4,1.4c-0.2,0.1-0.4,0.1-0.6,0l-2.4-1.4"/>
31
+ </g>
32
+ </g>
33
+ </svg>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"
4
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 23 23"
5
+ style="enable-background:new 0 0 23 23;" xml:space="preserve">
6
+ <style type="text/css">
7
+ .st0{fill:none;stroke:#876AAA;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
8
+ .st1{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
9
+ .st2{fill:#876AAA;}
10
+ .st3{opacity:0.3357;fill:#876AAA;enable-background:new ;}
11
+ .st4{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
12
+ .st5{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;}
13
+ .st6{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
14
+ .st7{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-miterlimit:10;}
15
+ </style>
16
+ <g>
17
+ <path class="st1" d="M14.7,19l4-2.3c0.9-0.5,1.4-1.4,1.4-2.4V7.6c0-1-0.5-1.9-1.4-2.4l-5.8-3.3c-0.9-0.5-1.9-0.5-2.8,0L4.3,5.2
18
+ C3.5,5.7,3,6.6,3,7.6v6.7c0,1,0.5,1.9,1.4,2.4l4,2.3"/>
19
+ <g>
20
+ <line class="st1" x1="11.5" y1="21.5" x2="11.5" y2="8.7"/>
21
+ <polyline class="st1" points="7.7,12.5 11.5,8.7 15.3,12.5 "/>
22
+ </g>
23
+ </g>
24
+ </svg>
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"
4
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 23 23"
5
+ style="enable-background:new 0 0 23 23;" xml:space="preserve">
6
+ <style type="text/css">
7
+ .st0{fill:none;stroke:#876AAA;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
8
+ .st1{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
9
+ .st2{fill:#876AAA;}
10
+ .st3{opacity:0.3357;fill:#876AAA;enable-background:new ;}
11
+ .st4{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
12
+ .st5{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;}
13
+ .st6{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
14
+ .st7{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-miterlimit:10;}
15
+ </style>
16
+ <polyline class="st7" points="5.4,8.2 11.5,11.5 11.5,18.8 "/>
17
+ <line class="st7" x1="11.5" y1="11.5" x2="17.7" y2="8"/>
18
+ <path class="st1" d="M3.9,6l6.6-3.8c0.6-0.4,1.4-0.4,2,0L19.1,6c0.6,0.4,1,1,1,1.7v7.6c0,0.7-0.4,1.4-1,1.7l-6.6,3.8
19
+ c-0.6,0.4-1.4,0.4-2,0L3.9,17c-0.6-0.4-1-1-1-1.7V7.7C2.9,7,3.3,6.3,3.9,6z"/>
20
+ <polygon class="st6" points="13.4,12.6 15.5,11.4 17.6,12.6 17.6,15 15.5,16.2 13.4,15 "/>
21
+ <polygon class="st6" points="5.4,12.5 7.5,11.3 9.5,12.5 9.5,14.9 7.5,16.1 5.4,14.9 "/>
22
+ <polygon class="st6" points="9.4,5.7 11.5,4.5 13.6,5.7 13.6,8.1 11.5,9.3 9.4,8.1 "/>
23
+ </svg>
@@ -0,0 +1,37 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"
4
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 23 23"
5
+ style="enable-background:new 0 0 23 23;" xml:space="preserve">
6
+ <style type="text/css">
7
+ .st0{fill:none;stroke:#876AAA;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
8
+ .st1{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
9
+ .st2{fill:#876AAA;}
10
+ .st3{opacity:0.3357;fill:#876AAA;enable-background:new ;}
11
+ .st4{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
12
+ .st5{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;}
13
+ .st6{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
14
+ .st7{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-miterlimit:10;}
15
+ </style>
16
+ <g>
17
+ <g>
18
+ <path class="st1" d="M7.1,5.8L4.7,7.1C4,7.5,3.6,8.3,3.6,9.1v6.5c0,0.8,0.4,1.6,1.1,2l5.6,3.3c0.7,0.4,1.6,0.4,2.3,0l5.6-3.3
19
+ c0.7-0.4,1.1-1.2,1.1-2V9.1c0-0.8-0.4-1.6-1.1-2l-2.5-1.4"/>
20
+ </g>
21
+ </g>
22
+ <g>
23
+ <polyline class="st6" points="9.2,4.1 11.5,2.8 13.8,4.1 13.8,10.2 16.1,11.6 16.1,15.9 "/>
24
+ <polyline class="st6" points="9.2,4.1 11.5,5.4 13.8,4.1 "/>
25
+ <line class="st6" x1="11.5" y1="2.8" x2="11.5" y2="0.9"/>
26
+ <line class="st6" x1="11.5" y1="5.4" x2="11.5" y2="18.3"/>
27
+ <line class="st6" x1="13.8" y1="10.2" x2="13.8" y2="13.6"/>
28
+ <line class="st6" x1="16.1" y1="18.6" x2="16.1" y2="18.5"/>
29
+ <circle class="st6" cx="13.8" cy="14.3" r="0.7"/>
30
+ <polyline class="st6" points="18.4,17.3 18.4,17.2 16.1,15.9 13.8,17.2 13.8,19.9 "/>
31
+ <polyline class="st6" points="9.2,4.1 9.2,10.2 6.9,11.6 6.9,15.9 "/>
32
+ <line class="st6" x1="9.2" y1="10.2" x2="9.2" y2="13.6"/>
33
+ <line class="st6" x1="6.9" y1="18.6" x2="6.9" y2="18.5"/>
34
+ <circle class="st6" cx="9.2" cy="14.3" r="0.7"/>
35
+ <polyline class="st6" points="4.6,17.3 4.6,17.2 6.9,15.9 9.2,17.2 9.2,19.9 "/>
36
+ </g>
37
+ </svg>
@@ -0,0 +1,21 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"
4
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 23 23"
5
+ style="enable-background:new 0 0 23 23;" xml:space="preserve">
6
+ <style type="text/css">
7
+ .st0{fill:none;stroke:#876AAA;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
8
+ .st1{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
9
+ .st2{fill:#876AAA;}
10
+ .st3{opacity:0.3357;fill:#876AAA;enable-background:new ;}
11
+ .st4{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
12
+ .st5{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;}
13
+ .st6{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
14
+ .st7{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-miterlimit:10;}
15
+ </style>
16
+ <g>
17
+ <path class="st1" d="M3.9,6l6.6-3.8c0.6-0.4,1.4-0.4,2,0L19.1,6c0.6,0.4,1,1,1,1.7v7.6c0,0.7-0.4,1.4-1,1.7l-6.6,3.8
18
+ c-0.6,0.4-1.4,0.4-2,0L3.9,17c-0.6-0.4-1-1-1-1.7V7.7C2.9,7,3.3,6.3,3.9,6z"/>
19
+ <polygon class="st1" points="8.6,9.8 11.5,8.2 14.4,9.8 14.4,13.2 11.5,14.8 8.6,13.2 "/>
20
+ </g>
21
+ </svg>
@@ -0,0 +1,28 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"
4
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 23 23"
5
+ style="enable-background:new 0 0 23 23;" xml:space="preserve">
6
+ <style type="text/css">
7
+ .st0{fill:none;stroke:#876AAA;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
8
+ .st1{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
9
+ .st2{fill:#876AAA;}
10
+ .st3{opacity:0.3357;fill:#876AAA;enable-background:new ;}
11
+ .st4{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
12
+ .st5{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;}
13
+ .st6{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
14
+ .st7{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-miterlimit:10;}
15
+ </style>
16
+ <g id="Page-1" sketch:type="MSPage">
17
+ <g id="heroku-data-postgres" transform="translate(-7.000000, -10.000000)" sketch:type="MSLayerGroup">
18
+ <g>
19
+ <path class="st2" d="M17.8,12.6c-3.8-0.1-9.7,0.1-9.7,3.6c0,3.1,4.2,8,9.7,7.3L17.8,12.6C17.8,12.6,17.8,12.6,17.8,12.6z"/>
20
+ </g>
21
+ <g id="Stroke-4">
22
+ <path class="st2" d="M18.6,30.5c-0.7,0-1.3-0.3-1.8-0.8c-0.4-0.4-0.4-1,0-1.4c0.4-0.4,1-0.4,1.4,0c0.2,0.2,0.5,0.2,0.6,0.1
23
+ c0.1,0,0.3-0.2,0.3-0.5l0-15.3c3.8-0.1,9.7,0.1,9.7,3.6c0,2.7-3.2,6.8-7.7,7.3l0,4.3c0,0.9-0.4,1.7-1.1,2.2
24
+ C19.6,30.3,19.1,30.5,18.6,30.5z M21.2,14.6v6.9c3.3-0.5,5.7-3.6,5.7-5.3C26.8,15.5,25.3,14.7,21.2,14.6z"/>
25
+ </g>
26
+ </g>
27
+ </g>
28
+ </svg>
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"
4
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 23 23"
5
+ style="enable-background:new 0 0 23 23;" xml:space="preserve">
6
+ <style type="text/css">
7
+ .st0{fill:none;stroke:#876AAA;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
8
+ .st1{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
9
+ .st2{fill:#876AAA;}
10
+ .st3{opacity:0.3357;fill:#876AAA;enable-background:new ;}
11
+ .st4{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
12
+ .st5{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;}
13
+ .st6{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
14
+ .st7{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-miterlimit:10;}
15
+ </style>
16
+ <g>
17
+ <path class="st2" d="M10.8,1.7c-4-0.5-7,2.1-7,6c0,2.5,1.3,4.5,3.3,5.4l-4,6.8c-0.2,0.3-0.2,0.7,0,1c0.2,0.3,0.5,0.5,0.9,0.5h6.9
18
+ v-8.7v-2.1L10.8,1.7z"/>
19
+ <path class="st2" d="M19.9,20l-3.6-7.2c1.8-1.1,3-3,3-5.2c0-3.3-2.7-6.1-6.1-6.1c-0.3,0-0.5,0-0.8,0.1v2c0.3,0,0.5-0.1,0.8-0.1
20
+ c2.2,0,4.1,1.8,4.1,4.1s-1.8,4.1-4.1,4.1c-0.3,0-0.5,0-0.8-0.1v2c0.3,0,0.5,0.1,0.8,0.1c0.4,0,0.8,0,1.2-0.1l3.7,7.3
21
+ c0.2,0.3,0.5,0.5,0.9,0.5c0.2,0,0.3,0,0.5-0.1C20,21.1,20.2,20.5,19.9,20z"/>
22
+ </g>
23
+ </svg>
@@ -0,0 +1,18 @@
1
+ //= require md5
2
+ var Heroku = Heroku || {};
3
+
4
+ $(document).on("ready page:load", function() {
5
+ var $avatars,
6
+ defaultAvatarURL,
7
+ email,
8
+ gravatarURL;
9
+
10
+ email = $.trim($('.glostick__account-details__email').text());
11
+ $avatars = $('.js-glostick-avatar');
12
+ defaultAvatarURL = 'https://www.herokucdn.com/images/ninja-avatar-48x48.png';
13
+ gravatarURL = "https://gravatar.com/avatar/" + (MD5(email)) + "?s=48&d=" + defaultAvatarURL;
14
+
15
+ return $avatars.each(function(i, e) {
16
+ return $(e).attr('src', gravatarURL);
17
+ });
18
+ });
@@ -0,0 +1,17 @@
1
+ //= require md5
2
+
3
+ $(function() {
4
+ var $avatars,
5
+ defaultAvatarURL,
6
+ email,
7
+ gravatarURL;
8
+
9
+ email = $.trim($('.glostick__account-details__email').text());
10
+ $avatars = $('.js-glostick-avatar');
11
+ defaultAvatarURL = 'https://www.herokucdn.com/images/ninja-avatar-48x48.png';
12
+ gravatarURL = 'https://gravatar.com/avatar/' + (MD5(email)) + '?s=48&d=' + defaultAvatarURL;
13
+
14
+ return $avatars.each(function(i, e) {
15
+ return $(e).attr('src', gravatarURL);
16
+ });
17
+ });
@@ -0,0 +1,194 @@
1
+ var MD5 = function(string) {
2
+ // MD5 HELPER FUNCTIONS
3
+ function safe_add(x, y) {
4
+ var lsw = (x & 0xFFFF) + (y & 0xFFFF),
5
+ msw = (x >> 16) + (y >> 16) + (lsw >> 16);
6
+ return (msw << 16) | (lsw & 0xFFFF);
7
+ }
8
+
9
+ /*
10
+ * Bitwise rotate a 32-bit number to the left.
11
+ */
12
+ function bit_rol(num, cnt) {
13
+ return (num << cnt) | (num >>> (32 - cnt));
14
+ }
15
+
16
+ /*
17
+ * These functions implement the four basic operations the algorithm uses.
18
+ */
19
+ function md5_cmn(q, a, b, x, s, t) {
20
+ return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b);
21
+ }
22
+ function md5_ff(a, b, c, d, x, s, t) {
23
+ return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
24
+ }
25
+ function md5_gg(a, b, c, d, x, s, t) {
26
+ return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
27
+ }
28
+ function md5_hh(a, b, c, d, x, s, t) {
29
+ return md5_cmn(b ^ c ^ d, a, b, x, s, t);
30
+ }
31
+ function md5_ii(a, b, c, d, x, s, t) {
32
+ return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
33
+ }
34
+
35
+ /*
36
+ * Calculate the MD5 of an array of little-endian words, and a bit length.
37
+ */
38
+ function binl_md5(x, len) {
39
+ /* append padding */
40
+ x[len >> 5] |= 0x80 << ((len) % 32);
41
+ x[(((len + 64) >>> 9) << 4) + 14] = len;
42
+
43
+ var i, olda, oldb, oldc, oldd,
44
+ a = 1732584193,
45
+ b = -271733879,
46
+ c = -1732584194,
47
+ d = 271733878;
48
+
49
+ for (i = 0; i < x.length; i += 16) {
50
+ olda = a;
51
+ oldb = b;
52
+ oldc = c;
53
+ oldd = d;
54
+
55
+ a = md5_ff(a, b, c, d, x[i], 7, -680876936);
56
+ d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586);
57
+ c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819);
58
+ b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330);
59
+ a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897);
60
+ d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426);
61
+ c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341);
62
+ b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983);
63
+ a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416);
64
+ d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417);
65
+ c = md5_ff(c, d, a, b, x[i + 10], 17, -42063);
66
+ b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162);
67
+ a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682);
68
+ d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101);
69
+ c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290);
70
+ b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329);
71
+
72
+ a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510);
73
+ d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632);
74
+ c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713);
75
+ b = md5_gg(b, c, d, a, x[i], 20, -373897302);
76
+ a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691);
77
+ d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083);
78
+ c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335);
79
+ b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848);
80
+ a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438);
81
+ d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690);
82
+ c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961);
83
+ b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501);
84
+ a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467);
85
+ d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784);
86
+ c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473);
87
+ b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734);
88
+
89
+ a = md5_hh(a, b, c, d, x[i + 5], 4, -378558);
90
+ d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463);
91
+ c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562);
92
+ b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556);
93
+ a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060);
94
+ d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353);
95
+ c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632);
96
+ b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640);
97
+ a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174);
98
+ d = md5_hh(d, a, b, c, x[i], 11, -358537222);
99
+ c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979);
100
+ b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189);
101
+ a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487);
102
+ d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835);
103
+ c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520);
104
+ b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651);
105
+
106
+ a = md5_ii(a, b, c, d, x[i], 6, -198630844);
107
+ d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415);
108
+ c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905);
109
+ b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055);
110
+ a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571);
111
+ d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606);
112
+ c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523);
113
+ b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799);
114
+ a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359);
115
+ d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744);
116
+ c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380);
117
+ b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649);
118
+ a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070);
119
+ d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379);
120
+ c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259);
121
+ b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551);
122
+
123
+ a = safe_add(a, olda);
124
+ b = safe_add(b, oldb);
125
+ c = safe_add(c, oldc);
126
+ d = safe_add(d, oldd);
127
+ }
128
+ return [a, b, c, d];
129
+ }
130
+
131
+ /*
132
+ * Convert an array of little-endian words to a string
133
+ */
134
+ function binl2rstr(input) {
135
+ var i,
136
+ output = '';
137
+ for (i = 0; i < input.length * 32; i += 8) {
138
+ output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xFF);
139
+ }
140
+ return output;
141
+ }
142
+
143
+ /*
144
+ * Convert a raw string to an array of little-endian words
145
+ * Characters >255 have their high-byte silently ignored.
146
+ */
147
+ function rstr2binl(input) {
148
+ var i,
149
+ output = [];
150
+ output[(input.length >> 2) - 1] = undefined;
151
+ for (i = 0; i < output.length; i += 1) {
152
+ output[i] = 0;
153
+ }
154
+ for (i = 0; i < input.length * 8; i += 8) {
155
+ output[i >> 5] |= (input.charCodeAt(i / 8) & 0xFF) << (i % 32);
156
+ }
157
+ return output;
158
+ }
159
+
160
+ /*
161
+ * Calculate the MD5 of a raw string
162
+ */
163
+ function rstr_md5(s) {
164
+ return binl2rstr(binl_md5(rstr2binl(s), s.length * 8));
165
+ }
166
+
167
+ /*
168
+ * Convert a raw string to a hex string
169
+ */
170
+ function rstr2hex(input) {
171
+ var hex_tab = '0123456789abcdef',
172
+ output = '',
173
+ x,
174
+ i;
175
+ for (i = 0; i < input.length; i += 1) {
176
+ x = input.charCodeAt(i);
177
+ output += hex_tab.charAt((x >>> 4) & 0x0F) +
178
+ hex_tab.charAt(x & 0x0F);
179
+ }
180
+ return output;
181
+ }
182
+
183
+ /*
184
+ * Encode a string as utf-8
185
+ */
186
+ function raw_md5(s) {
187
+ return rstr_md5(str2rstr_utf8(s));
188
+ }
189
+ function str2rstr_utf8(input) {
190
+ return unescape(encodeURIComponent(input));
191
+ }
192
+
193
+ return rstr2hex(raw_md5(string));
194
+ };
@@ -17,19 +17,19 @@
17
17
  <li class="has-dropdown">
18
18
  <a href="https://www.heroku.com/products">Products</a>
19
19
  <ul class="dropdown">
20
- <li><a class="platform" href="https://www.heroku.com/platform">Heroku Platform</a></li>
21
- <li><a class="postgres" href="https://www.heroku.com/postgres">Heroku Postgres</a></li>
22
- <li><a class="redis" href="https://www.heroku.com/redis">Heroku Redis</a></li>
23
- <li><a class="connect" href="https://www.heroku.com/connect">Heroku Connect</a></li>
24
- <li><a class="enterprise" href="https://www.heroku.com/enterprise">Heroku Enterprise</a></li>
20
+ <li><a class="has-icon platform" href="https://www.heroku.com/platform">Heroku Platform</a></li>
21
+ <li><a class="has-icon postgres" href="https://www.heroku.com/postgres">Heroku Postgres</a></li>
22
+ <li><a class="has-icon redis" href="https://www.heroku.com/redis">Heroku Redis</a></li>
23
+ <li><a class="has-icon connect" href="https://www.heroku.com/connect">Heroku Connect</a></li>
24
+ <li><a class="has-icon enterprise" href="https://www.heroku.com/enterprise">Heroku Enterprise</a></li>
25
25
  </ul>
26
26
  </li>
27
27
  <li class="has-dropdown">
28
28
  <a href="https://elements.heroku.com">Elements</a>
29
29
  <ul class="dropdown">
30
- <li><a class="addons" href="https://elements.heroku.com/addons">Add-ons</a></li>
31
- <li><a class="buttons" href="https://elements.heroku.com/buttons">Buttons</a></li>
32
- <li><a class="buildpacks" href="https://elements.heroku.com/buildpacks">Buildpacks</a></li>
30
+ <li><a class="has-icon addons" href="https://elements.heroku.com/addons">Add-ons</a></li>
31
+ <li><a class="has-icon buttons" href="https://elements.heroku.com/buttons">Buttons</a></li>
32
+ <li><a class="has-icon buildpacks" href="https://elements.heroku.com/buildpacks">Buildpacks</a></li>
33
33
  </ul>
34
34
  </li>
35
35
  <li><a id="pricing-head" href="https://www.heroku.com/pricing">Pricing</a></li>
@@ -83,15 +83,46 @@
83
83
  <% end %>
84
84
 
85
85
  <% if logged_in? %>
86
- <li class="user logged-in">
87
- <%= link_to "Dashboard", "https://dashboard.heroku.com/"%>
88
- <%= link_to "Log out", logout_path %>
86
+ <li>
87
+ <div class="glostick__user">
88
+ <div class="has-dropdown glostick__menu-icon">
89
+ <div class="icon icon-navigator-toggle"></div>
90
+ <div class="dropdown glostick__menu--navigator">
91
+ <a class="glostick__menu__item glostick__menu__item--dashboard" href="https://dashboard.heroku.com">Dashboard</a>
92
+ <a class="glostick__menu__item glostick__menu__item--databases" href="https://postgres.heroku.com">Databases</a>
93
+ <a class="glostick__menu__item glostick__menu__item--dataclips" href="https://dataclips.heroku.com">Dataclips</a>
94
+ <a class="glostick__menu__item glostick__menu__item--elements" href="https://elements.heroku.com">Elements</a>
95
+ <a class="glostick__menu__item glostick__menu__item--docs" href="https://devcenter.heroku.com">Documentation</a>
96
+ <a class="glostick__menu__item glostick__menu__item--support" href="https://support.heroku.com">Support</a>
97
+ </div>
98
+ </div>
99
+
100
+
101
+ <div class="has-dropdown glostick__menu-icon glostick__menu-icon--account">
102
+ <img class="glostick__user__avatar js-glostick-avatar" src="">
103
+ <a class="mobile-dashboard-link" href="https://dashboard.heroku.com/" title="<%= glostick_user_name %>, <%= glostick_user_email %>"><img class="glostick__user__avatar js-glostick-avatar" src=""></a>
104
+ <div class="dropdown glostick__menu--account">
105
+ <a class="glostick__menu__item glostick__menu__item--account-details">
106
+ <img class="glostick__account-details__avatar js-glostick-avatar" src="">
107
+ <div class="glostick__account-details__name">
108
+ <%= glostick_user_name %>
109
+ </div>
110
+ <div class="glostick__account-details__email">
111
+ <%= glostick_user_email %>
112
+ </div>
113
+ </a>
114
+ <a class="glostick__menu__item glostick__menu__item--settings" href="https://dashboard.heroku.com/account">Account settings</a>
115
+ <a class="glostick__menu__item glostick__menu__item--signout" href="https://dashboard.heroku.com/logout">Sign out</a>
116
+ </div>
117
+ </div>
118
+
119
+ </div>
89
120
  </li>
90
121
  <% else %>
91
122
  <li class="user">
92
123
  <%= link_to "Log in", login_path %>
93
124
  <span>or</span>
94
- <%= signup_link "Sign up", { class: "sign-up highlight", referral: "www-header", campaign_id: "70130000001x9jFAAQ"} %>
125
+ <%= signup_link "Sign up", { class: "sign-up highlight", referral: "www-header", campaign_id: "70130000001x9jFAAQ" } %>
95
126
  </li>
96
127
  <% end %>
97
128
  </ul>
@@ -0,0 +1,2 @@
1
+ @import 'glostick';
2
+ @import 'footer';