m_is_for_monad 0.1.1 → 0.1.2

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.
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