simple_monads 0.1.4 → 1.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 78e5554b51686136830accd22720d81a7f38edf8d427b196d4cfe5feee9d3a15
4
- data.tar.gz: fac5890a466f6532af1a601766738d76098d8236fbe5cc143b3bc290a4cb04a0
3
+ metadata.gz: 867cc1b4a8447431e58c0da67734ec03ed3f2a771adec946eb0e846e7f3334f9
4
+ data.tar.gz: 13cef8004c2d150275b53521e81b8927fe08872b815e79092f0077b645aa4ae4
5
5
  SHA512:
6
- metadata.gz: 7029c2208181904091bba7f2f0c676969e68066eb33a57945997124d746a9df0a20f6b08c17545acd8fb36681d490c2f466f8ee643ea19edb3acae48aa5ffac8
7
- data.tar.gz: ac7b894bc4a75e108aeadb15e193a808ce527d5231a2606797f72bb315b0e6e5119cb504616da00c67e4cac1cf1bfc7c5e4e214b299e9b60f61787fe3eae9c98
6
+ metadata.gz: 7d3cba8776910cc8bf8affffb2bd7640d5785dc0b6240ac42d73554830dee1f2119ecd3184a0b191fa377e4f2cfac72da59ee3b3fb18e30f9736fc987378bc82
7
+ data.tar.gz: 3a505b14fc6db260c8b0fd3b95306f9bbfdb67685d5e8b541fddd1b0a7202128f51ba9500e16c0c4b739b6c152bf8a686490b19b74343683424ba6faf109ddbf
@@ -1,25 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SimpleMonads
4
- # failure object
5
- class FailureObject
4
+ # Base Result monads
5
+ class BaseResult
6
6
  attr_reader :object
7
- alias failure object
8
7
 
9
8
  def initialize(object = nil)
10
9
  @object = object
11
10
  end
12
11
 
13
- def failure?
14
- true
15
- end
16
-
17
- def success?
18
- false
12
+ def success_or(value)
13
+ failure? ? value : success
19
14
  end
20
15
 
21
16
  def inspect
22
- "Failure(#{object})"
17
+ "#{self.class.to_s[14..-7]}(#{object})"
23
18
  end
24
19
  end
25
20
  end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base_result'
4
+
5
+ module SimpleMonads
6
+ # failure object
7
+ class FailureResult < BaseResult
8
+ alias failure object
9
+
10
+ def failure?
11
+ true
12
+ end
13
+
14
+ def success?
15
+ false
16
+ end
17
+ end
18
+ end
@@ -1,15 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative 'base_result'
4
+
3
5
  module SimpleMonads
4
6
  # success object
5
- class SuccessObject
6
- attr_reader :object
7
+ class SuccessResult < BaseResult
7
8
  alias success object
8
9
 
9
- def initialize(object = nil)
10
- @object = object
11
- end
12
-
13
10
  def failure?
14
11
  false
15
12
  end
@@ -17,9 +14,5 @@ module SimpleMonads
17
14
  def success?
18
15
  true
19
16
  end
20
-
21
- def inspect
22
- "Success(#{object})"
23
- end
24
17
  end
25
18
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SimpleMonads
4
- VERSION = '0.1.4'
4
+ # gem version
5
+ VERSION = '1.0.2'
5
6
  end
data/lib/simple_monads.rb CHANGED
@@ -1,15 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'simple_monads/failure_object'
4
- require_relative 'simple_monads/success_object'
3
+ require_relative 'simple_monads/failure_result'
4
+ require_relative 'simple_monads/success_result'
5
5
 
6
6
  # Main module
7
7
  module SimpleMonads
8
8
  def Success(object = nil) # rubocop:disable Naming/MethodName
9
- SuccessObject.new(object)
9
+ SuccessResult.new(object)
10
10
  end
11
11
 
12
12
  def Failure(object = nil) # rubocop:disable Naming/MethodName
13
- FailureObject.new(object)
13
+ FailureResult.new(object)
14
14
  end
15
15
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_monads
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kirill Leonov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-02 00:00:00.000000000 Z
11
+ date: 2024-11-06 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Simple monads without DRY dependencies
14
14
  email: leonov835@yandex.ru
@@ -17,8 +17,9 @@ extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
19
  - lib/simple_monads.rb
20
- - lib/simple_monads/failure_object.rb
21
- - lib/simple_monads/success_object.rb
20
+ - lib/simple_monads/base_result.rb
21
+ - lib/simple_monads/failure_result.rb
22
+ - lib/simple_monads/success_result.rb
22
23
  - lib/simple_monads/version.rb
23
24
  homepage: https://github.com/leonovk/simple_monads
24
25
  licenses:
@@ -42,7 +43,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
42
43
  - !ruby/object:Gem::Version
43
44
  version: '0'
44
45
  requirements: []
45
- rubygems_version: 3.5.16
46
+ rubygems_version: 3.5.22
46
47
  signing_key:
47
48
  specification_version: 4
48
49
  summary: Simple monads