Simple mix-in example

Hi,

can we consider this is a mix-in newbie example ? We are giving a new
feature to method > on our Mixin class.

class Mixin
def initialize(a)
@a = a
end
def >(arg)
puts “Yep!” if @a > arg
end
end

test = Mixin.new(3)
test > 1 # -> Yep!
test.> 1 # -> Yep!
test.>(1) # -> Yep!
puts “Yep, too!” if 2 > 1 # -> Yep, too!
puts “not now!” if teste < 1 # -> *

  • undefined method `<’ for #<Mixin:0xb7d35858 @a=3> (NoMethodError)

Works as expected. Thanks,

On Tuesday 07 November 2006 09:35, pedro mg wrote:

puts "Yep!" if @a > arg
  • undefined method `<’ for #<Mixin:0xb7d35858 @a=3> (NoMethodError)

Works as expected. Thanks,

I wouldn’t call it Mixin, that could give some conflict with the concept
of
mixins (i.e. modules)
maybe something like that:

class Compare
attr_accessor :a

def initialize a
@a = a
end

def > arg
puts “Yep!” if @a > arg
end
end

^manveru

Em Tue, 07 Nov 2006 09:45:12 +0900, Michael F. escreveu:

end
Thanks. Done :wink:

On Tue, 07 Nov 2006 00:33:00 +0000, pedro mg wrote:

puts "Yep!" if @a > arg
  • undefined method `<’ for #<Mixin:0xb7d35858 @a=3> (NoMethodError)

Works as expected. Thanks,

Yuck.

if test > 1
puts “Yes”
else
puts “No”
end

will print out
Yep!
No

You need to define the > operator as follows:
def >(arg)
puts “Yep!” if @a > arg
@a > arg
end
so that it returns a proper value

Em Tue, 07 Nov 2006 04:39:06 +0000, Ken B. escreveu:

if test > 1
puts “Yes”
else
puts “No”
end

thanks, this was really just a very simple test in wich i controled the
values.

You need to define the > operator as follows:
def >(arg)
puts “Yep!” if @a > arg
@a > arg
end
so that it returns a proper value

i didn’t even wanted a return value, but you’re right, even the
simple examples look better with a little more effort :wink: