bookends 2.3.7 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
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';