Class/Module Index [+]

Quicksearch

Heroku::Command::Labs

manage optional features

Public Instance Methods

disable() click to toggle source
labs:disable FEATURE

disables an experimental feature

Example:

$ heroku labs:disable ninja-power
Disabling ninja-power feature for me@example.org... done
# File lib/heroku/command/labs.rb, line 74
def disable
  feature_name = shift_argument
  error "Usage: heroku labs:disable FEATURE\nMust specify FEATURE to disable." unless feature_name
  validate_arguments!

  feature = api.get_features(app).body.detect { |f| f["name"] == feature_name }
  message = "Disabling #{feature_name} "

  error "No such feature: #{feature_name}" unless feature

  if feature["kind"] == "user"
    message += "for #{Heroku::Auth.user}"
  else
    error "Must specify an app" unless app
    message += "for #{app}"
  end

  action message do
    api.delete_feature feature_name, app
  end
end
enable() click to toggle source
labs:enable FEATURE

enables an experimental feature

Example:

$ heroku labs:enable ninja-power
Enabling ninja-power feature for me@example.org... done
# File lib/heroku/command/labs.rb, line 105
def enable
  feature_name = shift_argument
  error "Usage: heroku labs:enable FEATURE\nMust specify FEATURE to enable." unless feature_name
  validate_arguments!

  feature = api.get_features.body.detect { |f| f["name"] == feature_name }
  message = "Enabling #{feature_name} "

  error "No such feature: #{feature_name}" unless feature

  if feature["kind"] == "user"
    message += "for #{Heroku::Auth.user}"
  else
    error "Must specify an app" unless app
    message += "for #{app}"
  end

  feature_data = action(message) do
    api.post_feature(feature_name, app).body
  end

  display "WARNING: This feature is experimental and may change or be removed without notice."
  display "For more information see: #{feature_data["docs"]}" if feature_data["docs"]
end
index() click to toggle source
labs

list experimental features

Example:

=== User Features (david@heroku.com)
[+] dashboard  Use Heroku Dashboard by default

=== App Features (glacial-retreat-5913)
[ ] preboot            Provide seamless web dyno deploys
[ ] user-env-compile   Add user config vars to the environment during slug compilation  # $ heroku labs -a example
# File lib/heroku/command/labs.rb, line 20
def index
  validate_arguments!

  user_features, app_features = api.get_features(app).body.sort_by do |feature|
    feature["name"]
  end.partition do |feature|
    feature["kind"] == "user"
  end

  display_app = app || "no app specified"

  styled_header "User Features (#{Heroku::Auth.user})"
  display_features user_features
  display
  styled_header "App Features (#{display_app})"
  display_features app_features
end
info() click to toggle source
labs:info FEATURE

displays additional information about FEATURE

Example:

$ heroku labs:info user_env_compile
=== user_env_compile
Docs:    http://devcenter.heroku.com/articles/labs-user-env-compile
Summary: Add user config vars to the environment during slug compilation
# File lib/heroku/command/labs.rb, line 51
def info
  unless feature_name = shift_argument
    error("Usage: heroku labs:info FEATURE\nMust specify FEATURE for info.")
  end
  validate_arguments!

  feature_data = api.get_feature(feature_name, app).body
  styled_header(feature_data['name'])
  styled_hash({
    'Summary' => feature_data['summary'],
    'Docs'    => feature_data['docs']
  })
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.