Sha256: 6e5910697218b00f7b89af7771b04f2f2e2cb484dbbbaf5599731f95a7808d8c
Contents?: true
Size: 724 Bytes
Versions: 187
Compression:
Stored size: 724 Bytes
Contents
module Lalala::Core::ClassInheritableSetting extend ActiveSupport::Concern module ClassMethods def define_setting(name, options={}) class_eval <<-RUBY, __FILE__, __LINE__ + 1 class << self attr_writer #{name.inspect} end def self.#{name} if defined?(@#{name}) @#{name} elsif superclass.respond_to?(#{name.inspect}) superclass.#{name} else nil end end def #{name} if defined?(@#{name}) @#{name} else self.class.#{name} end end RUBY instance_variable_set("@#{name}", options[:default]) end end end
Version data entries
187 entries across 187 versions & 1 rubygems