mayak 0.0.13 → 0.0.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/mayak/function.rb +19 -0
  3. data/mayak.gemspec +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c6c4f7f03caf2fb0cacb67575dca900e755c596ba01629b77ef9a3019497fb54
4
- data.tar.gz: 612a525bb6a22ad1a06710efa8f93dead79184d0d6b87966b4cb8fa709068f58
3
+ metadata.gz: 8217e22d103f9b3a253973f90f330d3b69d98320919c85b28a9d05df42c9b901
4
+ data.tar.gz: 89e2f9a86616f036129b0c31b09d864b811067febc4b31191a6d98ef1b332774
5
5
  SHA512:
6
- metadata.gz: 66348f91eb555c9f2056dce09b3a4dfc17e0d626eace68604380c9047e0b592d2cef835291220e2be9e08428b6977d2662a2c2a57cfb04abbb9c32401010ab19
7
- data.tar.gz: d45c494d75ecc2b17fa306972aab09520006330d255773e4c10a75eada180d19ef6ec2784a79cabdbb3287de87e825a35fff831b09b7ff80d25426a602593671
6
+ metadata.gz: e44eddcb1be94600d1501ecfbac8690557c233410ebb5a470e669201a40d564aafe00ea358027fe78887b893dc3b7cc0fb1aaa6be8f02d9d75ea19ac64abed2c
7
+ data.tar.gz: 2238e28cfd575b50f0a2fc6fb360485fd10c2fd754c441493f394bd289f3f38a5b54f13d952fbfa8ef09b85bbed9968f8245500ade2ae405bd5b12b93862e6cf
@@ -18,6 +18,25 @@ module Mayak
18
18
  @blk = T.let(blk, T.proc.params(input: Input).returns(Output))
19
19
  end
20
20
 
21
+ sig {
22
+ type_parameters(
23
+ :Input,
24
+ :Output
25
+ ).params(
26
+ proc: T.proc.params(arg0: T.type_parameter(:Input)).returns(T.type_parameter(:Output))
27
+ ).returns(
28
+ ::Mayak::Function[T.type_parameter(:Input), T.type_parameter(:Output)]
29
+ )
30
+ }
31
+ def self.from_proc(proc)
32
+ ::Mayak::Function[T.type_parameter(:Input), T.type_parameter(:Output)].new { |input| proc.call(input) }
33
+ end
34
+
35
+ sig { returns(T.proc.params(arg0: Input).returns(Output)) }
36
+ def to_proc
37
+ -> (input) { call(input) }
38
+ end
39
+
21
40
  sig { params(input: Input).returns(Output) }
22
41
  def call(input)
23
42
  blk.call(input)
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.13"
7
+ spec.version = "0.0.15"
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,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mayak
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.13
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniil Bober