From: John Sanders Date: 2011-06-06T01:20:33+09:00 Subject: Odd module dynamic method behaviour Hi, I've been defining modules for mixins with dynamic methods - here is a test module: module Odd A_HASH = Hash[:a=>1, :b=>2] AN_ARRAY = [:c, :d] puts "hash keys: #{A_HASH.keys}" puts "array values: #{AN_ARRAY}" A_HASH.keys do |k| puts "defining #{k}" define_method(k) do puts "#{k}" end end AN_ARRAY.each do |k| puts "defining #{k}" define_method(k) do puts "#{k}" end end end puts "methods: #{Odd.instance_methods}" - The issue is that the A_HASH.keys code does not fire but the AN_ARRAY.each code does as the following shows: hash keys: [:a, :b] array values: [:c, :d] defining c defining d methods: [:c, :d] Any ideas? - I am using ruby 1.9.2 pl180 Regards, John