Публикувано е на обичайното място. Въпроси и проблеми тук.
Пето предизвикателство
Какво трябва да се случи, ако има обект, който отговаря на метод с търсеното име, но очаква различен брой аргументи и/или очаква/не очаква блок? NoMethodError ли трябва да се предизвика, или ArgumentError, т.е. това, което метода на съответния обект би направил и без това в съответния случай?
Методите трябва да имат абсолютно същото поведение, като методите на обектите, които
Abomination
инстанцията съдържа. Ако даден методfoo
приема блок, то иAbomination#foo
трябва да приема блок, акоfoo
хвърля изключения, то иAbomination#foo
трябва да хвърля изключения и т.н.При пускане на тстовете с rspec ми дава грешка "invalid byte sequence in US-ASCII (ArgumentError)". Някой може ли да обясни къде е проблема?
@Нели, най-вероятно имаш кирилица някъде в кода. Може и в коментар да е, пак се брои. Трябва да си сложиш следния коментар на първия ред във файла с кирилицата:
# encoding: utf-8
Сложих такъв коментар и пак имам същия проблем.
П.С. Пренаписах кода и вече няма проблем. Благодаря.
П.С. Пак получавам същата грешка и не знам как да се справя.
Съжалявам, че не успяхме да реагираме малко по-рано. Може да качиш проблемния код в един Gist, за да го погледнем ние или колегите ти.
https://gist.github.com/4391011 Това вече не е за предизвикателството, а за домашното, но реших тук да пиша като продължение за проблема. Пак ми дава същата грешка "invalid byte sequence in US-ASCII (ArgumentError)" въпреки коментара и нямам идея какво да правя. Има ли начин да открия дали имам кирилица в кода и на кой ред е? (Текстов редактор NotePad++)
Нели, при мен с Ruby 1.9 този файл си работи перфектно като изпълня
ruby solution2.rb
(т.е. не ми дава въпросната грешка). Ако грешката идва от другаде, дай точната команда, която изпълняваш, за да възникне тази грешка. Още, ако е команда, която пускаш в твоята репозитория, качи всички файлове в репозиторията си и ги push-ни към GitHub, за да може да пресъздадем проблема по-лесно.Какъв е енкодинга, който ползваш при записване на файла. Трябва да е или Encode in UTF-8 without BOM (отдолу в статус бара изписва UTF-8 as ANSI) или Encode in ANSI, ако нямаш кирилца.
Ако си го записала като Encode in UTF-8 това добавя byte order mark (http://en.wikipedia.org/wiki/Byte_order_mark). Това създава проблеми с някой програми, да си призная честно за ruby не знам
Ами и при мен с >ruby solution2.rb не дава грешка, но с >rspec и при rake check ми дава въпросната грешка.
Трябва да сте влезли в системата, за да може да отговаряте на теми.