Module: SDCMeta::ClassProperty

Included in:
SDC::Entity
Defined in:
lib/include/Properties.rb

Instance Method Summary collapse

Instance Method Details

#define_class_property(symbol, default: nil) ⇒ Object



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
30
# File 'lib/include/Properties.rb', line 4

def define_class_property(symbol, default: nil)
	define_singleton_method(symbol) do
		val = instance_variable_get("@#{symbol}")
		if val then
			return val
		else
			val = default
			return default
		end
	end

	define_singleton_method("#{symbol}=") do |value|
		instance_variable_set("@#{symbol}", value)
	end

	attr_accessor(symbol)

	define_method("#{symbol}") do
		val = instance_variable_get("@#{symbol}")
		if val then
			return val
		else
			val = self.class.send(symbol)
			return val
		end
	end
end