epitools 0.4.17 → 0.4.18
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.
- data/VERSION +1 -1
- data/epitools.gemspec +2 -2
- data/lib/epitools/basetypes.rb +29 -10
- data/spec/basetypes_spec.rb +24 -0
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.18
|
data/epitools.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{epitools}
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.18"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["epitron"]
|
12
|
-
s.date = %q{2011-03-
|
12
|
+
s.date = %q{2011-03-25}
|
13
13
|
s.description = %q{Miscellaneous utility libraries to make my life easier.}
|
14
14
|
s.email = %q{chris@ill-logic.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/epitools/basetypes.rb
CHANGED
@@ -16,8 +16,23 @@ unless defined? Enum
|
|
16
16
|
end
|
17
17
|
|
18
18
|
class Object
|
19
|
+
#
|
19
20
|
# Default "integer?" behaviour.
|
21
|
+
#
|
20
22
|
def integer?; false; end
|
23
|
+
|
24
|
+
#
|
25
|
+
# `truthy?` means `not blank?`
|
26
|
+
#
|
27
|
+
def truthy?; not blank?; end
|
28
|
+
end
|
29
|
+
|
30
|
+
class TrueClass
|
31
|
+
def truthy?; true; end
|
32
|
+
end
|
33
|
+
|
34
|
+
class FalseClass
|
35
|
+
def truthy?; false; end
|
21
36
|
end
|
22
37
|
|
23
38
|
class Numeric
|
@@ -42,6 +57,13 @@ class NilClass
|
|
42
57
|
def blank?; true; end
|
43
58
|
end
|
44
59
|
|
60
|
+
class Symbol
|
61
|
+
#
|
62
|
+
# Symbols are never blank.
|
63
|
+
#
|
64
|
+
def blank?; false; end
|
65
|
+
end
|
66
|
+
|
45
67
|
class String
|
46
68
|
|
47
69
|
#
|
@@ -105,6 +127,9 @@ class Integer
|
|
105
127
|
#
|
106
128
|
def blank?; self == 0; end
|
107
129
|
|
130
|
+
#
|
131
|
+
# Convert the number into a hexadecimal string representation.
|
132
|
+
#
|
108
133
|
def to_hex
|
109
134
|
"%0.2x" % self
|
110
135
|
end
|
@@ -152,11 +177,6 @@ end
|
|
152
177
|
|
153
178
|
class Array
|
154
179
|
|
155
|
-
#
|
156
|
-
# 'true' if the Array is empty
|
157
|
-
#
|
158
|
-
def blank?; not self.any?; end
|
159
|
-
|
160
180
|
#
|
161
181
|
# flatten.compact.uniq
|
162
182
|
#
|
@@ -210,9 +230,9 @@ module Enumerable
|
|
210
230
|
# 'true' if the Enumerable has no elements
|
211
231
|
#
|
212
232
|
def blank?
|
213
|
-
not
|
233
|
+
not any?
|
214
234
|
end
|
215
|
-
|
235
|
+
|
216
236
|
#
|
217
237
|
# Split this enumerable into an array of pieces given some
|
218
238
|
# boundary condition.
|
@@ -481,9 +501,9 @@ class Hash
|
|
481
501
|
# 'true' if the Hash has no entries
|
482
502
|
#
|
483
503
|
def blank?
|
484
|
-
not
|
504
|
+
not any?
|
485
505
|
end
|
486
|
-
|
506
|
+
|
487
507
|
#
|
488
508
|
# Runs "remove_blank_values" on self.
|
489
509
|
#
|
@@ -635,7 +655,6 @@ class NotWrapper < BlankSlate # :nodoc:
|
|
635
655
|
end
|
636
656
|
end
|
637
657
|
|
638
|
-
|
639
658
|
class Object
|
640
659
|
|
641
660
|
#
|
data/spec/basetypes_spec.rb
CHANGED
@@ -246,3 +246,27 @@ describe BlankSlate do
|
|
246
246
|
|
247
247
|
end
|
248
248
|
|
249
|
+
|
250
|
+
describe "truthiness" do
|
251
|
+
|
252
|
+
it "is truthy!" do
|
253
|
+
{
|
254
|
+
|
255
|
+
# truthy things
|
256
|
+
true => [
|
257
|
+
"asdf", 1, 1.7, :blah, true, [1,2,3], Enumerator.new([1,2,3], :each),
|
258
|
+
1938389127239847129803741980237498012374,
|
259
|
+
],
|
260
|
+
|
261
|
+
# untruthy things
|
262
|
+
false => [
|
263
|
+
"", " ", 0, 0.0, false, nil, [], Enumerator.new([], :each),
|
264
|
+
]
|
265
|
+
|
266
|
+
}.each do |truthiness, objs|
|
267
|
+
objs.each { |obj| obj.truthy?.should == truthiness }
|
268
|
+
end
|
269
|
+
|
270
|
+
end
|
271
|
+
|
272
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: epitools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.4.
|
5
|
+
version: 0.4.18
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- epitron
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-03-
|
13
|
+
date: 2011-03-25 00:00:00 -04:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|