Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
if Rails.env.production?
Braintree::Configuration.environment = Rails.env.staging? ? :sandbox : :production
Braintree::Configuration.merchant_id = ENV["braintree_merchant_id"]
Braintree::Configuration.public_key = ENV["braintree_public_key"]
Braintree::Configuration.private_key = ENV["braintree_private_key"]
else
Braintree::Configuration.environment = :sandbox
Braintree::Configuration.merchant_id = "<super secret>"
Braintree::Configuration.public_key = "<super secret>"
Braintree::Configuration.private_key = "<super secret>"
end
@hoverlover

This comment has been minimized.

Show comment Hide comment
@hoverlover

hoverlover Aug 29, 2011

I think there is a mistake in your example:

if Rails.env.production?
  Braintree::Configuration.environment = Rails.env.staging? ? :sandbox : :production
  ...
else
  ...
end

Shouldn't that line just be

Braintree::Configuration.environment = :production

There can only be one active environment at any given time.

I think there is a mistake in your example:

if Rails.env.production?
  Braintree::Configuration.environment = Rails.env.staging? ? :sandbox : :production
  ...
else
  ...
end

Shouldn't that line just be

Braintree::Configuration.environment = :production

There can only be one active environment at any given time.

@dpickett

This comment has been minimized.

Show comment Hide comment
@dpickett

dpickett Aug 30, 2011

no that's a ternary operator basically if the equivalent of

  if Rails.env.staging?
    Braintree::Configuration.environment = :sandbox
  else
    Braintree::Configuration.environment = :production
  end
Owner

dpickett commented Aug 30, 2011

no that's a ternary operator basically if the equivalent of

  if Rails.env.staging?
    Braintree::Configuration.environment = :sandbox
  else
    Braintree::Configuration.environment = :production
  end
@hoverlover

This comment has been minimized.

Show comment Hide comment
@hoverlover

hoverlover Aug 31, 2011

I'm well aware of the ternary operator. Maybe you didn't see this part of my comment:

There can only be one active environment at any given time.

If execution falls through the if Rails.env.production? branch, Rails.env.staging? will always return false, right? So in your gist, :production would always be the outcome. That's why I said you might as well just hard-code it to :production.

I'm well aware of the ternary operator. Maybe you didn't see this part of my comment:

There can only be one active environment at any given time.

If execution falls through the if Rails.env.production? branch, Rails.env.staging? will always return false, right? So in your gist, :production would always be the outcome. That's why I said you might as well just hard-code it to :production.

@hoverlover

This comment has been minimized.

Show comment Hide comment
@hoverlover

hoverlover Aug 31, 2011

Sorry, made a typo in my previous comment. I've updated it.

Sorry, made a typo in my previous comment. I've updated it.

@paulrnash

This comment has been minimized.

Show comment Hide comment
@paulrnash

paulrnash Dec 17, 2014

hoverlover is correct, this would not actually work right. Saying "if not Rails.env.test?" in the first check would give the effect the author wants.

hoverlover is correct, this would not actually work right. Saying "if not Rails.env.test?" in the first check would give the effect the author wants.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment