Module: CrazyPills
- Defined in:
- lib/crazy_pills.rb,
lib/crazy_pills/version.rb
Constant Summary collapse
- THINGS_TO_CRAZY =
[ Array, Exception, File, Float, Hash, Numeric, Object, String, ]
- VERSION =
"0.0.2"
Class Method Summary collapse
- .aliased(*args) ⇒ Object
- .explain ⇒ Object
- .lets_get_crazy!(*classes) ⇒ Object
- .made_nil(name = nil) ⇒ Object
Class Method Details
.aliased(*args) ⇒ Object
23 24 25 26 27 28 |
# 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 ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/crazy_pills.rb', line 30 def self.explain made_nil.each do |nilled| puts "Made \#{nilled} just return nil\n" end aliased.each_slice(2) do |slice| puts "Aliased \#{slice.first} to \#{slice.last}\n" end end |
.lets_get_crazy!(*classes) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# 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) ⇒ Object
67 68 69 70 71 72 |
# 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 |