kapellmeister 0.9.9.rc2 → 0.9.9.rc3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6d59e28eecf6117e627cd0108f64e27db9331837d972d8ae9911041e7dd1c03f
4
- data.tar.gz: 6717303f7fbce49b91927ab5021312f3fe2ea761a8dcd07883d290cd91839d87
3
+ metadata.gz: 3573d062cdf27ce17dac539c8191b9e9d082891e463504065cff932558a768a8
4
+ data.tar.gz: de5739ba7290de3ef6cf2d0ca2f60ff6fed1d9433a78c18de725f7a3ff78d3dc
5
5
  SHA512:
6
- metadata.gz: 3296052e14e0aaf0b0553930be4ad02e8ffa102a13968fde326c1bd358274940b4afbfe2abc28a3bfc5e4cb6a60fa723d7739a1d0a332e4e303514bff2c41c44
7
- data.tar.gz: d2d0a331dc45c3e084f9c46c5fb36f75dd067d6ec140c2f00a5f7f0e9f6676bc15e5100d192e23242163e4b954fa53c92506b9e96b1ae6c2fe39fd61f1a73df0
6
+ metadata.gz: 89809bbfda7fb5690c97dba55678e2cc07cc50a4281dd0cb1eff547ec3141641813701f0c8d588287834a0d179603d358b5085cc5cbd3cddb7a6c078965fd113
7
+ data.tar.gz: b162ad1e4e8d410ce3283517e20d17ee078aab84ee5e47f9c7ff8081f692ab527cd08dbf6cf242f787d119df1f192d30b9f1b2063725b7481f3c0ee8961623f5
data/README.md CHANGED
@@ -4,9 +4,9 @@
4
4
  ## Использование
5
5
 
6
6
  Добавьте kapellmeister в свой Gemfile:
7
- На данный момент послденяя версия 0.9.8 (Проект находится в стадии тестирования работоспособности, beta-test)
7
+ На данный момент последняя версия 0.9.9.rc2 (Проект находится в стадии тестирования работоспособности, beta-test)
8
8
  ```ruby
9
- gem 'kapellmeister', '~> 0.9.8'
9
+ gem 'kapellmeister', '~> 0.9.9.rc2'
10
10
  ```
11
11
 
12
12
  ### Добавьте новую конфигурацию для стороннего API:
@@ -58,7 +58,10 @@ foo: => Обёртка для метода
58
58
  bar: => Наименование метода
59
59
  scheme: => Описание схемы
60
60
  method: POST => Тип запроса (* обязательный параметр!)
61
- use_wrapper: true => Обёрнуть ли метод для обеспечения уникальности. По умолчанию true
61
+ wrappers: => Обёрнуть ли имя метода и/или реальный путь для обеспечения уникальности. По умолчанию true для метода, и false для пути
62
+ all: true => Можно передать ключ all, который отработает и за обёртку метода и за обёртку пути с одним значением
63
+ name: true => Этот ключ отвечает за обёртку имени метода, приоритетней над all (по умолчанию true)
64
+ path: false => Этот ключ отвечает за обёртку пути, приоритетней над all (по умолчанию false)
62
65
  path: buz => Настоящий путь (роут). Если параметра нет, то путь будет взят из наименования метода.
63
66
  body: => Dry-scheme (из набора гемов DRY) для проверки параметров. Если параметра нет, то проверки не будет.
64
67
  query_params: => Описание query-параметров. Если параметра нет, то подстановки параметров не будет.
@@ -82,7 +85,7 @@ body: DrySchema
82
85
  `query_params` — Если для запроса требуется query-параметры.
83
86
  Работают как массивы, так и руби-хэши.
84
87
  Если этот ключ не существует, то подстановки параметров и их проверки не будет.
85
- For example:
88
+ Пример:
86
89
 
87
90
  ```yaml
88
91
  query_params:
@@ -134,9 +137,9 @@ This template-service allows you to define http requests to a third party throug
134
137
  ## Usage
135
138
 
136
139
  Add kapellmeister to your Gemfile:
137
- At the moment, the latest version is 0.9.8 (The project is in the stage of performance testing, beta-test)
140
+ At the moment, the latest version is 0.9.9.rc2 (The project is in the stage of performance testing, beta-test)
138
141
  ```ruby
139
- gem 'kapellmeister', '~> 0.9.6'
142
+ gem 'kapellmeister', '~> 0.9.9.rc2'
140
143
  ```
141
144
 
142
145
  ### Add a new configuration for the third-party API:
@@ -186,7 +189,10 @@ foo: => Wrapper of the method
186
189
  bar: => Name of the method
187
190
  scheme: => Description of the scheme
188
191
  method: POST => Request type (* required)
189
- use_wrapper: true => Whether to wrap the method to ensure uniqueness. By default, true
192
+ wrappers: => Whether to wrap the method name and/or the actual path to ensure uniqueness. By default, true for the method, and false for the path
193
+ all: true => You can pass the 'all' key, which will work for both the method wrapper and the path wrapper with one value
194
+ name: true => This key is responsible for wrapping the method name, which takes precedence over 'all' key (true by default)
195
+ path: false => This key is responsible for wrapping the path, taking precedence over 'all' key (false by default)
190
196
  path: buz => The real path (route). If there is no parameter, the path will be taken from the method name.
191
197
  body: => Dry-scheme (from the set of DRY gems) to check the parameters. If there is no parameter, then there'll be no verification.
192
198
  query_params: => Description of the query parameters. If there is no parameter, then there'll be no parameter substitution.
@@ -260,4 +266,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
260
266
 
261
267
  ## Copyright
262
268
 
263
- Copyright (c) 2022 Denis Arushanov aka DarkWater
269
+ Copyright (c) 2024 Denis Arushanov aka DarkWater
@@ -47,14 +47,35 @@ end
47
47
 
48
48
  def mapping(deep_key, deep_value, key, scheme)
49
49
  old_path = deep_value[:path].presence || deep_key.to_s
50
- name = old_path.split('/').map { |part| part.gsub(/%<.*?>/, '') }.reject(&:empty?)
51
- deep_value[:path] = [key, old_path].join('/')
50
+ name = old_path.to_s.split('/').map { |part| part.gsub(/%<.*?>/, '') }.reject(&:empty?)
51
+ use_name_wrapper, use_path_wrapper = use_wrappers?(deep_value.delete(:wrappers))
52
52
 
53
- use_wrapper = deep_value.key?(:use_wrapper) ? deep_value[:use_wrapper] : true
54
- new_key = if name.size == 1
53
+ deep_value[:path] = use_path_wrapper ? [key, old_path].join('/') : old_path
54
+ new_key = if name.size == 1 && !use_name_wrapper
55
55
  deep_key
56
56
  else
57
- use_wrapper ? [name.first.presence || key, deep_key].join('_').to_sym : deep_key
57
+ use_name_wrapper ? [key, deep_key].join('_').to_sym : deep_key
58
58
  end
59
59
  scheme[new_key] = deep_value
60
60
  end
61
+
62
+ def use_wrappers?(wrappers)
63
+ default = [true, false]
64
+ return default if wrappers.nil?
65
+
66
+ if wrappers.key?(:all)
67
+ all = to_bool!(wrappers[:all])
68
+ default = [all, all]
69
+ else
70
+ default = [to_bool!(wrappers[:name]), default[1]] if wrappers.key?(:name)
71
+ default = [default[0], to_bool!(wrappers[:path])] if wrappers.key?(:path)
72
+ end
73
+
74
+ default
75
+ end
76
+
77
+ def to_bool!(value)
78
+ convert_options = { 'true' => true, true => true, 'false' => false, false => false }
79
+
80
+ convert_options[value]
81
+ end
@@ -1,3 +1,3 @@
1
1
  module Kapellmeister
2
- VERSION = '0.9.9.rc2'.freeze
2
+ VERSION = '0.9.9.rc3'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kapellmeister
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.9.rc2
4
+ version: 0.9.9.rc3
5
5
  platform: ruby
6
6
  authors:
7
7
  - DarkWater
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-08-15 00:00:00.000000000 Z
11
+ date: 2024-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-schema