Pull to refresh

Comments 12

UFO just landed and posted this here
А как здесь это делают? Постят подсвеченый html или есть специальные теги?
UFO just landed and posted this here
Стал использовать vim. Там есть необходимая фича, которая выдает HTML, который не портится хабрахабровским обработчиком. Но ой как сильно мне бы хотелось писать код так:
<source lang="ruby">
 puts "Hello"
</source>

Это же просто сделать. Алё, админы!
У меня мысль такая
@#{method} #{ "||= #{options[:default]}" if options[:default] }
Не работает потому, что в случае attr_accessor :title, :default => "no title" получается следующий код:
class Song
def title
# дай вам бог понять, что тут написано
# не пишите так никогда!
@title ||= no title
end

def title=(v)
@title = v
end
end

Если сделать @#{method} #{ "||= #{options[:default].inspect}" if options[:default] }
То вариант attr_accessor :title, :default => "no title" заработает.
Да, верно. Но есть такие объекты для которых inspect возвращает нечто, не являющееся Ruby выражением, равное им
$ ruby -e  "puts lambda{|x| x*x}.inspect"
#<Proc:0xb7d17df8@-e:1>

Кроме того иногда хочется дефолным значением иметь конкретный объект в памяти, а не нечто ему равное, но другое.

Поэтому я и написал «То вариант attr_accessor :title, :default => „no title“ заработает. „
Статью нужно было назвать «Культура метапрограммирования» или «О вреде eval»:)
А можно вот так вот определять новые методы классу?

class Test

end

Test.class_eval { def rest; puts 'hello'; end }

Sign up to leave a comment.

Articles