1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Foo
  def self.settings_map
    @@settings_map ||= {}
  end

  def self.register_setting_get(name, &block)
    settings_map[name] ||= {}
    settings_map[name][:getter] = block
  end
end

class Bar
  class << self
    def settings_map
      @@settings_map ||= {}
    end

    def register_setting_get(name, &block)
      settings_map[name] ||= {}
      settings_map[name][:getter] = block
    end
  end
end

# Works on MRI and Rubinius
Foo.register_setting_get(:blah)

# Fails on Rubinius, works on MRI
Bar.register_setting_get(:blah)