Method: Module#attr_readonly

Defined in:
lib/as_readonly/core_ext/module.rb

#attr_readonly(*attributes) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
# File 'lib/as_readonly/core_ext/module.rb', line 4

def attr_readonly(*attributes)
  attributes.each do |attr|
    module_eval "      def \#{attr}\n        @_\#{attr}_as_readonly ||= begin\n          @\#{attr} ? @\#{attr}.as_readonly : @\#{attr}\n        end\n      end\n    end_eval\n  end\nend\n", __FILE__, __LINE__