m_is_for_monad 0.1.1 → 0.1.2

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/m/version.rb +1 -1
  3. data/lib/m.rb +18 -0
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 246bdb7b2ccb4d5734c8be16ee95599e648259a65dc832c4d08517942cd3ebf7
4
- data.tar.gz: 6c75d4848b1f9cdb837f35f933186a859026db0ff7015f2cf4092f95ed60d391
3
+ metadata.gz: 6c3245c92b452b1265715eaea53ac89ea0f6d551641fe8972fb39e934cbbb7ba
4
+ data.tar.gz: eb26b51db9078a741e815feb5f1cd9e1e8125985dfe2e91f090bee90fbde176a
5
5
  SHA512:
6
- metadata.gz: c62f422ea8a12b6df605075c037dee2a65e7af83b1ef35edf27ae28bec1b1f056fdc700272f8b6c5a0827b8f9a3cc0c8a8ea1bcf96f598790046c1e8062498bc
7
- data.tar.gz: f841e582364b4cdc7a549d4e84a6917082d79431534164a1619c83d40b9bf6e73e7b90d4f14d5a67e04753c8505fe33ab469cc6aa39b0faa18195e58a6039bae
6
+ metadata.gz: 4fd2396f6d03d81214cf1389924b6b6d16cf26685476f6f7a1ee204351164fdd1fecd66bddd3a40c73b6ee679d58de348ac84c0803c0e640ff5be27cf6d1a186
7
+ data.tar.gz: 37c18985ee6b0a254aa36eaab7bc5218ef9e533c5e3112f5ae2748602bceb9bae45126eddb904b2f509196378e1b575254fa18a013f7251d96aa35453cdd1262
data/lib/m/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module M
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.2"
5
5
  end
data/lib/m.rb CHANGED
@@ -8,6 +8,18 @@ require 'dry/monads/all'
8
8
  # So it expands monad methods in module functions and also includes all the monad constructors in the single place.
9
9
  module M
10
10
  include Dry::Monads
11
+ include List::Mixin
12
+
13
+ class << List
14
+ # @return [Proc]
15
+ def to_proc
16
+ @to_proc ||= method(:coerce).to_proc
17
+ end
18
+ end
19
+
20
+ # Prepared {Dry::Monads::Do} mixin for `call` instance method.
21
+ DoForCall ||=
22
+ Do.for(:call)
11
23
 
12
24
  # Creates a module that has two methods: `Success` and `Failure`.
13
25
  # `Success` is identical to {Result::Mixin::Constructors#Success} and Failure
@@ -46,6 +58,12 @@ module M
46
58
  Dry::Monads::Result::Fixed[error, **options]
47
59
  end
48
60
 
61
+ # @see Dry::Monads::Do.call
62
+ define_method :Do, Do.method(:call)
63
+
64
+ # @see Dry::Monads::Do.bind
65
+ define_method :bind, Do.method(:bind)
66
+
49
67
  # @!scope class
50
68
 
51
69
  # @!method self.Try(*exceptions, &f)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: m_is_for_monad
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Semenov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-12-02 00:00:00.000000000 Z
11
+ date: 2025-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-monads
@@ -63,7 +63,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
63
63
  - !ruby/object:Gem::Version
64
64
  version: '0'
65
65
  requirements: []
66
- rubygems_version: 3.0.3
66
+ rubygems_version: 3.4.5
67
67
  signing_key:
68
68
  specification_version: 4
69
69
  summary: M is for Monad