module CrazyPills

Constants

THINGS_TO_CRAZY
VERSION

Public Class Methods

aliased(*args) click to toggle source
# File lib/crazy_pills.rb, line 23
def self.aliased(*args)
  @aliased ||= []
  @aliased.concat(args) if args
  puts "Aliased #{args}" if ENV['DEBUG']
  @aliased
end
explain() click to toggle source
# File lib/crazy_pills.rb, line 30
  def self.explain
    made_nil.each do |nilled|
      puts <<-NIL
        Made #{nilled} just return nil
      NIL
    end

    aliased.each_slice(2) do |slice|
      puts <<-NIL
        Aliased #{slice.first} to #{slice.last}
      NIL
    end
  end
lets_get_crazy!(*classes) click to toggle source
# File lib/crazy_pills.rb, line 44
def self.lets_get_crazy!(*classes)
  class_to_crazy = classes.flatten.sample

  method_to_crazy = class_to_crazy.instance_methods.sample

  if [true, false].sample
    self.made_nil("#{class_to_crazy}##{method_to_crazy}")

    class_to_crazy.class_eval do
      define_method(method_to_crazy) do
        nil
      end
    end
  else
    alias_to = class_to_crazy.instance_methods.sample
    self.aliased("#{class_to_crazy}##{method_to_crazy}", "#{class_to_crazy}##{alias_to}")

    class_to_crazy.class_eval do
      alias_method method_to_crazy, alias_to
    end
  end
end
made_nil(name = nil) click to toggle source
# File lib/crazy_pills.rb, line 67
def self.made_nil(name = nil)
  @made_nil ||= []
  @made_nil << name if name
  puts "Nil-ify #{name}" if ENV['DEBUG']
  @made_nil
end

Public Instance Methods

unknown() click to toggle source

Seriously, what are you doing requiring this gem? just don’t

# File lib/crazy_pills.rb, line 18
warn <<-WARN