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.
@@ -1,10 +1,12 @@
1
1
  class Integer
2
- # Returns a string with the ordinal form of a given integer.
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,3 @@
1
+ class Object
2
+ alias_method :is_an?, :is_a?
3
+ end
@@ -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 }
@@ -1,4 +1,4 @@
1
1
  module Nutella
2
2
  # The current version of Nutella.
3
- VERSION = "0.6"
3
+ VERSION = "0.7"
4
4
  end
@@ -8,7 +8,7 @@ describe Integer do
8
8
  end
9
9
 
10
10
  describe "#ordinalize" do
11
- it "should return the cardinal form of a given integer" do
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.6'
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: 3508017811840001667
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