1
0
зеркало из https://github.com/glebtv/yookassa.git synced 2026-09-03 17:55:51 +03:00

Merge pull request #6 from PaymentInstruments/configurator

Adding configurator
Этот коммит содержится в:
Ivan Shamatov
2021-10-29 00:15:14 +03:00
коммит произвёл GitHub
родитель b6bbdadd4c 629eeafb7d
Коммит c27617e0f7
8 изменённых файлов: 66 добавлений и 4 удалений

13
bin/console Исполняемый файл
Просмотреть файл

@@ -0,0 +1,13 @@
#!/usr/bin/env ruby
# frozen_string_literal: true
require "bundler/setup"
require "yookassa"
begin
require "pry-byebug"
Pry.start
rescue LoadError
require "irb"
IRB.start
end

8
bin/setup Исполняемый файл
Просмотреть файл

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
set -vx
bundle install
# Do any other automated setup that you need to do here

Просмотреть файл

@@ -11,3 +11,14 @@ require "yookassa/optional"
require "yookassa/entity/payment"
require "yookassa/entity/refund"
require "yookassa/error"
require "yookassa/config"
module Yookassa
def self.configure
yield(config)
end
def self.config
@config ||= Config.new
end
end

7
lib/yookassa/config.rb Обычный файл
Просмотреть файл

@@ -0,0 +1,7 @@
# frozen_string_literal: true
module Yookassa
class Config
attr_accessor :shop_id, :api_key
end
end

Просмотреть файл

@@ -2,8 +2,8 @@
module Yookassa
class Payment < Evil::Client
option :shop_id, proc(&:to_s)
option :api_key, proc(&:to_s)
option :shop_id, proc(&:to_s), default: proc { Yookassa.config.shop_id }
option :api_key, proc(&:to_s), default: proc { Yookassa.config.api_key }
path { "https://api.yookassa.ru/v3/payments" }
security { basic_auth shop_id, api_key }

Просмотреть файл

@@ -2,8 +2,8 @@
module Yookassa
class Refund < Evil::Client
option :shop_id, proc(&:to_s)
option :api_key, proc(&:to_s)
option :shop_id, proc(&:to_s), default: proc { Yookassa.config.shop_id }
option :api_key, proc(&:to_s), default: proc { Yookassa.config.api_key }
path { "https://api.yookassa.ru/v3/refunds" }
security { basic_auth shop_id, api_key }

9
spec/yookassa/config_spec.rb Обычный файл
Просмотреть файл

@@ -0,0 +1,9 @@
# frozen_string_literal: true
module Yookassa
RSpec.describe Config do
subject { described_class.new }
it { is_expected.to respond_to(:shop_id) }
it { is_expected.to respond_to(:api_key) }
end
end

Просмотреть файл

@@ -4,4 +4,18 @@ RSpec.describe Yookassa do
it "has a version number" do
expect(Yookassa::VERSION).not_to be nil
end
describe ".configure" do
before do
Yookassa.configure do |config|
config.shop_id = 123
config.api_key = "test_321"
end
end
it "stores settings and provides access to credentials" do
expect(Yookassa.config.shop_id).to eq(123)
expect(Yookassa.config.api_key).to eq("test_321")
end
end
end