gui_geometry 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/gui_geometry/rectangle.rb +15 -3
- data/lib/gui_geometry/version.rb +1 -1
- data/spec/rectangle_spec.rb +18 -0
- metadata +2 -2
@@ -59,12 +59,24 @@ class Rectangle < Struct.new(:loc, :size)
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def overlaps?(b)
|
62
|
-
|
63
|
-
|
62
|
+
case b
|
63
|
+
when Point then
|
64
|
+
contains?(b)
|
65
|
+
when Rectangle then
|
66
|
+
b.loc + b.size > loc &&
|
67
|
+
loc + size > b.loc
|
68
|
+
else raise ArgumentError.new("wrong type: (#{val.class}) - Rectangle or Point expected")
|
69
|
+
end
|
64
70
|
end
|
65
71
|
|
66
72
|
def contains?(b)
|
67
|
-
|
73
|
+
case b
|
74
|
+
when Point then
|
75
|
+
b >= loc && b < (loc+size)
|
76
|
+
when Rectangle then
|
77
|
+
(self & b) == self
|
78
|
+
else raise ArgumentError.new("wrong type: (#{val.class}) - Rectangle or Point expected")
|
79
|
+
end
|
68
80
|
end
|
69
81
|
|
70
82
|
def tl; loc; end
|
data/lib/gui_geometry/version.rb
CHANGED
data/spec/rectangle_spec.rb
CHANGED
@@ -112,5 +112,23 @@ describe "Rectangle" do
|
|
112
112
|
r1.bound(rect(30,0,5,5)).should == rect(15,10,5,5)
|
113
113
|
r1.bound(rect(0,0,20,5)).should == rect(5,10,15,5)
|
114
114
|
end
|
115
|
+
|
116
|
+
it ".overlaps? point" do
|
117
|
+
r1 = rect(5, 10, 15, 20)
|
118
|
+
r1.overlaps?(point(10,10)).should == true
|
119
|
+
r1.overlaps?(point(20,10)).should == false
|
120
|
+
r1.overlaps?(point(10,30)).should == false
|
121
|
+
r1.overlaps?(point(5,9)).should == false
|
122
|
+
r1.overlaps?(point(4,10)).should == false
|
123
|
+
end
|
124
|
+
|
125
|
+
it ".contains? point" do
|
126
|
+
r1 = rect(5, 10, 15, 20)
|
127
|
+
r1.contains?(point(10,10)).should == true
|
128
|
+
r1.contains?(point(20,10)).should == false
|
129
|
+
r1.contains?(point(10,30)).should == false
|
130
|
+
r1.contains?(point(5,9)).should == false
|
131
|
+
r1.contains?(point(4,10)).should == false
|
132
|
+
end
|
115
133
|
end
|
116
134
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gui_geometry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|