Module: Cdek

Defined in:
lib/cdek.rb,
lib/cdek/error.rb,
lib/cdek/client.rb,
lib/cdek/engine.rb,
lib/cdek/railtie.rb,
lib/cdek/version.rb,
lib/cdek/connection.rb,
lib/cdek/configuration.rb,
lib/cdek/resources/base.rb,
lib/cdek/resources/locations.rb,
app/helpers/cdek/widget_helper.rb,
lib/cdek/resources/deliverypoints.rb,
lib/generators/cdek/install/install_generator.rb,
app/controllers/cdek/widget_service_controller.rb

Defined Under Namespace

Modules: Generators, Resources, WidgetHelper Classes: ApiError, AuthenticationError, BadRequestError, Client, Configuration, ConfigurationError, Connection, ConnectionError, Engine, Error, NotFoundError, Railtie, RateLimitError, ServerError, TimeoutError, WidgetServiceController

Constant Summary collapse

VERSION =
"0.3.10"

Class Method Summary collapse

Class Method Details

.clientObject

Шареный клиент. Потокобезопасная мемоизация.



34
35
36
# File 'lib/cdek.rb', line 34

def client
  CLIENT_MUTEX.synchronize { @client ||= Client.new(configuration) }
end

.configurationObject

Возвращает текущий объект конфигурации (создавая его при первом обращении).



18
19
20
# File 'lib/cdek.rb', line 18

def configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Блочный синтаксис настройки.

Cdek.configure do |config|
  config.         = ENV["CDEK_ACCOUNT"]
  config.secure_password = ENV["CDEK_SECURE_PASSWORD"]
  config.production_mode!
end

Yields:



29
30
31
# File 'lib/cdek.rb', line 29

def configure
  yield configuration
end

.deliverypoints(custom_client = client) ⇒ Object

High-level ресурс «Пункты выдачи» — список ПВЗ/постаматов по фильтрам.



60
61
62
# File 'lib/cdek.rb', line 60

def deliverypoints(custom_client = client)
  Resources::Deliverypoints.new(custom_client)
end

.locations(custom_client = client) ⇒ Object

High-level ресурс «Локации» — справочники городов/регионов и suggest. По умолчанию использует шареный Cdek.client; можно передать кастомный клиент (например, в тестах с подменённым transport).



55
56
57
# File 'lib/cdek.rb', line 55

def locations(custom_client = client)
  Resources::Locations.new(custom_client)
end

.reset!Object

Полный сброс — и конфигурации, и клиента.



45
46
47
48
49
50
# File 'lib/cdek.rb', line 45

def reset!
  CLIENT_MUTEX.synchronize do
    @configuration = nil
    @client        = nil
  end
end

.reset_client!Object

Сбрасывает мемоизированный клиент (полезно после изменения конфигурации или в тестах).



40
41
42
# File 'lib/cdek.rb', line 40

def reset_client!
  CLIENT_MUTEX.synchronize { @client = nil }
end