mayak 0.0.10 → 0.0.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mayak/http/codec.rb +1 -1
- data/lib/mayak/json/encoder.rb +42 -0
- data/mayak.gemspec +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a36466c4a142e690196d7f63f0adbca6287b6ba1772309948cce797f3dfdf24d
|
4
|
+
data.tar.gz: 176703f0c3c2d1d95f4653bfc6aa65a10eb3c876d823d95882331699166a6de9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee26f758734c1dbc67390edf6ec6227f6bafc337ece3c54b8fd6b17a8b270382fa39527c096796ec053dc3dc8738fe73f7974a2609fbaf872ec0f3c5e8f9df9b
|
7
|
+
data.tar.gz: 02e9e4b30fae37c91e9dfdaed064b081601c43b06321537d81f78fbfcc19a54c5be20f4ac91f78f421aacdfb846626345bde0de750f0e563be10b84f25b30be2
|
data/lib/mayak/http/codec.rb
CHANGED
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# typed: strict
|
3
|
+
|
4
|
+
require "json"
|
5
|
+
|
6
|
+
module Mayak
|
7
|
+
module Json
|
8
|
+
module Encoder
|
9
|
+
extend T::Sig
|
10
|
+
extend T::Generic
|
11
|
+
extend T::Helpers
|
12
|
+
|
13
|
+
abstract!
|
14
|
+
|
15
|
+
include ::Mayak::Encoder
|
16
|
+
|
17
|
+
ResponseEntity = type_member
|
18
|
+
ResponseType = type_member {{ fixed: ::Mayak::Json::JsonType }}
|
19
|
+
|
20
|
+
class FromFunction
|
21
|
+
extend T::Sig
|
22
|
+
extend T::Generic
|
23
|
+
extend T::Helpers
|
24
|
+
|
25
|
+
include ::Mayak::Encoder
|
26
|
+
|
27
|
+
ResponseEntity = type_member
|
28
|
+
ResponseType = type_member {{ fixed: ::Mayak::Json::JsonType }}
|
29
|
+
|
30
|
+
sig { params(function: T.proc.params(response: ResponseEntity).returns(ResponseType)).void }
|
31
|
+
def initialize(&function)
|
32
|
+
@function = T.let(function, T.proc.params(response: ResponseEntity).returns(ResponseType))
|
33
|
+
end
|
34
|
+
|
35
|
+
sig { override.params(entity: ResponseEntity).returns(ResponseType) }
|
36
|
+
def encode(entity)
|
37
|
+
@function.call(entity)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/mayak.gemspec
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "mayak"
|
7
|
-
spec.version = "0.0.
|
7
|
+
spec.version = "0.0.11"
|
8
8
|
spec.summary = "Set of fully typed utility classes and interfaces integrated with Sorbet."
|
9
9
|
spec.description = spec.summary
|
10
10
|
spec.authors = ["Daniil Bober"]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mayak
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniil Bober
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-05-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sorbet-runtime
|
@@ -122,6 +122,7 @@ files:
|
|
122
122
|
- lib/mayak/http/response.rb
|
123
123
|
- lib/mayak/http/verb.rb
|
124
124
|
- lib/mayak/json.rb
|
125
|
+
- lib/mayak/json/encoder.rb
|
125
126
|
- lib/mayak/monads/README.md
|
126
127
|
- lib/mayak/monads/maybe.rb
|
127
128
|
- lib/mayak/monads/result.rb
|