summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-11-15 16:45:03 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-11-15 16:45:03 +0000
commit67d54f209d28019cc5d8b332706dd9950b56bdc7 (patch)
tree19afa15048b4c73f2a701a9b1ebf09a8c82ef203 /lib
parent30b3ce3445f5cbf94080a8408b83eaafaa264baa (diff)
* array.c (rb_ary_update): pedantic check to detect
rb_ary_to_ary() to modify the receiver. [ruby-dev:24861] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7273 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r--lib/rational.rb24
-rw-r--r--lib/tempfile.rb2
2 files changed, 14 insertions, 12 deletions
diff --git a/lib/rational.rb b/lib/rational.rb
index 2019363ac6..2241004852 100644
--- a/lib/rational.rb
+++ b/lib/rational.rb
@@ -312,20 +312,22 @@ class Integer
return a
end
- def lcm(int)
- a = self.abs
- b = int.abs
- gcd = a.gcd(b)
- (a.div(gcd)) * b
+ def lcm(other)
+ if self.zero? or other.zero?
+ 0
+ else
+ (self.div(self.gcd(other)) * other).abs
+ end
end
- def gcdlcm(int)
- a = self.abs
- b = int.abs
- gcd = a.gcd(b)
- return gcd, (a.div(gcd)) * b
+ def gcdlcm(other)
+ gcd = self.gcd(other)
+ if self.zero? or other.zero?
+ [gcd, 0]
+ else
+ [gcd, (self.div(gcd) * other).abs]
+ end
end
-
end
class Fixnum
diff --git a/lib/tempfile.rb b/lib/tempfile.rb
index 828e1cf8f3..65b4bc69ac 100644
--- a/lib/tempfile.rb
+++ b/lib/tempfile.rb
@@ -144,7 +144,7 @@ class Tempfile < DelegateClass(File)
class << self
def callback(data) # :nodoc:
pid = $$
- lambda{
+ Proc.new {
if pid == $$
path, tmpfile, cleanlist = *data