неопределенный метод `output_data' для #‹EventManager:0x007fa4220320c8› (NoMethodError)

Я продолжаю получать эту ошибку:

event_manager.rb:83:in': неопределенный метод output_data' for #<EventManager:0x007fc5018320c0> (NoMethodError)

Я следую упражнению на этом сайте:

Вот мой код (моя ошибка заканчивается DEF OUTPUT_DATA...):

# Dependencies

require "csv"

# Class Definition

class EventManager

INVALID_PHONE_NUMBER = "0000000000"
INVALID_ZIPCODE = "00000"

def initialize
puts "EventManager Initialized."
filename = "event_attendees.csv"
@file = CSV.open(filename, {:headers => true, :header_converters => :symbol})
end

def print_names
@file.each do |line|
  puts line.inspect
  puts line[2] + " " + line[3]
 end
end

#printing home phone number method
def print_numbers
 @file.each do |line|
  number = clean_number(line[:homephone])
  puts number
end
end
 #cleaning numbers method
def clean_number(number)
  cleaner= number.delete('.' + ')' + '(' + '-')
  if cleaner.length == 10
    # Do Nothing
  elsif cleaner.length == 11
   if cleaner.start_with?("1")
    cleaner = cleaner[1..-1]
  else
    cleaner = INVALID_PHONE_NUMBER
  end
else
  cleaner = INVALID_PHONE_NUMBER
end
  return cleaner
end

def clean_zipcode(original)
    if original.nil?
    zipcode = INVALID_ZIPCODE
  elsif original.length < 5
    while original.length < 5
      original = original.insert(0, "0")
    end  
  else
  return original
end
return zipcode
end


def print_zipcodes
  @file.each do |line|
    zipcode = clean_zipcode(line[:zipcode])
    puts zipcode
end

def output_data
output = CSV.open("event_attendees_clean.csv", "w")
@file.each do |line|
  output << line
end
end
end
end





# Script
manager = EventManager.new
#manager.print_numbers
#manager.print_zipcodes
manager.output_data 

Я пробовал несколько вещей, проверил все в Интернете, и я просто не могу понять это сам.

Буду очень признателен за любую помощь.

Заранее спасибо!


person Roger Camps    schedule 22.11.2012    source источник
comment
Привет @David, я новичок в публикации здесь, и я вижу, что вы внесли некоторые исправления в мой исходный пост. Мне просто интересно, зачем они нужны? Я имею в виду, что именно было не так? Спасибо!   -  person Roger Camps    schedule 23.11.2012
comment
Это было лишь несколько косметических изменений. Например, использование заглавных букв в словах и размещение кода внутри блока кода.   -  person 0x499602D2    schedule 23.11.2012


Ответы (1)


У вас есть определение метода output_data, встроенное в print_zipcodes (блок итераций не закрыт). Попробуйте сделать отступ в коде — тогда ошибку очень легко обнаружить.

person samuil    schedule 22.11.2012
comment
спасибо @samuil !! Вы не знаете, как долго я застрял на этом - person Roger Camps; 23.11.2012
comment
Если ответ решил вашу проблему, подумайте о том, чтобы принять его, чтобы другие пользователи могли легко найти известные решения. - person samuil; 23.11.2012