lib/whirled_peas/settings/spacing.rb in whirled_peas-0.6.0 vs lib/whirled_peas/settings/spacing.rb in whirled_peas-0.7.0
- old
+ new
@@ -1,23 +1,57 @@
module WhirledPeas
module Settings
class Spacing
attr_writer :left, :top, :right, :bottom
+ def left=(value)
+ @left = validate!(value)
+ end
+
def left
@left || 0
end
+ def top=(value)
+ @top = validate!(value)
+ end
+
def top
@top || 0
end
+ def right=(value)
+ @right = validate!(value)
+ end
+
def right
@right || 0
end
+ def bottom=(value)
+ @bottom = validate!(value)
+ end
+
def bottom
@bottom || 0
+ end
+
+ def horiz=(value)
+ self.left = self.right = value
+ end
+
+ def vert=(value)
+ self.top = self.bottom = value
+ end
+
+ private
+
+ def validate!(value)
+ if value && value < 0
+ raise ArgumentError, "Negative values for #{self.class.name.split('::').last.downcase} are not allowed"
+ else
+ value
+ end
end
end
private_constant :Spacing
end
end