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 +4 -4
- data/README.md +14 -8
- data/lib/kapellmeister/base.rb +26 -5
- data/lib/kapellmeister/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3573d062cdf27ce17dac539c8191b9e9d082891e463504065cff932558a768a8
|
4
|
+
data.tar.gz: de5739ba7290de3ef6cf2d0ca2f60ff6fed1d9433a78c18de725f7a3ff78d3dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
На данный момент
|
7
|
+
На данный момент последняя версия 0.9.9.rc2 (Проект находится в стадии тестирования работоспособности, beta-test)
|
8
8
|
```ruby
|
9
|
-
gem 'kapellmeister', '~> 0.9.
|
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
|
-
|
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
|
-
|
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.
|
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.
|
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
|
-
|
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)
|
269
|
+
Copyright (c) 2024 Denis Arushanov aka DarkWater
|
data/lib/kapellmeister/base.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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
|
-
|
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
|
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.
|
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-
|
11
|
+
date: 2024-08-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-schema
|