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/city_resolver.rb,
lib/cdek/configuration.rb,
lib/cdek/resources/base.rb,
lib/cdek/city_suggestions.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,
app/controllers/cdek/city_suggestions_controller.rb
Defined Under Namespace
Modules: Generators, Resources, WidgetHelper Classes: ApiError, AuthenticationError, BadRequestError, CityResolver, CitySuggestions, CitySuggestionsController, Client, Configuration, ConfigurationError, Connection, ConnectionError, Engine, Error, NotFoundError, Railtie, RateLimitError, ServerError, TimeoutError, WidgetServiceController
Constant Summary collapse
- VERSION =
"0.3.12"
Class Method Summary collapse
-
.city_code(name, **options) ⇒ Object
CDEK-код города по пользовательскому названию.
-
.city_suggestions(query, **options) ⇒ Object
Нормализованные подсказки городов для autocomplete в хост-приложении.
-
.client ⇒ Object
Шареный клиент.
-
.configuration ⇒ Object
Возвращает текущий объект конфигурации (создавая его при первом обращении).
-
.configure {|configuration| ... } ⇒ Object
Блочный синтаксис настройки.
-
.deliverypoints(custom_client = client) ⇒ Object
High-level ресурс «Пункты выдачи» — список ПВЗ/постаматов по фильтрам.
-
.locations(custom_client = client) ⇒ Object
High-level ресурс «Локации» — справочники городов/регионов и suggest.
-
.reset! ⇒ Object
Полный сброс — и конфигурации, и клиента.
-
.reset_client! ⇒ Object
Сбрасывает мемоизированный клиент (полезно после изменения конфигурации или в тестах).
Class Method Details
.city_code(name, **options) ⇒ Object
CDEK-код города по пользовательскому названию.
67 68 69 |
# File 'lib/cdek.rb', line 67 def city_code(name, **) CityResolver.call(name, **) end |
.city_suggestions(query, **options) ⇒ Object
Нормализованные подсказки городов для autocomplete в хост-приложении.
72 73 74 |
# File 'lib/cdek.rb', line 72 def city_suggestions(query, **) CitySuggestions.call(query, **) end |
.client ⇒ Object
Шареный клиент. Потокобезопасная мемоизация.
36 37 38 |
# File 'lib/cdek.rb', line 36 def client CLIENT_MUTEX.synchronize { @client ||= Client.new(configuration) } end |
.configuration ⇒ Object
Возвращает текущий объект конфигурации (создавая его при первом обращении).
20 21 22 |
# File 'lib/cdek.rb', line 20 def configuration @configuration ||= Configuration.new end |
.configure {|configuration| ... } ⇒ Object
Блочный синтаксис настройки.
Cdek.configure do |config|
config.account = ENV["CDEK_ACCOUNT"]
config.secure_password = ENV["CDEK_SECURE_PASSWORD"]
config.production_mode!
end
31 32 33 |
# File 'lib/cdek.rb', line 31 def configure yield configuration end |
.deliverypoints(custom_client = client) ⇒ Object
High-level ресурс «Пункты выдачи» — список ПВЗ/постаматов по фильтрам.
62 63 64 |
# File 'lib/cdek.rb', line 62 def deliverypoints(custom_client = client) Resources::Deliverypoints.new(custom_client) end |
.locations(custom_client = client) ⇒ Object
High-level ресурс «Локации» — справочники городов/регионов и suggest. По умолчанию использует шареный Cdek.client; можно передать кастомный клиент (например, в тестах с подменённым transport).
57 58 59 |
# File 'lib/cdek.rb', line 57 def locations(custom_client = client) Resources::Locations.new(custom_client) end |
.reset! ⇒ Object
Полный сброс — и конфигурации, и клиента.
47 48 49 50 51 52 |
# File 'lib/cdek.rb', line 47 def reset! CLIENT_MUTEX.synchronize do @configuration = nil @client = nil end end |
.reset_client! ⇒ Object
Сбрасывает мемоизированный клиент (полезно после изменения конфигурации или в тестах).
42 43 44 |
# File 'lib/cdek.rb', line 42 def reset_client! CLIENT_MUTEX.synchronize { @client = nil } end |