mirror of
https://github.com/bakustarver/rpgmakermlinux-cicpoffs.git
synced 2025-04-21 21:52:04 +02:00
71 lines
1.5 KiB
Ruby
71 lines
1.5 KiB
Ruby
# Ruby 1.8 compat
|
|
module Ruby18
|
|
module ObjectPatch
|
|
# Object#type used to be an alias to Object#class
|
|
def type
|
|
self.class
|
|
end
|
|
end
|
|
|
|
class IncludeStringArray < Array
|
|
def include?(thing)
|
|
if thing.is_a?(String) then
|
|
super(thing.to_sym)
|
|
else
|
|
super
|
|
end
|
|
end
|
|
end
|
|
|
|
module KernelPatch
|
|
# Used to return a string array
|
|
def methods(*)
|
|
IncludeStringArray.new super
|
|
end
|
|
|
|
def singleton_methods(*)
|
|
IncludeStringArray.new super
|
|
end
|
|
end
|
|
|
|
module ModulePatch
|
|
# Used to return string array.
|
|
# Fix instance_methods.include? use-case by patching it to work with strings
|
|
# The array will still be of symbols however
|
|
def instance_methods(*)
|
|
IncludeStringArray.new super
|
|
end
|
|
|
|
def public_instance_methods(*)
|
|
IncludeStringArray.new super
|
|
end
|
|
|
|
def private_instance_methods(*)
|
|
IncludeStringArray.new super
|
|
end
|
|
end
|
|
|
|
module ArrayPatch
|
|
def nitems
|
|
count {|i| !i.nil?}
|
|
end
|
|
|
|
def choice
|
|
sample
|
|
end
|
|
end
|
|
|
|
module HashPatch
|
|
def index(value)
|
|
key value
|
|
end
|
|
end
|
|
|
|
|
|
# Apply Patches
|
|
Object.prepend ObjectPatch
|
|
Module.prepend ModulePatch
|
|
Kernel.prepend KernelPatch
|
|
Array.prepend ArrayPatch
|
|
Hash.prepend HashPatch
|
|
end
|