nutella 0.6 → 0.7
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/lib/nutella/core_ext/integer/format.rb +3 -1
- data/lib/nutella/core_ext/object/aliases.rb +3 -0
- data/lib/nutella/core_ext/object/blank.rb +42 -0
- data/lib/nutella/core_ext/object.rb +1 -0
- data/lib/nutella/version.rb +1 -1
- data/spec/nutella/core_ext/integer_spec.rb +1 -1
- data/spec/nutella/core_ext/object_spec.rb +74 -0
- metadata +7 -2
@@ -1,10 +1,12 @@
|
|
1
1
|
class Integer
|
2
|
-
# Returns a string with the ordinal form of
|
2
|
+
# Returns a string with the ordinal form of the integer.
|
3
3
|
#
|
4
4
|
# 1.ordinalize # => "1st"
|
5
5
|
# 2.ordinalize # => "2nd"
|
6
6
|
# 9.ordinalize # => "9th"
|
7
7
|
# 43.ordinalize # => "43rd"
|
8
|
+
#
|
9
|
+
# @return [String] the ordinal form of the integer
|
8
10
|
def ordinalize
|
9
11
|
suffixes = { 1 => "st", 2 => "nd", 3 => "rd" }
|
10
12
|
|
@@ -0,0 +1,42 @@
|
|
1
|
+
class Object
|
2
|
+
# Returns true if the object is false, empty, or a whitespace string.
|
3
|
+
#
|
4
|
+
# nil.blank? # => true
|
5
|
+
# false.blank? # => true
|
6
|
+
# 4.blank? # => false
|
7
|
+
#
|
8
|
+
# @example Compare with and without usage of Object#blank?
|
9
|
+
# # Without:
|
10
|
+
# if str.nil? || str.empty?
|
11
|
+
# # With:
|
12
|
+
# if str.blank?
|
13
|
+
#
|
14
|
+
# @return [Boolean] whether or not the object is blank
|
15
|
+
def blank?
|
16
|
+
respond_to?(:empty?) ? empty? : !self
|
17
|
+
end
|
18
|
+
|
19
|
+
# The inverse of Object#blank?.
|
20
|
+
#
|
21
|
+
# @return [Boolean] whether or not the object is not blank
|
22
|
+
def present?
|
23
|
+
!blank?
|
24
|
+
end
|
25
|
+
|
26
|
+
# Returns the object if it is present, returns <tt>nil</tt> if the object is
|
27
|
+
# blank.
|
28
|
+
#
|
29
|
+
# "str".presence # => "str"
|
30
|
+
# "".presence # => nil
|
31
|
+
#
|
32
|
+
# @return [Object, NilClass] the object if present, otherwise nil
|
33
|
+
def presence
|
34
|
+
self if present?
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
class String #:nodoc:
|
39
|
+
def blank?
|
40
|
+
self !~ /[^\s]/
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
Dir[File.expand_path("../object/**/*.rb", __FILE__)].each { |f| require f }
|
data/lib/nutella/version.rb
CHANGED
@@ -8,7 +8,7 @@ describe Integer do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
describe "#ordinalize" do
|
11
|
-
it "should return the
|
11
|
+
it "should return the ordinal form of the integer" do
|
12
12
|
NUMBER_FORMATS.each do |cardinal, ordinal|
|
13
13
|
cardinal.ordinalize.should == ordinal
|
14
14
|
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "nutella/core_ext/object"
|
3
|
+
|
4
|
+
describe Object do
|
5
|
+
describe "aliases" do
|
6
|
+
test_alias Object, :is_an?, :is_a?
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "#blank?" do
|
10
|
+
it "should be blank when nil" do
|
11
|
+
nil.blank?.should be_true
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should be blank when false" do
|
15
|
+
false.blank?.should be_true
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should not be blank when true" do
|
19
|
+
true.blank?.should be_false
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should not be blank when numeric" do
|
23
|
+
[0, 1].each { |n| n.blank?.should be_false }
|
24
|
+
end
|
25
|
+
|
26
|
+
context "when a string" do
|
27
|
+
it "should be blank if the string is empty" do
|
28
|
+
"".blank?.should be_true
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should be blank if only whitespace" do
|
32
|
+
[" ", "\n \t"].each { |str| str.blank?.should be_true }
|
33
|
+
" something here ".blank?.should be_false
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should not be blank if the string has content" do
|
37
|
+
"string".blank?.should be_false
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context "when a collection" do
|
42
|
+
it "should be blank if the collection is empty" do
|
43
|
+
[[], {}].each { |collection| collection.blank?.should be_true }
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should not be blank if there are elements in the collection" do
|
47
|
+
[[1, 2, 3], { 1 => 2, 3 => 4 }].each do |collection|
|
48
|
+
collection.blank?.should be_false
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe "#present?" do
|
55
|
+
it "should be the inverse of #blank?" do
|
56
|
+
[0, 1].each { |n| n.present?.should be_true }
|
57
|
+
[[], {}].each { |collection| collection.present?.should be_false }
|
58
|
+
["", " "].each { |str| str.present?.should be_false }
|
59
|
+
["str", " str "].each { |str| str.present?.should be_true }
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe "#presence" do
|
64
|
+
it "should return the object if the object is present" do
|
65
|
+
1.presence.should == 1
|
66
|
+
"str".presence.should == "str"
|
67
|
+
end
|
68
|
+
|
69
|
+
it "should return nil if the object is not present" do
|
70
|
+
"".presence.should be_nil
|
71
|
+
false.presence.should be_nil
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nutella
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.7'
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -118,13 +118,17 @@ files:
|
|
118
118
|
- lib/nutella/input.rb
|
119
119
|
- lib/nutella/core_ext/integer/multiples.rb
|
120
120
|
- lib/nutella/core_ext/integer/format.rb
|
121
|
+
- lib/nutella/core_ext/object.rb
|
121
122
|
- lib/nutella/core_ext/string.rb
|
122
123
|
- lib/nutella/core_ext/integer.rb
|
123
124
|
- lib/nutella/core_ext/hash.rb
|
125
|
+
- lib/nutella/core_ext/object/blank.rb
|
126
|
+
- lib/nutella/core_ext/object/aliases.rb
|
124
127
|
- lib/nutella/core_ext/enumerable.rb
|
125
128
|
- lib/nutella/core_ext.rb
|
126
129
|
- spec/support/alias.rb
|
127
130
|
- spec/support/number_formats.rb
|
131
|
+
- spec/nutella/core_ext/object_spec.rb
|
128
132
|
- spec/nutella/core_ext/hash_spec.rb
|
129
133
|
- spec/nutella/core_ext/enumerable_spec.rb
|
130
134
|
- spec/nutella/core_ext/integer_spec.rb
|
@@ -156,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
156
160
|
version: '0'
|
157
161
|
segments:
|
158
162
|
- 0
|
159
|
-
hash:
|
163
|
+
hash: -3181334132306800521
|
160
164
|
requirements: []
|
161
165
|
rubyforge_project:
|
162
166
|
rubygems_version: 1.8.24
|
@@ -166,6 +170,7 @@ summary: Spread some Nutella on Ruby to sweeten up its functionality.
|
|
166
170
|
test_files:
|
167
171
|
- spec/support/alias.rb
|
168
172
|
- spec/support/number_formats.rb
|
173
|
+
- spec/nutella/core_ext/object_spec.rb
|
169
174
|
- spec/nutella/core_ext/hash_spec.rb
|
170
175
|
- spec/nutella/core_ext/enumerable_spec.rb
|
171
176
|
- spec/nutella/core_ext/integer_spec.rb
|