cdt-utilities 0.3.0 → 0.4.0
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 +4 -4
- data/README.md +40 -8
- data/lib/cdt/utilities.rb +2 -1
- data/lib/cdt/utilities/undefined.rb +15 -0
- data/lib/cdt/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d31994b7b265eb116aae1d4bb165fbc81056f1a6
|
4
|
+
data.tar.gz: 480eae88438f78f20db84371671102a6a0d0526b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: df92b157c9a0aa4c33efc85ddc239b943fc31466fb1507f093cc63b74dcf9d232d7b964d3328182c98664960738abf3291ff4dff48f8faade7d15a87d05e4a9b
|
7
|
+
data.tar.gz: 4f9222d811c11f1d3daac3c0657606ebb20c74791db427c93d185cf5641a838c743c1ba4f28e65eb2a307f610d736b028cf148d91a9bd1138d5e8626df0122db
|
data/README.md
CHANGED
@@ -13,7 +13,7 @@ Some Ruby utilities.
|
|
13
13
|
Add this line to your application's Gemfile:
|
14
14
|
|
15
15
|
```ruby
|
16
|
-
gem 'cdt-utilities', "~> 0.
|
16
|
+
gem 'cdt-utilities', "~> 0.4"
|
17
17
|
```
|
18
18
|
|
19
19
|
And then execute:
|
@@ -81,24 +81,24 @@ require 'cdt/utilities'
|
|
81
81
|
# or if you just want this utility
|
82
82
|
require 'cdt/utilities/if-not-nil'
|
83
83
|
|
84
|
-
CdT.if_nil(nil) {7} # Evaluates to 7
|
85
|
-
CdT.if_nil(42) {7} # Evaluates to 42
|
84
|
+
CdT.if_nil(nil) { 7 } # Evaluates to 7
|
85
|
+
CdT.if_nil(42) { 7 } # Evaluates to 42
|
86
86
|
|
87
87
|
|
88
|
-
CdT.if_not_nil(42) { |object| object + 1} # Evaluates to 43
|
89
|
-
CdT.if_not_nil(nil) { |object| object + 1} # Evaluates to nil
|
88
|
+
CdT.if_not_nil(42) { |object| object + 1 } # Evaluates to 43
|
89
|
+
CdT.if_not_nil(nil) { |object| object + 1 } # Evaluates to nil
|
90
90
|
|
91
91
|
# Evaluates to 43
|
92
92
|
CdT.object 42,
|
93
|
-
if_not_nil: proc { |object| object + 1},
|
93
|
+
if_not_nil: proc { |object| object + 1 },
|
94
94
|
if_nil: proc { 7 }
|
95
95
|
|
96
96
|
CdT.object 42,
|
97
|
-
if_not_nil: proc { |object| object + 1},
|
97
|
+
if_not_nil: proc { |object| object + 1 },
|
98
98
|
|
99
99
|
# Evaluates to 7
|
100
100
|
CdT.object nil,
|
101
|
-
if_not_nil: proc { |object| object + 1},
|
101
|
+
if_not_nil: proc { |object| object + 1 },
|
102
102
|
if_nil: proc { 7 }
|
103
103
|
|
104
104
|
# Evaluates to 42
|
@@ -116,6 +116,38 @@ def customer_name(customer_id)
|
|
116
116
|
end
|
117
117
|
```
|
118
118
|
|
119
|
+
### CdT.undefined
|
120
|
+
|
121
|
+
A singleton object that is identically different from all the other objects.
|
122
|
+
|
123
|
+
Usually `nil` is used as an undefined value. However, sometimes `nil` is a valid value in some contexts, so a different object must be used as an undefined value.
|
124
|
+
|
125
|
+
Examples:
|
126
|
+
|
127
|
+
```ruby
|
128
|
+
require 'cdt/utilities'
|
129
|
+
# or if you just want this utility
|
130
|
+
require 'cdt/utilities/undefined'
|
131
|
+
|
132
|
+
def do_something(value = CdT.undefined)
|
133
|
+
if value == CdT.undefined
|
134
|
+
# ...
|
135
|
+
else
|
136
|
+
# ...
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
# you can also test the undefined value using
|
141
|
+
|
142
|
+
def do_something(value = CdT.undefined)
|
143
|
+
if value.kind_of?(CdT::Undefined)
|
144
|
+
# ...
|
145
|
+
else
|
146
|
+
# ...
|
147
|
+
end
|
148
|
+
end
|
149
|
+
```
|
150
|
+
|
119
151
|
## Running the tests
|
120
152
|
|
121
153
|
```bash
|
data/lib/cdt/utilities.rb
CHANGED
@@ -0,0 +1,15 @@
|
|
1
|
+
module CdT
|
2
|
+
class Undefined
|
3
|
+
end
|
4
|
+
|
5
|
+
# Do not use lazy initialization with ||= to avoid race conditions
|
6
|
+
def self.undefined()
|
7
|
+
@undefined
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.set_undefined(object)
|
11
|
+
@undefined = object
|
12
|
+
end
|
13
|
+
|
14
|
+
set_undefined(CdT::Undefined.new)
|
15
|
+
end
|
data/lib/cdt/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cdt-utilities
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Rubi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-04-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -58,6 +58,7 @@ files:
|
|
58
58
|
- lib/cdt/utilities/bind.rb
|
59
59
|
- lib/cdt/utilities/if-not-nil.rb
|
60
60
|
- lib/cdt/utilities/subclass-responsibility.rb
|
61
|
+
- lib/cdt/utilities/undefined.rb
|
61
62
|
- lib/cdt/version.rb
|
62
63
|
homepage: https://github.com/cabeza-de-termo/ruby-utilities
|
63
64
|
licenses:
|
@@ -79,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
79
80
|
version: '0'
|
80
81
|
requirements: []
|
81
82
|
rubyforge_project:
|
82
|
-
rubygems_version: 2.
|
83
|
+
rubygems_version: 2.6.3
|
83
84
|
signing_key:
|
84
85
|
specification_version: 4
|
85
86
|
summary: Ruby utilities. No monkey patching if possible.
|