/usr/lib/ruby/vendor_ruby/naught/conversions.rb is in ruby-naught 1.0.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | module Naught
module Conversions
def self.included(null_class)
unless class_variable_defined?(:@@included) && @@included
@@null_class = null_class
@@null_equivs = null_class::NULL_EQUIVS
@@included = true
end
super
end
def Null(object = :nothing_passed)
case object
when NullObjectTag
object
when :nothing_passed, *@@null_equivs
@@null_class.get(:caller => caller(1))
else
fail ArgumentError, "#{object.inspect} is not null!"
end
end
def Maybe(object = nil)
object = yield if block_given?
case object
when NullObjectTag
object
when *@@null_equivs
@@null_class.get(:caller => caller(1))
else
object
end
end
def Just(object = nil)
object = yield if block_given?
case object
when NullObjectTag, *@@null_equivs
fail ArgumentError, "Null value: #{object.inspect}"
else
object
end
end
def Actual(object = nil)
object = yield if block_given?
case object
when NullObjectTag
nil
else
object
end
end
end
end
|