gci-class-extensions 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/README ADDED
File without changes
@@ -0,0 +1,30 @@
1
+ class Fixnum
2
+ # adding to_date on the FixNum class so we don't have to do iseries date.to_s.to_date.to_s(:xx) to format an iseries date...
3
+ def to_date
4
+ self.to_s.valid_date? ? self.to_s.to_date : nil
5
+ end
6
+ end
7
+
8
+ class NilClass
9
+ # overriding the default nil.to_s to just ignore the parameter in case we think it's a date (like created_at.to_s(:mdy))
10
+ def to_s(param=nil)
11
+ ""
12
+ end
13
+ end
14
+
15
+ class Object
16
+ def not_nil?
17
+ !nil?
18
+ end
19
+
20
+ def not_blank?
21
+ !blank?
22
+ end
23
+ end
24
+
25
+ class Array
26
+ # Since Rails' default sum goes crazy when there are nils, we do a more awesome job and clear the nils out
27
+ def awesum
28
+ compact.sum
29
+ end
30
+ end
@@ -0,0 +1,81 @@
1
+ require File.join(File.dirname(__FILE__), "/spec_helper")
2
+
3
+ describe NilClass do
4
+ it "should accept to_s without a parameter, matching default behavior" do
5
+ nil.to_s
6
+ end
7
+
8
+ it "should accept to_s with a parameter, ignoring it, to match to_s in Date and DateTime" do
9
+ nil.to_s(:db).should == nil.to_s
10
+ end
11
+ end
12
+
13
+ # Apparently fiddling with the expectations of :nil? sends mock objects for a tizzy; trust me that this method works.
14
+ # describe Object, "knowing whether it is not nil" do
15
+ # before(:each) do
16
+ # @obj = mock("Object")
17
+ # end
18
+ #
19
+ # it "should be not_nil if nil? is false" do
20
+ # @obj.should_receive(:nil?).and_return(false)
21
+ # @obj.not_nil?.should be_false
22
+ # end
23
+ #
24
+ # it "should not be not_nil if nil? is true" do
25
+ # @obj.should_receive(:nil?).and_return(true)
26
+ # @obj.not_nil?.should be_true
27
+ # end
28
+ # end
29
+
30
+
31
+ describe Object, "knowing whether it is not blank" do
32
+ before(:each) do
33
+ @obj = mock("Object")
34
+ end
35
+
36
+ it "should be not_blank if blank? is false" do
37
+ @obj.should_receive(:blank?).and_return(false)
38
+ @obj.not_blank?.should be_true
39
+ end
40
+
41
+ it "should not be not_blank if blank? is true" do
42
+ @obj.should_receive(:blank?).and_return(true)
43
+ @obj.not_blank?.should be_false
44
+ end
45
+ end
46
+
47
+ describe Array, "performing a more awesome sum" do
48
+ it "should perform identically to Array#sum for normal numeric arrays" do
49
+ array = [1, 2, 3.45]
50
+ array.awesum.should == array.sum
51
+ end
52
+
53
+ it "should perform identically to Array#sum for normal string arrays" do
54
+ array = %w(I am awesome)
55
+ array.awesum.should == array.sum
56
+ end
57
+
58
+ it "should correctly sum up numbers, ignoring any nils in the array" do
59
+ array = [1, 2, nil, 3.45]
60
+ array.awesum.should == 6.45
61
+ end
62
+
63
+ it "should correctly sum up the strings, ignoring any nils in the array" do
64
+ array = ["I", " am", nil, " awesum"]
65
+ array.awesum.should == "I am awesum"
66
+ end
67
+ end
68
+
69
+ describe Fixnum, "converting itself to a date" do
70
+ # def to_date
71
+ # self.to_s.valid_date? ? self.to_s.to_date : nil
72
+ # end
73
+ it "should convert itself to a date" do
74
+ 20091020.to_date.should == Date.new(2009, 10, 20)
75
+ end
76
+
77
+ it "should return nil if doesn't contain a valid date" do
78
+ 1111.to_date.should be_nil
79
+ end
80
+
81
+ end
metadata ADDED
@@ -0,0 +1,75 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gci-class-extensions
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Patrick Byrne
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-01-04 00:00:00 -06:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: activesupport
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: valid-date
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ description:
36
+ email: code@patrickbyrne.net
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - README
43
+ files:
44
+ - lib/gci-class-extensions.rb
45
+ - README
46
+ has_rdoc: true
47
+ homepage: http://bitbucket.org/pbyrne/common-ruby-class-extensions/
48
+ licenses: []
49
+
50
+ post_install_message:
51
+ rdoc_options: []
52
+
53
+ require_paths:
54
+ - lib
55
+ required_ruby_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: "0"
60
+ version:
61
+ required_rubygems_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: "0"
66
+ version:
67
+ requirements: []
68
+
69
+ rubyforge_project:
70
+ rubygems_version: 1.3.5
71
+ signing_key:
72
+ specification_version: 3
73
+ summary: A gem used by our internal team for common class extensions, like not_blank? and not_nil? counterparts to blank? and nil?.
74
+ test_files:
75
+ - spec/gci-class-extensions_spec.rb