lushka 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/.rspec +3 -0
- data/.rubocop.yml +13 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +14 -0
- data/Gemfile.lock +135 -0
- data/LICENSE.txt +3 -0
- data/README.md +63 -0
- data/Rakefile +39 -0
- data/assets/images/lushka.png +0 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/config.ru +30 -0
- data/exe/lushka +7 -0
- data/ext/lushka/extconf.rb +5 -0
- data/ext/lushka/lushka.c +9 -0
- data/ext/lushka/lushka.h +6 -0
- data/falcon.rb +12 -0
- data/lib/lushka/pods.rb +44 -0
- data/lib/lushka/version.rb +5 -0
- data/lib/lushka.rb +18 -0
- data/lushka.gemspec +44 -0
- metadata +196 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: a7410189eae2d59190f9b4c445ae0826fffc215a9df7a029348b8974ff3a8c02
|
|
4
|
+
data.tar.gz: c16a9158d474d06e8e44aacde740b60d7ffdb6a11848ce4c20749257c7449992
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 8eb78b7e786b9d63e241c2b67e51e6f2b6802617adb62fa5aed3a2f5a428d46e83f5b1474e4f1320df04bf1416d577e50025e353cd85cf22d4618cb929979c30
|
|
7
|
+
data.tar.gz: 502d26540dcc493a36b04638db0cedcc09d5b52e0d2cca23c0bd82f09b1f50c1439dd1436c4c5586af75ac8376406229e4835e333fa40463d7291d0822762ff8
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.rubocop.yml
ADDED
data/CHANGELOG.md
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
lushka (0.1.0)
|
|
5
|
+
async (~> 1.30.1)
|
|
6
|
+
async-http (~> 0.59.2)
|
|
7
|
+
async-io (~> 1.34.1)
|
|
8
|
+
async-sequel (~> 0.1.0)
|
|
9
|
+
falcon (~> 0.42.3)
|
|
10
|
+
logger (>= 1.5.3)
|
|
11
|
+
rack (~> 3.0.4.2)
|
|
12
|
+
rack-unreloader (>= 1.8)
|
|
13
|
+
rake (~> 13.0)
|
|
14
|
+
|
|
15
|
+
GEM
|
|
16
|
+
remote: https://rubygems.org/
|
|
17
|
+
specs:
|
|
18
|
+
ast (2.4.2)
|
|
19
|
+
async (1.30.3)
|
|
20
|
+
console (~> 1.10)
|
|
21
|
+
nio4r (~> 2.3)
|
|
22
|
+
timers (~> 4.1)
|
|
23
|
+
async-container (0.16.12)
|
|
24
|
+
async
|
|
25
|
+
async-io
|
|
26
|
+
async-http (0.59.5)
|
|
27
|
+
async (>= 1.25)
|
|
28
|
+
async-io (>= 1.28)
|
|
29
|
+
async-pool (>= 0.2)
|
|
30
|
+
protocol-http (~> 0.23)
|
|
31
|
+
protocol-http1 (~> 0.14.0)
|
|
32
|
+
protocol-http2 (~> 0.14.0)
|
|
33
|
+
traces (>= 0.8.0)
|
|
34
|
+
async-http-cache (0.4.3)
|
|
35
|
+
async-http (~> 0.56)
|
|
36
|
+
async-io (1.34.3)
|
|
37
|
+
async
|
|
38
|
+
async-pool (0.3.12)
|
|
39
|
+
async (>= 1.25)
|
|
40
|
+
async-sequel (0.1.0)
|
|
41
|
+
sequel
|
|
42
|
+
build-environment (1.13.0)
|
|
43
|
+
console (1.16.2)
|
|
44
|
+
fiber-local
|
|
45
|
+
diff-lcs (1.5.0)
|
|
46
|
+
falcon (0.42.3)
|
|
47
|
+
async
|
|
48
|
+
async-container (~> 0.16.0)
|
|
49
|
+
async-http (~> 0.57)
|
|
50
|
+
async-http-cache (~> 0.4.0)
|
|
51
|
+
async-io (~> 1.22)
|
|
52
|
+
build-environment (~> 1.13)
|
|
53
|
+
bundler
|
|
54
|
+
localhost (~> 1.1)
|
|
55
|
+
openssl (~> 3.0)
|
|
56
|
+
process-metrics (~> 0.2.0)
|
|
57
|
+
protocol-rack (~> 0.1)
|
|
58
|
+
samovar (~> 2.1)
|
|
59
|
+
fiber-local (1.0.0)
|
|
60
|
+
json (2.6.3)
|
|
61
|
+
localhost (1.1.10)
|
|
62
|
+
logger (1.5.3)
|
|
63
|
+
mapping (1.1.1)
|
|
64
|
+
nio4r (2.5.8)
|
|
65
|
+
openssl (3.1.0)
|
|
66
|
+
parallel (1.22.1)
|
|
67
|
+
parser (3.2.1.0)
|
|
68
|
+
ast (~> 2.4.1)
|
|
69
|
+
process-metrics (0.2.1)
|
|
70
|
+
console (~> 1.8)
|
|
71
|
+
samovar (~> 2.1)
|
|
72
|
+
protocol-hpack (1.4.2)
|
|
73
|
+
protocol-http (0.24.1)
|
|
74
|
+
protocol-http1 (0.14.6)
|
|
75
|
+
protocol-http (~> 0.22)
|
|
76
|
+
protocol-http2 (0.14.2)
|
|
77
|
+
protocol-hpack (~> 1.4)
|
|
78
|
+
protocol-http (~> 0.18)
|
|
79
|
+
protocol-rack (0.2.4)
|
|
80
|
+
protocol-http (~> 0.23)
|
|
81
|
+
rack (>= 1.0)
|
|
82
|
+
rack (3.0.4.2)
|
|
83
|
+
rack-unreloader (2.1.0)
|
|
84
|
+
rainbow (3.1.1)
|
|
85
|
+
rake (13.0.6)
|
|
86
|
+
rake-compiler (1.2.1)
|
|
87
|
+
rake
|
|
88
|
+
regexp_parser (2.7.0)
|
|
89
|
+
rexml (3.2.5)
|
|
90
|
+
rspec (3.12.0)
|
|
91
|
+
rspec-core (~> 3.12.0)
|
|
92
|
+
rspec-expectations (~> 3.12.0)
|
|
93
|
+
rspec-mocks (~> 3.12.0)
|
|
94
|
+
rspec-core (3.12.1)
|
|
95
|
+
rspec-support (~> 3.12.0)
|
|
96
|
+
rspec-expectations (3.12.2)
|
|
97
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
98
|
+
rspec-support (~> 3.12.0)
|
|
99
|
+
rspec-mocks (3.12.3)
|
|
100
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
101
|
+
rspec-support (~> 3.12.0)
|
|
102
|
+
rspec-support (3.12.0)
|
|
103
|
+
rubocop (1.47.0)
|
|
104
|
+
json (~> 2.3)
|
|
105
|
+
parallel (~> 1.10)
|
|
106
|
+
parser (>= 3.2.0.0)
|
|
107
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
108
|
+
regexp_parser (>= 1.8, < 3.0)
|
|
109
|
+
rexml (>= 3.2.5, < 4.0)
|
|
110
|
+
rubocop-ast (>= 1.26.0, < 2.0)
|
|
111
|
+
ruby-progressbar (~> 1.7)
|
|
112
|
+
unicode-display_width (>= 2.4.0, < 3.0)
|
|
113
|
+
rubocop-ast (1.27.0)
|
|
114
|
+
parser (>= 3.2.1.0)
|
|
115
|
+
ruby-progressbar (1.12.0)
|
|
116
|
+
samovar (2.1.4)
|
|
117
|
+
console (~> 1.0)
|
|
118
|
+
mapping (~> 1.0)
|
|
119
|
+
sequel (5.66.0)
|
|
120
|
+
timers (4.3.5)
|
|
121
|
+
traces (0.8.0)
|
|
122
|
+
unicode-display_width (2.4.2)
|
|
123
|
+
|
|
124
|
+
PLATFORMS
|
|
125
|
+
x86_64-darwin-19
|
|
126
|
+
|
|
127
|
+
DEPENDENCIES
|
|
128
|
+
lushka!
|
|
129
|
+
rake (~> 13.0)
|
|
130
|
+
rake-compiler
|
|
131
|
+
rspec (~> 3.0)
|
|
132
|
+
rubocop (~> 1.7)
|
|
133
|
+
|
|
134
|
+
BUNDLED WITH
|
|
135
|
+
2.2.22
|
data/LICENSE.txt
ADDED
data/README.md
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Lushka
|
|
2
|
+
Лушка — маленький сервер, позволяющий быстро конфигурировать и запускать различные заглушки для тестирования своих сервисов.
|
|
3
|
+
|
|
4
|
+

|
|
5
|
+
|
|
6
|
+
## Установка
|
|
7
|
+
|
|
8
|
+
Добавить строку ниже в свой Gemfile:
|
|
9
|
+
|
|
10
|
+
```ruby
|
|
11
|
+
gem 'lushka'
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Потом выполнить:
|
|
15
|
+
|
|
16
|
+
$ bundle install
|
|
17
|
+
|
|
18
|
+
Или установить просто как Gem (предпочтительно):
|
|
19
|
+
|
|
20
|
+
$ gem install lushka
|
|
21
|
+
|
|
22
|
+
## Использование
|
|
23
|
+
|
|
24
|
+
### Конфигурирование
|
|
25
|
+
В папке `zag` создайте структуру папок, соответствующую желаемой заглушке, в папках создайте файл `response.json` c JSON-ответом. Например:
|
|
26
|
+
```
|
|
27
|
+
lushka
|
|
28
|
+
│ zag.yaml
|
|
29
|
+
│
|
|
30
|
+
└─zag
|
|
31
|
+
│ └─countries
|
|
32
|
+
│ │ │ zag.yaml
|
|
33
|
+
│ │ │ response.json
|
|
34
|
+
│ │ └─russia
|
|
35
|
+
│ │ │ zag.yaml
|
|
36
|
+
│ │ └─response.json
|
|
37
|
+
```
|
|
38
|
+
Опционально в папке рядом с ответом можно размещать файл `zag.yaml` с дополнительными настройками конкретного узла.
|
|
39
|
+
|
|
40
|
+
Файлов `response.yaml` может быть несколько, в них можно опционально добавлять указание метода и код ошибки `response_[:method]_[:code].yaml`, например:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
response_post_200.yaml
|
|
44
|
+
response_delete.yaml
|
|
45
|
+
response_400.yaml
|
|
46
|
+
...
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Запустить сервер
|
|
50
|
+
$ lushka
|
|
51
|
+
|
|
52
|
+
### Выполнение запросов
|
|
53
|
+
Запросы к серверу отправляются по адресам, соответствующим структуре папок внутри `zag`. По-умолчанию будет отдан ответ без кода, либо с кодом 200, если он есть.
|
|
54
|
+
|
|
55
|
+
Для форсирования получения ответа с определенным кодом необходимо в заголовке передать его значение:
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
Expect-Response: 200
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Лицензирование
|
|
62
|
+
|
|
63
|
+
Lushka распространяется под открытой лицензией [CAPAAL](LICENSE.txt).
|
data/Rakefile
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "bundler/gem_tasks"
|
|
4
|
+
require "rspec/core/rake_task"
|
|
5
|
+
|
|
6
|
+
RSpec::Core::RakeTask.new(:spec)
|
|
7
|
+
|
|
8
|
+
require "rubocop/rake_task"
|
|
9
|
+
|
|
10
|
+
RuboCop::RakeTask.new
|
|
11
|
+
|
|
12
|
+
require "rake/extensiontask"
|
|
13
|
+
|
|
14
|
+
task build: :compile
|
|
15
|
+
|
|
16
|
+
Rake::ExtensionTask.new("lushka") do |ext|
|
|
17
|
+
ext.lib_dir = "lib/lushka"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
task default: %i[clobber compile spec clean install] # rubocop
|
|
21
|
+
|
|
22
|
+
GEM_NAME = "lushka"
|
|
23
|
+
GEM_VERSION = "0.1.0"
|
|
24
|
+
|
|
25
|
+
task :build do
|
|
26
|
+
system "gem build #{GEM_NAME}.gemspec"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
task install: :build do
|
|
30
|
+
system "gem install #{GEM_NAME}-#{GEM_VERSION}.gem"
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
task publish: :build do
|
|
34
|
+
system "gem push #{GEM_NAME}-#{GEM_VERSION}.gem"
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
task :clean do
|
|
38
|
+
system "rm *.gem"
|
|
39
|
+
end
|
|
Binary file
|
data/bin/console
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
require "bundler/setup"
|
|
5
|
+
require "lushka"
|
|
6
|
+
|
|
7
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
|
8
|
+
# with your gem easier. You can also use a different console, if you like.
|
|
9
|
+
|
|
10
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
|
11
|
+
# require "pry"
|
|
12
|
+
# Pry.start
|
|
13
|
+
|
|
14
|
+
require "irb"
|
|
15
|
+
IRB.start(__FILE__)
|
data/bin/setup
ADDED
data/config.ru
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# This file is used by Rack-based servers to start the application.
|
|
4
|
+
# use Rack::Deflater
|
|
5
|
+
|
|
6
|
+
require "bundler/setup"
|
|
7
|
+
require "lushka"
|
|
8
|
+
|
|
9
|
+
Console.logger.info "Lushka loaded!"
|
|
10
|
+
|
|
11
|
+
lushka = Rack::Builder.new do
|
|
12
|
+
|
|
13
|
+
# use Rack::ShowExceptions
|
|
14
|
+
use Rack::Logger
|
|
15
|
+
|
|
16
|
+
map "/audit" do
|
|
17
|
+
# use Rack::Lint
|
|
18
|
+
run Lushka::Pods.freeze.new()
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
map "/ping" do
|
|
22
|
+
use Rack::Lint
|
|
23
|
+
run do |env|
|
|
24
|
+
[200, {}, ["PONG!"]]
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
run lushka
|
data/exe/lushka
ADDED
data/ext/lushka/lushka.c
ADDED
data/ext/lushka/lushka.h
ADDED
data/falcon.rb
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env -S falcon host
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
load :rack, :lets_encrypt_tls, :supervisor
|
|
5
|
+
|
|
6
|
+
hostname = File.basename(__dir__)
|
|
7
|
+
rack hostname, :lets_encrypt_tls do
|
|
8
|
+
cache true
|
|
9
|
+
endpoint Async::HTTP::Endpoint.parse("http://localhost:3500").with(protocol: Async::HTTP::Protocol::HTTP1)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
supervisor
|
data/lib/lushka/pods.rb
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require "securerandom"
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
module Lushka
|
|
6
|
+
|
|
7
|
+
# Sources for data extractions class
|
|
8
|
+
class Pods
|
|
9
|
+
|
|
10
|
+
def initialize; end
|
|
11
|
+
|
|
12
|
+
def call(env)
|
|
13
|
+
query = Rack::Request.new(env)
|
|
14
|
+
if query.post?
|
|
15
|
+
request = JSON.parse(query.body.read)
|
|
16
|
+
response = log_request(request)
|
|
17
|
+
else
|
|
18
|
+
response = show_log
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
body = [response]
|
|
22
|
+
status = 200
|
|
23
|
+
headers = { "content-type" => "application/json" }
|
|
24
|
+
|
|
25
|
+
[status, headers, body]
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def log_request(request)
|
|
29
|
+
uuid = SecureRandom.uuid
|
|
30
|
+
File.open("#{Lushka.logs}/pods.log", "a") do |log_file|
|
|
31
|
+
log_file.puts "Request ##{uuid} — BODY: #{request.to_s}"
|
|
32
|
+
end
|
|
33
|
+
{ request_uuid: uuid }.to_json
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def show_log
|
|
37
|
+
result = []
|
|
38
|
+
File.readlines("#{Lushka.logs}/pods.log").each do |line|
|
|
39
|
+
result.prepend(line)
|
|
40
|
+
end
|
|
41
|
+
result.join(" ")
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
data/lib/lushka.rb
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require "async"
|
|
3
|
+
require "async/http/internet"
|
|
4
|
+
|
|
5
|
+
require_relative "lushka/version"
|
|
6
|
+
require_relative "lushka/pods"
|
|
7
|
+
|
|
8
|
+
module Lushka
|
|
9
|
+
class Error < StandardError; end
|
|
10
|
+
|
|
11
|
+
def self.root
|
|
12
|
+
File.dirname __dir__
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def self.logs
|
|
16
|
+
File.join root, "logs"
|
|
17
|
+
end
|
|
18
|
+
end
|
data/lushka.gemspec
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "lib/lushka/version"
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |spec|
|
|
6
|
+
spec.name = "lushka"
|
|
7
|
+
spec.version = Lushka::VERSION
|
|
8
|
+
spec.authors = ["Panasenkov A."]
|
|
9
|
+
spec.email = ["apanasenkov@capaa.ru"]
|
|
10
|
+
|
|
11
|
+
spec.summary = "Tiny mock-server with simple configuration"
|
|
12
|
+
spec.homepage = "https://lushka.ru"
|
|
13
|
+
spec.licenses = ["Nonstandard"]
|
|
14
|
+
spec.required_ruby_version = ">= 2.4.0"
|
|
15
|
+
|
|
16
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
|
17
|
+
spec.metadata["source_code_uri"] = "https://github.com/capaas/lushka"
|
|
18
|
+
spec.metadata["changelog_uri"] = "https://github.com/capaas/lushka/CHANGELOG.md"
|
|
19
|
+
|
|
20
|
+
# Specify which files should be added to the gem when it is released.
|
|
21
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
22
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
23
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
|
|
24
|
+
end
|
|
25
|
+
spec.bindir = "exe"
|
|
26
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
|
27
|
+
spec.require_paths = ["lib"]
|
|
28
|
+
spec.extensions = ["ext/lushka/extconf.rb"]
|
|
29
|
+
|
|
30
|
+
# Uncomment to register a new dependency of your gem
|
|
31
|
+
spec.add_dependency "rack", "~> 3.0.4.2"
|
|
32
|
+
spec.add_dependency "rack-unreloader", ">= 1.8"
|
|
33
|
+
|
|
34
|
+
spec.add_dependency "async", "~> 1.30.1"
|
|
35
|
+
spec.add_dependency "async-http", "~> 0.59.2"
|
|
36
|
+
spec.add_dependency "async-io", "~> 1.34.1"
|
|
37
|
+
spec.add_dependency "async-sequel", "~> 0.1.0"
|
|
38
|
+
spec.add_dependency "falcon", "~> 0.42.3"
|
|
39
|
+
spec.add_dependency "logger", ">=1.5.3"
|
|
40
|
+
spec.add_dependency "rake", "~> 13.0"
|
|
41
|
+
|
|
42
|
+
# For more information and examples about making a new gem, checkout our
|
|
43
|
+
# guide at: https://bundler.io/guides/creating_gem.html
|
|
44
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: lushka
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Panasenkov A.
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: exe
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2023-03-03 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: rack
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: 3.0.4.2
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: 3.0.4.2
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: rack-unreloader
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '1.8'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '1.8'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: async
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: 1.30.1
|
|
48
|
+
type: :runtime
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: 1.30.1
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: async-http
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: 0.59.2
|
|
62
|
+
type: :runtime
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: 0.59.2
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: async-io
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: 1.34.1
|
|
76
|
+
type: :runtime
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: 1.34.1
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: async-sequel
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - "~>"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: 0.1.0
|
|
90
|
+
type: :runtime
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - "~>"
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: 0.1.0
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: falcon
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - "~>"
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: 0.42.3
|
|
104
|
+
type: :runtime
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - "~>"
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: 0.42.3
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: logger
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - ">="
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: 1.5.3
|
|
118
|
+
type: :runtime
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - ">="
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: 1.5.3
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: rake
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - "~>"
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '13.0'
|
|
132
|
+
type: :runtime
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - "~>"
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '13.0'
|
|
139
|
+
description:
|
|
140
|
+
email:
|
|
141
|
+
- apanasenkov@capaa.ru
|
|
142
|
+
executables:
|
|
143
|
+
- lushka
|
|
144
|
+
extensions:
|
|
145
|
+
- ext/lushka/extconf.rb
|
|
146
|
+
extra_rdoc_files: []
|
|
147
|
+
files:
|
|
148
|
+
- ".gitignore"
|
|
149
|
+
- ".rspec"
|
|
150
|
+
- ".rubocop.yml"
|
|
151
|
+
- CHANGELOG.md
|
|
152
|
+
- Gemfile
|
|
153
|
+
- Gemfile.lock
|
|
154
|
+
- LICENSE.txt
|
|
155
|
+
- README.md
|
|
156
|
+
- Rakefile
|
|
157
|
+
- assets/images/lushka.png
|
|
158
|
+
- bin/console
|
|
159
|
+
- bin/setup
|
|
160
|
+
- config.ru
|
|
161
|
+
- exe/lushka
|
|
162
|
+
- ext/lushka/extconf.rb
|
|
163
|
+
- ext/lushka/lushka.c
|
|
164
|
+
- ext/lushka/lushka.h
|
|
165
|
+
- falcon.rb
|
|
166
|
+
- lib/lushka.rb
|
|
167
|
+
- lib/lushka/pods.rb
|
|
168
|
+
- lib/lushka/version.rb
|
|
169
|
+
- lushka.gemspec
|
|
170
|
+
homepage: https://lushka.ru
|
|
171
|
+
licenses:
|
|
172
|
+
- Nonstandard
|
|
173
|
+
metadata:
|
|
174
|
+
homepage_uri: https://lushka.ru
|
|
175
|
+
source_code_uri: https://github.com/capaas/lushka
|
|
176
|
+
changelog_uri: https://github.com/capaas/lushka/CHANGELOG.md
|
|
177
|
+
post_install_message:
|
|
178
|
+
rdoc_options: []
|
|
179
|
+
require_paths:
|
|
180
|
+
- lib
|
|
181
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
182
|
+
requirements:
|
|
183
|
+
- - ">="
|
|
184
|
+
- !ruby/object:Gem::Version
|
|
185
|
+
version: 2.4.0
|
|
186
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
187
|
+
requirements:
|
|
188
|
+
- - ">="
|
|
189
|
+
- !ruby/object:Gem::Version
|
|
190
|
+
version: '0'
|
|
191
|
+
requirements: []
|
|
192
|
+
rubygems_version: 3.2.22
|
|
193
|
+
signing_key:
|
|
194
|
+
specification_version: 4
|
|
195
|
+
summary: Tiny mock-server with simple configuration
|
|
196
|
+
test_files: []
|