Включайте файлы в командную строку с Ruby

Вместо ожидания произвольного тайм-аута установите script.onload на функцию обратного вызова и выполните настройки там.

$button.addEventListener('click', () => {
  $button.innerHTML = 'Waiting for response...';

  var script = document.createElement("script");
  script.type = "text/javascript";
  script.src = "https://checkout.stripe.com/checkout.js";
  script.onload = function () {
    // Now that we have the script loaded, we can create the stripe handler...
    const handler = StripeCheckout.configure({
      key: STRIPE_PUBLISHABLE_KEY,
      image: 'https://stripe.com/img/documentation/checkout/marketplace.png',
      locale: 'auto',
      closed: function () {
        resetButtonText();
      },
      token: function(token) {

        fetch(`${LAMBDA_ENDPOINT}purchase`, {
          method: 'POST',
          body: JSON.stringify({
            token,
            amount,
            idempotency_key: uuid()
          }),
          headers: new Headers({
            'Content-Type': 'application/json'
          })
        })
        .then(res => res.json())
        .catch(error => console.error(error))
        .then(response => {

          resetButtonText();

          let message = typeof response === 'object' && response.status === 'succeeded'
          ? 'Charge was successful!'
          : 'Charge failed.'
          $messageBox.querySelector('h2').innerHTML = message;

          console.log(response);
        });
      }
    });

    // and use the handler to do whatever we want.
    handler.open({
      amount,
      name: 'Test Shop',
      description: 'A Fantastic New Widget'
    });
  };
  document.getElementsByTagName("head")[0].appendChild(script);
});
6
задан Macha 27 March 2009 в 13:04
поделиться

3 ответа

Поскольку Вы нашли,-r опция является Вашим другом. Это также работает с IRB:

irb -ropen-uri

Сделает то же как require 'open-uri'

FWIW, наиболее распространенная вещь, которую я должен включать через командную строку, является rubygems. И так как более новые версии рубина идут с драгоценными камнями, встроенными, я не хочу редактировать файл, но включать его для тестирования. К счастью люди, которые создали драгоценные камни, добавили немного сахара псевдонима.

Можно сделать следующее:

ruby -rubygems myscript.rb

Вместо ужасного:

ruby -rrubygems myscript.rb

Хорошо, таким образом, это - один символ, но думало, что была дополнительная полировка для создания меня более счастливым.

9
ответ дан 8 December 2019 в 18:41
поделиться

На самом деле я нашел его. Это-r запись командной строки.

2
ответ дан 8 December 2019 в 18:41
поделиться

Можно использовать:

require 'some_ruby_file'

в некоторых-script.rb. Это загрузит some_ruby_file.rb.

1
ответ дан 8 December 2019 в 18:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: