[英]Rake NoMethodError: undefined method 'scan' for Lexicon:Class
I am receiving a NoMethodError: undefined method 'scan' for Lexicon:Class when I try to run a rake test with the following RakeFile. 当我尝试使用以下RakeFile运行rake测试时,我收到Lexicon:Class的NoMethodError:undefined method'scan' 。
require './lib/ex48/lexicon.rb'
require 'test/unit'
class TestLexicon < Test::Unit::TestCase
def test_directions
assert_equal(Lexicon.scan('north'), [%w(direction north)])
end
end
I have a simple Lexicon class: 我有一个简单的词典类:
class Lexicon
def initialize
@direction = %w(north south east west down up left right back)
@verbs = %w(go stop kill eat)
@stop_words = %w(the in of from at it)
@nouns = %w(door bear princess cabinet)
@numbers = (0..9)
end
attr_reader :direction, :verbs, :stop_words, :nouns, :numbers
def scan(input)
words = input.split
result = []
words.each do |word|
if @direction.include? word
result.push ['direction', word]
next
end
if @verbs.include? word
result.push ['verb', word]
next
end
if @stop_words.include? word
result.push ['stop', word]
next
end
if @nouns.include? word
result.push ['noun', word]
next
end
result.push ['number', word] if @numbers.include? word
end
result
end
end
and I want to see if the scan method is working. 我想看看扫描方法是否有效。 I'm learning Ruby, so I am new to the language, and this is my second RakeFile test.
我正在学习Ruby,所以我是该语言的新手,这是我的第二次RakeFile测试。 What am I doing wrong?
我究竟做错了什么?
def self.scan
in order to make the method a class one, not instance method(called on instances of a class). def self.scan
为了使该方法成为一类,而不是实例方法(在类的实例上调用)。 Or simply use Lexicon.new(args).scan
或者简单地使用
Lexicon.new(args).scan
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.