bookends 2.8.0 → 3.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +0 -8
- data/{fixtures/dummy-rails/app → app}/assets/fonts/bentonsans-book.eot +0 -0
- data/{fixtures/dummy-rails/app → app}/assets/fonts/bentonsans-book.svg +0 -0
- data/{fixtures/dummy-rails/app → app}/assets/fonts/bentonsans-book.ttf +0 -0
- data/{fixtures/dummy-rails/app → app}/assets/fonts/bentonsans-book.woff +0 -0
- data/{fixtures/dummy-rails/app → app}/assets/fonts/bentonsans-medium.eot +0 -0
- data/{fixtures/dummy-rails/app → app}/assets/fonts/bentonsans-medium.svg +0 -0
- data/{fixtures/dummy-rails/app → app}/assets/fonts/bentonsans-medium.ttf +0 -0
- data/{fixtures/dummy-rails/app → app}/assets/fonts/bentonsans-medium.woff +0 -0
- data/{fixtures/dummy-rails/app → app}/assets/fonts/bentonsans-regular.eot +0 -0
- data/{fixtures/dummy-rails/app → app}/assets/fonts/bentonsans-regular.svg +0 -0
- data/{fixtures/dummy-rails/app → app}/assets/fonts/bentonsans-regular.ttf +0 -0
- data/{fixtures/dummy-rails/app → app}/assets/fonts/bentonsans-regular.woff +0 -0
- data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
- data/app/assets/fonts/glyphicons-halflings-regular.svg +288 -0
- data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
- data/app/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
- data/app/assets/fonts/hk-icon.eot +0 -0
- data/app/assets/fonts/hk-icon.svg +268 -0
- data/app/assets/fonts/hk-icon.ttf +0 -0
- data/app/assets/fonts/hk-icon.woff +0 -0
- data/app/assets/fonts/inconsolata-bold.eot +0 -0
- data/app/assets/fonts/inconsolata-bold.svg +239 -0
- data/app/assets/fonts/inconsolata-bold.ttf +0 -0
- data/app/assets/fonts/inconsolata-bold.woff +0 -0
- data/app/assets/fonts/inconsolata-regular.eot +0 -0
- data/app/assets/fonts/inconsolata-regular.svg +239 -0
- data/app/assets/fonts/inconsolata-regular.ttf +0 -0
- data/app/assets/fonts/inconsolata-regular.woff +0 -0
- data/{lib/bookends/templates/footer_images → app/assets/images/bookends/footer}/footer_sprite.png +0 -0
- data/app/assets/images/bookends/footer/footer_sprite@2x.png +0 -0
- data/{lib/bookends/templates/footer_images → app/assets/images/bookends/footer}/salesforce.png +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/glostick_icons/dashboard.svg +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/glostick_icons/databases.svg +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/glostick_icons/dataclips.svg +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/glostick_icons/docs.svg +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/glostick_icons/elements.svg +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/glostick_icons/heroku-logo.svg +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/glostick_icons/navigator-purple.svg +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/glostick_icons/navigator.svg +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/glostick_icons/settings.svg +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/glostick_icons/signout.svg +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/glostick_icons/support.svg +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/icons/addons.svg +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/icons/buildpacks.svg +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/icons/buttons.svg +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/icons/connect.svg +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/icons/elements-information.svg +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/icons/enterprise.svg +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/icons/platform.svg +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/icons/postgres.svg +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/icons/redis.svg +0 -0
- data/{lib/bookends/templates → app/assets/images/bookends}/icons/teams.svg +0 -0
- data/app/assets/images/logo.svg +14 -0
- data/app/assets/images/nav-dropdown-caret.svg +16 -0
- data/app/assets/javascripts/blog-fetcher.js +131 -0
- data/{fixtures/dummy-rails/app/assets/javascripts/application.js → app/assets/javascripts/bookends.js} +1 -2
- data/{lib/bookends/templates/js → app/assets/javascripts}/header.js +0 -0
- data/app/assets/javascripts/heroku-namespace.js +1 -0
- data/app/assets/javascripts/lscache.js +359 -0
- data/{lib/bookends/templates/js → app/assets/javascripts}/md5.js +0 -0
- data/app/assets/javascripts/moment.js +3195 -0
- data/{lib/bookends/templates/js → app/assets/javascripts}/newsletter-init.js +1 -1
- data/{lib/bookends/templates/js → app/assets/javascripts}/newsletter.js +0 -0
- data/app/assets/stylesheets/bookends/_base.scss +21 -0
- data/app/assets/stylesheets/bookends/_colors.scss +62 -0
- data/app/assets/stylesheets/bookends/_fonts.scss +12 -0
- data/{lib/bookends/templates/scss/footer.scss → app/assets/stylesheets/bookends/_footer.scss} +17 -14
- data/{lib/bookends/templates/scss/glostick.scss → app/assets/stylesheets/bookends/_glostick.scss} +0 -0
- data/app/assets/stylesheets/bookends/_grid-settings.scss +18 -0
- data/app/assets/stylesheets/bookends/_header.scss +745 -0
- data/app/assets/stylesheets/bookends/_mixins.scss +72 -0
- data/app/assets/stylesheets/bookends/_responsive.scss +129 -0
- data/app/assets/stylesheets/bookends/_variables.scss +82 -0
- data/app/assets/stylesheets/bookends/bookends.scss +13 -0
- data/app/controllers/bookends/application_controller.rb +5 -0
- data/app/helpers/bookends/application_helper.rb +93 -0
- data/{lib/bookends/templates/footer.html → app/views/bookends/_footer.html.erb} +4 -6
- data/{lib/bookends/templates/rails_header.html.erb → app/views/bookends/_header.html.erb} +1 -2
- data/config/routes.rb +2 -0
- data/lib/bookends.rb +2 -2
- data/lib/bookends/config.rb +24 -0
- data/lib/bookends/engine.rb +15 -2
- data/lib/bookends/version.rb +1 -1
- data/lib/tasks/bookends_tasks.rake +4 -0
- metadata +221 -152
- data/.gitignore +0 -17
- data/.rspec +0 -2
- data/.ruby-version +0 -1
- data/.travis.yml +0 -8
- data/Gemfile +0 -4
- data/bin/bookends +0 -5
- data/bin/setup +0 -7
- data/bookends.gemspec +0 -31
- data/fixtures/dummy-jekyll/.gitkeep +0 -0
- data/fixtures/dummy-rails/README.md +0 -9
- data/fixtures/dummy-rails/Rakefile +0 -6
- data/fixtures/dummy-rails/app/assets/images/.keep +0 -0
- data/fixtures/dummy-rails/app/assets/images/bookends/footer/footer_sprite.png +0 -0
- data/fixtures/dummy-rails/app/assets/images/bookends/footer/footer_sprite@2x.png +0 -0
- data/fixtures/dummy-rails/app/assets/images/bookends/footer/salesforce_heroku_gray.png +0 -0
- data/fixtures/dummy-rails/app/assets/stylesheets/application.css.scss +0 -11
- data/fixtures/dummy-rails/app/controllers/application_controller.rb +0 -5
- data/fixtures/dummy-rails/app/controllers/concerns/.keep +0 -0
- data/fixtures/dummy-rails/app/controllers/pages_controller.rb +0 -5
- data/fixtures/dummy-rails/app/helpers/application_helper.rb +0 -2
- data/fixtures/dummy-rails/app/mailers/.keep +0 -0
- data/fixtures/dummy-rails/app/models/.keep +0 -0
- data/fixtures/dummy-rails/app/models/concerns/.keep +0 -0
- data/fixtures/dummy-rails/app/views/layouts/application.html.erb +0 -16
- data/fixtures/dummy-rails/app/views/pages/home.html.erb +0 -1
- data/fixtures/dummy-rails/bin/bundle +0 -3
- data/fixtures/dummy-rails/bin/rails +0 -4
- data/fixtures/dummy-rails/bin/rake +0 -4
- data/fixtures/dummy-rails/bin/setup +0 -29
- data/fixtures/dummy-rails/config.ru +0 -4
- data/fixtures/dummy-rails/config/application.rb +0 -34
- data/fixtures/dummy-rails/config/boot.rb +0 -5
- data/fixtures/dummy-rails/config/database.yml +0 -25
- data/fixtures/dummy-rails/config/environment.rb +0 -5
- data/fixtures/dummy-rails/config/environments/development.rb +0 -41
- data/fixtures/dummy-rails/config/environments/production.rb +0 -79
- data/fixtures/dummy-rails/config/environments/test.rb +0 -42
- data/fixtures/dummy-rails/config/initializers/assets.rb +0 -11
- data/fixtures/dummy-rails/config/initializers/backtrace_silencers.rb +0 -7
- data/fixtures/dummy-rails/config/initializers/cookies_serializer.rb +0 -3
- data/fixtures/dummy-rails/config/initializers/filter_parameter_logging.rb +0 -4
- data/fixtures/dummy-rails/config/initializers/inflections.rb +0 -16
- data/fixtures/dummy-rails/config/initializers/mime_types.rb +0 -4
- data/fixtures/dummy-rails/config/initializers/session_store.rb +0 -3
- data/fixtures/dummy-rails/config/initializers/wrap_parameters.rb +0 -14
- data/fixtures/dummy-rails/config/locales/en.yml +0 -23
- data/fixtures/dummy-rails/config/routes.rb +0 -6
- data/fixtures/dummy-rails/config/secrets.yml +0 -22
- data/fixtures/dummy-rails/db/development.sqlite3 +0 -0
- data/fixtures/dummy-rails/lib/assets/.keep +0 -0
- data/fixtures/dummy-rails/public/404.html +0 -67
- data/fixtures/dummy-rails/public/422.html +0 -67
- data/fixtures/dummy-rails/public/500.html +0 -66
- data/fixtures/dummy-rails/public/favicon.ico +0 -0
- data/lib/bookends/cli.rb +0 -95
- data/lib/bookends/config/framework.rb +0 -24
- data/lib/bookends/config/turbolinks.rb +0 -18
- data/lib/bookends/file_actions.rb +0 -13
- data/lib/bookends/flag_handler.rb +0 -17
- data/lib/bookends/jekyll_handler.rb +0 -25
- data/lib/bookends/rails_handler.rb +0 -41
- data/lib/bookends/templates/bookends_helper.rb +0 -63
- data/lib/bookends/templates/bookends_helper_spec.rb +0 -57
- data/lib/bookends/templates/footer_images/footer_sprite@2x.png +0 -0
- data/lib/bookends/templates/icons/kafka.svg +0 -37
- data/lib/bookends/templates/icons/spaces.svg +0 -1
- data/lib/bookends/templates/jekyll_header.html +0 -102
- data/lib/bookends/templates/js/header-turbolinks.js +0 -18
- data/lib/bookends/templates/js/newsletter-init-turbolinks.js +0 -6
- data/lib/bookends/templates/scss/bookends.scss +0 -21
@@ -1,18 +0,0 @@
|
|
1
|
-
module Bookends
|
2
|
-
module Config
|
3
|
-
class Turbolinks
|
4
|
-
|
5
|
-
attr_accessor :turbolinks
|
6
|
-
|
7
|
-
#turbolinks<boolean> => does site in question use turbolinks?
|
8
|
-
def set(turbolinks)
|
9
|
-
self.turbolinks = turbolinks
|
10
|
-
end
|
11
|
-
|
12
|
-
def using?
|
13
|
-
!!turbolinks
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
@@ -1,13 +0,0 @@
|
|
1
|
-
module FileActions
|
2
|
-
private
|
3
|
-
def copy(type, name:, dest:, **options)
|
4
|
-
self.destination_root = dest
|
5
|
-
name_in_dest = options.fetch(:as, name)
|
6
|
-
|
7
|
-
if type == :file
|
8
|
-
copy_file name, name_in_dest
|
9
|
-
else
|
10
|
-
directory name, name_in_dest
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module Bookends::FlagHandler
|
2
|
-
extend self
|
3
|
-
|
4
|
-
def handle_app_flag(app, config)
|
5
|
-
has_valid_app_flag = true
|
6
|
-
|
7
|
-
case app.downcase.strip
|
8
|
-
when 'www' then config.framework.set(:rails); config.turbolinks.set(false)
|
9
|
-
when 'blog' then config.framework.set(:rails); config.turbolinks.set(false)
|
10
|
-
when 'elements' then config.framework.set(:rails); config.turbolinks.set(true)
|
11
|
-
when 'engineering' then config.framework.set(:jekyll); config.turbolinks.set(false)
|
12
|
-
else has_valid_app_flag = false
|
13
|
-
end
|
14
|
-
|
15
|
-
has_valid_app_flag
|
16
|
-
end
|
17
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
require 'bookends'
|
2
|
-
require 'thor'
|
3
|
-
require_relative 'file_actions'
|
4
|
-
|
5
|
-
module Bookends
|
6
|
-
class JekyllHandler < Thor
|
7
|
-
include FileActions
|
8
|
-
include Thor::Actions
|
9
|
-
source_root File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
|
10
|
-
|
11
|
-
no_commands do
|
12
|
-
def install
|
13
|
-
copy :file, name: 'scss/footer.scss', dest: '_sass/bookends', as: '_footer.scss'
|
14
|
-
copy :file, name: 'footer.html', dest: '_includes/bookends'
|
15
|
-
copy :file, name: 'jekyll_header.html', dest: '_includes/bookends', as: 'header.html'
|
16
|
-
copy :file, name: 'js/newsletter.js', dest: 'assets/js/bookends/', as: 'newsletter.js'
|
17
|
-
copy :directory, name: 'footer_images', dest: 'assets/images/', as: 'bookends/footer'
|
18
|
-
copy :directory, name: 'icons', dest: 'assets/images/', as: 'bookends/icons'
|
19
|
-
append_to_file '../js/bookends/newsletter.js', "$(function() { return window.Heroku.newsletterSignup = new Heroku.NewsletterSignup(); });"
|
20
|
-
gsub_file '../../_sass/bookends/_footer.scss', 'bookends/footer', 'images/bookends/footer'
|
21
|
-
gsub_file '../../_sass/bookends/_footer.scss', 'asset-url', 'url'
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
require 'bookends'
|
2
|
-
require 'thor'
|
3
|
-
require_relative 'file_actions'
|
4
|
-
|
5
|
-
module Bookends
|
6
|
-
class RailsHandler < Thor
|
7
|
-
include FileActions
|
8
|
-
include Thor::Actions
|
9
|
-
source_root File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
|
10
|
-
|
11
|
-
no_commands do
|
12
|
-
def install(config)
|
13
|
-
copy :file, name: 'scss/footer.scss', dest: 'app/assets/stylesheets/bookends', as: '_footer.scss'
|
14
|
-
copy :file, name: 'scss/glostick.scss', dest: 'app/assets/stylesheets/bookends', as: '_glostick.scss'
|
15
|
-
copy :file, name: 'scss/bookends.scss', dest: 'app/assets/stylesheets/bookends', as: '_bookends.scss'
|
16
|
-
copy :file, name: 'footer.html', dest: 'app/views/bookends', as: '_footer.html'
|
17
|
-
copy :file, name: 'rails_header.html.erb', dest: 'app/views/bookends', as: '_header.html.erb'
|
18
|
-
copy :file, name: 'js/newsletter.js', dest: 'vendor/assets/javascripts/bookends', as: 'newsletter.js'
|
19
|
-
copy :file, name: 'js/md5.js', dest: 'vendor/assets/javascripts/', as: 'md5.js'
|
20
|
-
copy :file, name: 'bookends_helper.rb', dest: 'app/helpers'
|
21
|
-
copy :file, name: 'bookends_helper_spec.rb', dest: 'spec/helpers'
|
22
|
-
copy :directory, name: 'footer_images', dest: 'app/assets/images/', as: 'bookends/footer'
|
23
|
-
copy :directory, name: 'glostick_icons', dest: 'app/assets/images/', as: 'bookends/glostick'
|
24
|
-
copy :directory, name: 'icons', dest: 'app/assets/images/', as: 'bookends/icons'
|
25
|
-
gsub_file '../stylesheets/bookends/_glostick.scss', 'url', 'asset-url'
|
26
|
-
handle_templates_for_config(config)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
private
|
31
|
-
def handle_templates_for_config(config)
|
32
|
-
if config.turbolinks.using?
|
33
|
-
copy :file, name: 'js/newsletter-init-turbolinks.js', dest: 'app/assets/javascripts/bookends', as: 'newsletter-init.js'
|
34
|
-
copy :file, name: 'js/header-turbolinks.js', dest: 'vendor/assets/javascripts/bookends', as: 'header.js'
|
35
|
-
else
|
36
|
-
copy :file, name: 'js/newsletter-init.js', dest: 'app/assets/javascripts/bookends', as: 'newsletter-init.js'
|
37
|
-
copy :file, name: 'js/header.js', dest: 'vendor/assets/javascripts/bookends', as: 'header.js'
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
@@ -1,63 +0,0 @@
|
|
1
|
-
module BookendsHelper
|
2
|
-
def glostick_user_name
|
3
|
-
glostick_user['full_name']
|
4
|
-
end
|
5
|
-
|
6
|
-
def glostick_user_email
|
7
|
-
glostick_user['email']
|
8
|
-
end
|
9
|
-
|
10
|
-
def signup_link(title, options = {})
|
11
|
-
url = "https://signup.heroku.com"
|
12
|
-
data = { trackable: { category: "Sign Up Links", action: "Clicked", label: "#{options[:referral] || options[:branded_signup]}" } }
|
13
|
-
|
14
|
-
url += "/#{options[:branded_signup]}" if options[:branded_signup]
|
15
|
-
|
16
|
-
if options[:campaign_id]
|
17
|
-
url = url + "?c=" + options[:campaign_id]
|
18
|
-
elsif options[:referral]
|
19
|
-
url = url + "/" + options[:referral]
|
20
|
-
end
|
21
|
-
|
22
|
-
link_to title, url, class: options[:class], data: data
|
23
|
-
end
|
24
|
-
|
25
|
-
private
|
26
|
-
def glostick_user
|
27
|
-
@glostick_user ||= GlostickUserExtractor.new(cookies).user
|
28
|
-
end
|
29
|
-
|
30
|
-
class GlostickUserExtractor
|
31
|
-
attr_reader :secret,
|
32
|
-
:token
|
33
|
-
|
34
|
-
def initialize(cookies)
|
35
|
-
@secret = ENV['SESSION_COOKIE_SECRET_PRIMARY'] || ENV['SESSION_COOKIE_SECRET_SECONDARY']
|
36
|
-
@token = CGI::unescape(cookies[:heroku_user_session]) if cookies[:heroku_user_session]
|
37
|
-
end
|
38
|
-
|
39
|
-
def user
|
40
|
-
session_info = decrypt_session_cookie
|
41
|
-
if session_info && session_info['user']
|
42
|
-
session_info['user']
|
43
|
-
else
|
44
|
-
{
|
45
|
-
'email' => '',
|
46
|
-
'full_name' => ''
|
47
|
-
}
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
private
|
52
|
-
def decrypt_session_cookie
|
53
|
-
return nil unless token && secret
|
54
|
-
|
55
|
-
verifier = Fernet.verifier(secret, token)
|
56
|
-
verifier.enforce_ttl = false
|
57
|
-
|
58
|
-
return nil unless verifier.valid?
|
59
|
-
|
60
|
-
JSON.parse(verifier.message)
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
@@ -1,57 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
RSpec.describe BookendsHelper, type: :helper do
|
4
|
-
describe "glostick methods" do
|
5
|
-
before :each do
|
6
|
-
allow_any_instance_of(BookendsHelper).to receive(:glostick_user).and_return({"email"=> "email@heroku.com", "full_name"=>"full name"})
|
7
|
-
end
|
8
|
-
|
9
|
-
describe "#glostick_user_name" do
|
10
|
-
it "extracts the user's name from the heroku_user_session cookie info" do
|
11
|
-
expect(helper.glostick_user_name).to eq 'full name'
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
describe "#glostick_user_email" do
|
16
|
-
it "extracts the user's email from the heroku_user_session cookie info" do
|
17
|
-
expect(helper.glostick_user_email).to eq 'email@heroku.com'
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
describe "signup_link" do
|
23
|
-
it "returns a link to https://signup.heroku.com" do
|
24
|
-
expect(helper.signup_link("Sign up")).to include 'href="https://signup.heroku.com"'
|
25
|
-
end
|
26
|
-
|
27
|
-
it "sets its proper class if it's specified" do
|
28
|
-
expect(helper.signup_link("Sign up", { class: "button"})).to include 'class="button"'
|
29
|
-
end
|
30
|
-
|
31
|
-
context "includes a referral" do
|
32
|
-
it "it's added to the url if it's specified and there no campaign_id is provided" do
|
33
|
-
expect(helper.signup_link("Sign up", { referral: "www-home-top"})).to include 'href="https://signup.heroku.com/www-home-top"'
|
34
|
-
end
|
35
|
-
|
36
|
-
it "it's not added to the url if it's specified and a campaign_id is provided" do
|
37
|
-
expect(helper.signup_link("Sign up", { referral: "www-home-top", campaign_id: "12345"})).to include 'href="https://signup.heroku.com?c=12345"'
|
38
|
-
end
|
39
|
-
|
40
|
-
it "returns the data attributes to be used by trackable" do
|
41
|
-
expect(helper.signup_link("Sign up", { referral: "www-header"}).split("data-trackable=\"").last.split("\"").first).to eq CGI.escapeHTML("{\"category\":\"Sign Up Links\",\"action\":\"Clicked\",\"label\":\"www-header\"}")
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
context "includes a referral" do
|
46
|
-
it "it's added to the url" do
|
47
|
-
expect(helper.signup_link("Sign up", { campaign_id: "12345"} )).to include 'href="https://signup.heroku.com?c=12345"'
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
context "includes branded_signup" do
|
52
|
-
it "it's added to the url" do
|
53
|
-
expect(helper.signup_link("Sign up", { branded_signup: "geaux"} )).to include 'href="https://signup.heroku.com/geaux"'
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
Binary file
|
@@ -1,37 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
2
|
-
<!-- Generator: Adobe Illustrator 20.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3
|
-
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
4
|
-
width="23px" height="23px" viewBox="0 0 23 23" style="enable-background:new 0 0 23 23;" xml:space="preserve">
|
5
|
-
<style type="text/css">
|
6
|
-
.st0{fill:none;stroke:#886BAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
|
7
|
-
.st1{fill:none;stroke:#886BAA;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;}
|
8
|
-
.st2{fill:#886BAA;}
|
9
|
-
.st3{fill:none;stroke:#886BAA;stroke-linecap:round;stroke-linejoin:round;}
|
10
|
-
</style>
|
11
|
-
<g id="Page-1">
|
12
|
-
<g id="www-kafka" transform="translate(-650 -120)">
|
13
|
-
<g id="hero" transform="translate(-287 -68)">
|
14
|
-
<g id="copy" transform="translate(443 190)">
|
15
|
-
<g id="logo_kafka" transform="translate(496)">
|
16
|
-
<path id="Stroke-1" class="st0" d="M11.2,0v19.1"/>
|
17
|
-
<path id="Stroke-3" class="st1" d="M7.6,8.6l-6.4-3"/>
|
18
|
-
<path id="Stroke-5" class="st1" d="M1.2,13.4l6.4-3.1"/>
|
19
|
-
<path id="Fill-7" class="st2" d="M-0.5,13.4c0,1,0.8,1.7,1.7,1.7s1.7-0.8,1.7-1.7c0-1-0.8-1.7-1.7-1.7S-0.5,12.5-0.5,13.4"/>
|
20
|
-
<path id="Stroke-9" class="st3" d="M-0.5,13.4c0,1,0.8,1.7,1.7,1.7s1.7-0.8,1.7-1.7c0-1-0.8-1.7-1.7-1.7S-0.5,12.5-0.5,13.4z"
|
21
|
-
/>
|
22
|
-
<path id="Fill-11" class="st2" d="M-0.5,5.6c0,1,0.8,1.7,1.7,1.7s1.7-0.8,1.7-1.7S2.2,3.9,1.2,3.9S-0.5,4.6-0.5,5.6"/>
|
23
|
-
<path id="Stroke-13" class="st3" d="M-0.5,5.6c0,1,0.8,1.7,1.7,1.7s1.7-0.8,1.7-1.7S2.2,3.9,1.2,3.9S-0.5,4.6-0.5,5.6z"/>
|
24
|
-
<path id="Fill-15" class="st2" d="M8,3.4c-1,0-1.7-0.8-1.7-1.7S7,0,8,0V3.4z"/>
|
25
|
-
<path id="Stroke-17" class="st3" d="M8,3.4c-1,0-1.7-0.8-1.7-1.7S7,0,8,0V3.4z"/>
|
26
|
-
<path id="Fill-19" class="st2" d="M8,15.6c-1,0-1.7,0.8-1.7,1.7S7,19,8,19V15.6z"/>
|
27
|
-
<path id="Stroke-21" class="st3" d="M8,15.6c-1,0-1.7,0.8-1.7,1.7S7,19,8,19V15.6z"/>
|
28
|
-
<path id="Fill-23" class="st2" d="M8,12.9C6.6,12.4,5.7,11,5.7,9.5s1-2.9,2.3-3.4V12.9z"/>
|
29
|
-
<path id="Stroke-25" class="st3" d="M8,12.9C6.6,12.4,5.7,11,5.7,9.5s1-2.9,2.3-3.4V12.9z"/>
|
30
|
-
<path id="Stroke-27" class="st0" d="M11.3,8.6l8.2-3.8"/>
|
31
|
-
<path id="Stroke-29" class="st0" d="M19.5,14.3l-8.2-4.1"/>
|
32
|
-
</g>
|
33
|
-
</g>
|
34
|
-
</g>
|
35
|
-
</g>
|
36
|
-
</g>
|
37
|
-
</svg>
|
@@ -1 +0,0 @@
|
|
1
|
-
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" width="23" height="23" viewBox="0 0 23 23"><style>.st0{stroke-width:2}.st0,.st1{fill:none;stroke:#876aaa;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10}</style><path class="st0" d="M4.2 5.7L10 2.3c.9-.5 1.9-.5 2.8 0l5.9 3.4c.9.4 1.5 1.3 1.5 2.3v6.8c0 1-.5 1.9-1.4 2.4L13 20.7c-.9.5-1.9.5-2.8 0l-5.9-3.4c-.9-.4-1.5-1.3-1.5-2.3V8.2c0-1 .5-2 1.4-2.5z"/><path class="st1" d="M6.3 12.4l1.4-.8c.2-.1.5-.1.7 0l1.4.8c.2.1.3.3.3.6v1.6c0 .2-.1.5-.3.6l-1.4.8c-.2.1-.5.1-.7 0l-1.4-.8c-.2-.2-.3-.4-.3-.6V13c0-.3.1-.5.3-.6zM9.7 6.6l1.4-.8c.2-.1.5-.1.7 0l1.4.8c.2.1.3.3.3.6v1.6c0 .2-.1.5-.3.6l-1.4.8c-.2.1-.5.1-.7 0l-1.4-.8c-.2-.2-.3-.4-.3-.6V7.2c0-.3.1-.5.3-.6zM13.2 12.3l1.4-.8c.2-.1.5-.1.7 0l1.4.8c.2.1.3.3.3.6v1.6c0 .2-.1.5-.3.6l-1.4.8c-.2.1-.5.1-.7 0l-1.4-.8c-.2-.1-.3-.3-.3-.6v-1.6c0-.2.1-.4.3-.6z"/></svg>
|
@@ -1,102 +0,0 @@
|
|
1
|
-
<header id="header">
|
2
|
-
<div id="navigation" role="navigation">
|
3
|
-
<span class="mobile-nav" aria-hidden="true">
|
4
|
-
Show nav
|
5
|
-
<span></span>
|
6
|
-
<span></span>
|
7
|
-
<span></span>
|
8
|
-
<span></span>
|
9
|
-
</span>
|
10
|
-
|
11
|
-
<div class="wrapper wrapper-full">
|
12
|
-
<div id="logo">
|
13
|
-
<a href="https://www.heroku.com/home">Heroku</a>
|
14
|
-
</div>
|
15
|
-
|
16
|
-
<div class="nav-wrapper">
|
17
|
-
|
18
|
-
<ul class="main-nav">
|
19
|
-
<li class="has-dropdown">
|
20
|
-
<a href="https://www.heroku.com/platform">Products</a>
|
21
|
-
<ul class="dropdown">
|
22
|
-
<li><a href="https://www.heroku.com/platform" class="platform">Heroku Platform</a></li>
|
23
|
-
<li><a href="https://www.heroku.com/postgres" class="postgres">Heroku Postgres</a></li>
|
24
|
-
<li><a href="https://www.heroku.com/redis" class="redis">Heroku Redis</a></li>
|
25
|
-
<li><a href="https://www.heroku.com/kafka" class="kafka">Kafka on Heroku</a></li>
|
26
|
-
<li><a href="https://www.heroku.com/connect" class="connect">Heroku Connect</a></li>
|
27
|
-
<li class="has-dropdown">
|
28
|
-
<a href="https://www.heroku.com/enterprise" class="enterprise">Heroku Enterprise</a>
|
29
|
-
<ul class="dropdown">
|
30
|
-
<li><a href="https://www.heroku.com/private-spaces" class="spaces">Private Spaces</a></li>
|
31
|
-
</ul>
|
32
|
-
</li>
|
33
|
-
<li><a href="https://www.heroku.com/teams" class="teams">Heroku Teams</a></li>
|
34
|
-
</ul>
|
35
|
-
</li>
|
36
|
-
<li class="has-dropdown">
|
37
|
-
<a href="https://elements.heroku.com/">Elements</a>
|
38
|
-
<ul class="dropdown">
|
39
|
-
<li><a href="https://elements.heroku.com/addons" class="addons">Add-ons</a></li>
|
40
|
-
<li><a href="https://elements.heroku.com/buttons" class="buttons">Buttons</a></li>
|
41
|
-
<li><a href="https://elements.heroku.com/buildpacks" class="buildpacks">Buildpacks</a></li>
|
42
|
-
<li><a href="https://www.heroku.com/elements" class="bookends-icon elements">About</a></li>
|
43
|
-
</ul>
|
44
|
-
</li>
|
45
|
-
<li><a href="https://www.heroku.com/pricing">Pricing</a></li>
|
46
|
-
<li><a href="https://devcenter.heroku.com">Documentation</a></li>
|
47
|
-
<li><a href="https://www.heroku.com/support">Support</a></li>
|
48
|
-
|
49
|
-
<li class="has-dropdown">
|
50
|
-
<a href="#" class="more">More</a>
|
51
|
-
<div class="dropdown more">
|
52
|
-
<section class="more-resources">
|
53
|
-
<span class="more-title">Additional Resources</span>
|
54
|
-
<ul>
|
55
|
-
<li><a href="https://www.heroku.com/what">What is Heroku?</a></li>
|
56
|
-
<li><a href="https://www.heroku.com/help">Help Center</a></li>
|
57
|
-
<li><a href="https://www.heroku.com/customers">Customers</a></li>
|
58
|
-
<li><a href="https://www.heroku.com/careers">Careers</a></li>
|
59
|
-
<li><a href="https://www.heroku.com/events">Events</a></li>
|
60
|
-
</ul>
|
61
|
-
</section>
|
62
|
-
<section class="more-languages">
|
63
|
-
<span class="more-title">Languages</span>
|
64
|
-
<ul>
|
65
|
-
<li><a href="https://www.heroku.com/node">Node</a></li>
|
66
|
-
<li><a href="https://www.heroku.com/ruby">Ruby</a></li>
|
67
|
-
<li><a href="https://www.heroku.com/java">Java</a></li>
|
68
|
-
<li><a href="https://www.heroku.com/php">PHP</a></li>
|
69
|
-
<li><a href="https://www.heroku.com/python">Python</a></li>
|
70
|
-
<li><a href="https://www.heroku.com/go">Go</a></li>
|
71
|
-
<li><a href="https://www.heroku.com/scala">Scala</a></li>
|
72
|
-
<li><a href="https://www.heroku.com/clojure">Clojure</a></li>
|
73
|
-
</ul>
|
74
|
-
</section>
|
75
|
-
<section id="more-blog" class="more-blog">
|
76
|
-
<span class="more-title">Heroku Blog</span>
|
77
|
-
<h3><a class="js-blog-link" href="https://blog.heroku.com">Heroku Blog</a></h3>
|
78
|
-
<p class="js-blog-date"></p>
|
79
|
-
<p class="js-blog-content">Find out what's new with Heroku on our blog.</p>
|
80
|
-
<a href="https://blog.heroku.com" class="button btn-default btn-sm btn-inline">Visit Blog</a>
|
81
|
-
</section>
|
82
|
-
</div>
|
83
|
-
</li>
|
84
|
-
</ul>
|
85
|
-
|
86
|
-
<ul class="tool-nav">
|
87
|
-
<li>
|
88
|
-
<form action="https://blog.heroku.com/search" class="site-search" id="site-search" method="get">
|
89
|
-
<div class="gsc-input">
|
90
|
-
<input name="utf8" type="hidden" value="✓">
|
91
|
-
<input autocomplete="off" type="text" name="q" title="search" class="gsc-input" style="width: 100%; padding: 0px; border: none; margin: -0.0625em 0px 0px; height: 1.25em; outline: none;" dir="ltr" spellcheck="false">
|
92
|
-
<span class="gsc-search-button">
|
93
|
-
<input type="submit" class="search-button">
|
94
|
-
</span>
|
95
|
-
</div>
|
96
|
-
</form>
|
97
|
-
</li>
|
98
|
-
</ul>
|
99
|
-
</div>
|
100
|
-
</div>
|
101
|
-
</div>
|
102
|
-
</header>
|
@@ -1,18 +0,0 @@
|
|
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
|
-
});
|
@@ -1,21 +0,0 @@
|
|
1
|
-
@import 'glostick';
|
2
|
-
@import 'footer';
|
3
|
-
|
4
|
-
.wrapper-full {
|
5
|
-
-webkit-box-sizing: border-box;
|
6
|
-
-moz-box-sizing: border-box;
|
7
|
-
box-sizing: border-box;
|
8
|
-
margin: 0 auto;
|
9
|
-
max-width: 66.25em;
|
10
|
-
width: 93.96226%;
|
11
|
-
position: relative;
|
12
|
-
max-width: none;
|
13
|
-
width: 100%;
|
14
|
-
padding: 20px;
|
15
|
-
|
16
|
-
&:after {
|
17
|
-
content: "";
|
18
|
-
display: table;
|
19
|
-
clear: both;
|
20
|
-
}
|
21
|
-
}
|