patch_life 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/patch_life.rb +3 -2
- data/lib/version.rb +1 -1
- data/spec/print_patch_warning_spec.rb +114 -25
- metadata +1 -1
data/lib/patch_life.rb
CHANGED
@@ -4,9 +4,10 @@ module PatchLife
|
|
4
4
|
raise(ArgumentError, "define_patch requires a :patch argument to be set") unless options[:patch]
|
5
5
|
raise(ArgumentError, "define_patch requires either a :message argument, a block to yield, or both") unless options[:message] || block_given?
|
6
6
|
|
7
|
-
past_due_version = Gem::Version.new(ruby_version)
|
7
|
+
past_due_version = Gem::Version.new(ruby_version) > Gem::Version.new(options[:version])
|
8
|
+
equivalent_version = Gem::Version.new(ruby_version) == Gem::Version.new(options[:version])
|
8
9
|
past_due_patch = ruby_patch_level >= options[:patch].to_i
|
9
|
-
past_due = past_due_version && past_due_patch
|
10
|
+
past_due = past_due_version || (equivalent_version && past_due_patch)
|
10
11
|
|
11
12
|
Kernel.warn(options[:message]) if past_due && options[:message]
|
12
13
|
yield if !past_due && block_given?
|
data/lib/version.rb
CHANGED
@@ -34,52 +34,141 @@ describe PatchLife do
|
|
34
34
|
context "when comparing ruby versions" do
|
35
35
|
context "and the current ruby version is less than the declared version" do
|
36
36
|
let (:version) {"9.9.9"}
|
37
|
-
let (:patch) {999}
|
38
37
|
let (:message) {"You're outdated"}
|
38
|
+
context "and the current ruby patch level is less than the declared patch" do
|
39
|
+
let (:patch) {999}
|
40
|
+
it "will not print a message if defined" do
|
41
|
+
Kernel.should_not_receive(:warn).with(message)
|
42
|
+
subject.define_patch_life(:version=>version, :patch=>patch, :message=>message) {nil}
|
43
|
+
end
|
44
|
+
|
45
|
+
it "will yield a block if given" do
|
46
|
+
block_called = false
|
47
|
+
subject.define_patch_life(:version=>version, :patch=>patch, :message=>message) {block_called=true}
|
48
|
+
block_called.should == true
|
49
|
+
end
|
50
|
+
end
|
39
51
|
|
40
|
-
|
41
|
-
|
42
|
-
|
52
|
+
context "and the current ruby patch level is equal to the declared patch" do
|
53
|
+
let (:patch) {RUBY_PATCHLEVEL}
|
54
|
+
it "will not print a message if defined" do
|
55
|
+
Kernel.should_not_receive(:warn).with(message)
|
56
|
+
subject.define_patch_life(:version=>version, :patch=>patch, :message=>message) {nil}
|
57
|
+
end
|
58
|
+
|
59
|
+
it "will yield a block if given" do
|
60
|
+
block_called = false
|
61
|
+
subject.define_patch_life(:version=>version, :patch=>patch, :message=>message) {block_called=true}
|
62
|
+
block_called.should == true
|
63
|
+
end
|
43
64
|
end
|
44
65
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
66
|
+
context "and the current ruby patch level is greater than the declared patch" do
|
67
|
+
let (:patch) {0}
|
68
|
+
it "will not print a message if defined" do
|
69
|
+
Kernel.should_not_receive(:warn).with(message)
|
70
|
+
subject.define_patch_life(:version=>version, :patch=>patch, :message=>message) {nil}
|
71
|
+
end
|
72
|
+
|
73
|
+
it "will yield a block if given" do
|
74
|
+
block_called = false
|
75
|
+
subject.define_patch_life(:version=>version, :patch=>patch, :message=>message) {block_called=true}
|
76
|
+
block_called.should == true
|
77
|
+
end
|
49
78
|
end
|
50
79
|
end
|
51
80
|
|
52
81
|
context "and the current ruby version is equal to the declared version" do
|
53
82
|
let (:version) {RUBY_VERSION.dup}
|
54
|
-
let (:patch) {RUBY_PATCHLEVEL}
|
55
83
|
let (:message) {"You're outdated"}
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
84
|
+
|
85
|
+
context "and the current ruby patch level is less than the declared patch" do
|
86
|
+
let (:patch) {999}
|
87
|
+
it "will not print a message if defined" do
|
88
|
+
Kernel.should_not_receive(:warn).with(message)
|
89
|
+
subject.define_patch_life(:version=>version, :patch=>patch, :message=>message) {nil}
|
90
|
+
end
|
91
|
+
|
92
|
+
it "will yield a block if given" do
|
93
|
+
block_called = false
|
94
|
+
subject.define_patch_life(:version=>version, :patch=>patch, :message=>message) {block_called=true}
|
95
|
+
block_called.should == true
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
context "and the current ruby patch level is equal to the declared patch" do
|
100
|
+
let (:patch) {RUBY_PATCHLEVEL}
|
101
|
+
it "will print a message if defined" do
|
102
|
+
Kernel.should_receive(:warn).with(message)
|
103
|
+
subject.define_patch_life(:version=>version, :patch=>patch, :message=>message) {nil}
|
104
|
+
end
|
105
|
+
|
106
|
+
it "will not yield a block if given" do
|
107
|
+
block_called = false
|
108
|
+
subject.define_patch_life(:version=>version, :patch=>patch, :message=>message) {block_called=true}
|
109
|
+
block_called.should == false
|
110
|
+
end
|
60
111
|
end
|
61
112
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
113
|
+
context "and the current ruby patch level is greater than the declared patch" do
|
114
|
+
let (:patch) {0}
|
115
|
+
it "will print a message if defined" do
|
116
|
+
Kernel.should_receive(:warn).with(message)
|
117
|
+
subject.define_patch_life(:version=>version, :patch=>patch, :message=>message) {nil}
|
118
|
+
end
|
119
|
+
|
120
|
+
it "will not yield a block if given" do
|
121
|
+
block_called = false
|
122
|
+
subject.define_patch_life(:version=>version, :patch=>patch, :message=>message) {block_called=true}
|
123
|
+
block_called.should == false
|
124
|
+
end
|
66
125
|
end
|
67
126
|
end
|
68
127
|
|
69
128
|
context "and the current ruby version is greater than the declared version" do
|
70
129
|
let (:version) {"1.0.0"}
|
71
|
-
let (:patch) {1}
|
72
130
|
let (:message) {"You're outdated"}
|
73
131
|
|
74
|
-
|
75
|
-
|
76
|
-
|
132
|
+
context "and the current ruby patch level is less than the declared patch" do
|
133
|
+
let(:patch) {999}
|
134
|
+
it "will print a message if defined" do
|
135
|
+
Kernel.should_receive(:warn).with(message)
|
136
|
+
subject.define_patch_life(:version=>version, :patch=>patch, :message=>message) {nil}
|
137
|
+
end
|
138
|
+
|
139
|
+
it "will not yield a block if given" do
|
140
|
+
block_called = false
|
141
|
+
subject.define_patch_life(:version=>version, :patch=>patch, :message=>message) {block_called=true}
|
142
|
+
block_called.should == false
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
context "and the current ruby patch level is equal to the declared patch" do
|
147
|
+
let (:patch) {RUBY_PATCHLEVEL}
|
148
|
+
it "will print a message if defined" do
|
149
|
+
Kernel.should_receive(:warn).with(message)
|
150
|
+
subject.define_patch_life(:version=>version, :patch=>patch, :message=>message) {nil}
|
151
|
+
end
|
152
|
+
|
153
|
+
it "will not yield a block if given" do
|
154
|
+
block_called = false
|
155
|
+
subject.define_patch_life(:version=>version, :patch=>patch, :message=>message) {block_called=true}
|
156
|
+
block_called.should == false
|
157
|
+
end
|
77
158
|
end
|
78
159
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
160
|
+
context "and the current ruby patch level is greater than the declared patch" do
|
161
|
+
let (:patch) {0}
|
162
|
+
it "will print a message if defined" do
|
163
|
+
Kernel.should_receive(:warn).with(message)
|
164
|
+
subject.define_patch_life(:version=>version, :patch=>patch, :message=>message) {nil}
|
165
|
+
end
|
166
|
+
|
167
|
+
it "will not yield a block if given" do
|
168
|
+
block_called = false
|
169
|
+
subject.define_patch_life(:version=>version, :patch=>patch, :message=>message) {block_called=true}
|
170
|
+
block_called.should == false
|
171
|
+
end
|
83
172
|
end
|
84
173
|
end
|
85
174
|
end
|