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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e44648baaa78861745c2730ebef1931d8b410fac5e4b3587ee25e190e25ade21
4
- data.tar.gz: 6129222d4c612aadb0d2fe310fd5014491df2b83728b7dfc8884944473236dd1
3
+ metadata.gz: a36466c4a142e690196d7f63f0adbca6287b6ba1772309948cce797f3dfdf24d
4
+ data.tar.gz: 176703f0c3c2d1d95f4653bfc6aa65a10eb3c876d823d95882331699166a6de9
5
5
  SHA512:
6
- metadata.gz: 453b3ca86ce029c06012b3505dba39726ffb693d6755e7e173388b4f010b18a8836761005c1e1f441c6ff846205375776baa1a3f036bc44d9ae948bdd76adf17
7
- data.tar.gz: 94d61ec3b3b74471b68a14f077293496da87f1438d2cc4527746fee78452104ee98d0be4d4f341fc555629a0456d735637842e9d9ab62e8dd52da4dd49125052
6
+ metadata.gz: ee26f758734c1dbc67390edf6ec6227f6bafc337ece3c54b8fd6b17a8b270382fa39527c096796ec053dc3dc8738fe73f7974a2609fbaf872ec0f3c5e8f9df9b
7
+ data.tar.gz: 02e9e4b30fae37c91e9dfdaed064b081601c43b06321537d81f78fbfcc19a54c5be20f4ac91f78f421aacdfb846626345bde0de750f0e563be10b84f25b30be2
@@ -4,7 +4,7 @@
4
4
  require_relative 'encoder'
5
5
  require_relative 'decoder'
6
6
 
7
- module Core
7
+ module Mayak
8
8
  module Http
9
9
  module Codec
10
10
  extend T::Sig
@@ -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.10"
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.10
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-04-27 00:00:00.000000000 Z
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