From: "Aleksi Niemelä" Date: 2000-11-28T00:45:37+09:00 Subject: [ruby-talk:6590] RE: Q: refering to a Proc from class_eval > I'm trying to wrap function definitions, and cannot find a way to > refer to a block from inside the code I generate and subsequently pass > to class_eval: Try this, it barks at me :). class Module def fdef name, &block self.const_set("Block_for_#{name}", block) code = <<-EOC def #{name} # somehow yield to block #{block} <------ self.class.const_get("Block_for_#{name}").call() end EOC class_eval code end end class Foo fdef("bar") { puts "bar!" } end Foo.new.bar # => expecting "bar!" > Something completely different: the manual claims that the construct > <<-EOF strips all leading whitespace from the here document. It > doesn't... (ruby 1.6.1 (2000-09-27) [i686-linux]) Um.. I'd guess the manual is just misleading. The Book says at page 204-205: You can put a minus sign immediately after the << characters, in which case the terminator can be indented from the left margin. So if I'm not mistaken, it does not give a hint <<-HEREDOC_WITH_MINUS would modify the heredoced string in any way. If I recall correctly, there was some discussions about autostripping or indentation or something else previously at ruby-talk. So please, check the archives for that. - Aleksi