So, I know there is a simple error, but I just can’t seem to spot it. I’m using Modules/Mixins for the first time and any help would be much appreciated. I keep getting this error:
undefined method `this_is' for Value:Module (NoMethodError)
But it looks like the method is there…Here are is my module and classes…
module Value
def this_is
puts "#{self.players_hand} is the players hand"
end
end
require './value.rb'
class Player
include Value
attr_accessor :players_hand
def initialize
@players_hand = 0
end
def value_is
Value.this_is
end
end
require './player.rb'
class Game
def initialize
@player = Player.new
end
def start
puts @player.players_hand
puts @player.value_is
end
end
game = Game.new
game.start
When you
include Valueinside of thePlayerclass, you are making theValuemodule’s methods a part of thePlayerclass, so thethis_ismethod is not namespaced. Knowing that, we need to change this method:To: