Module: RFlags
- Defined in:
- lib/rflags.rb,
lib/rflags/flag.rb,
lib/rflags/file_flag.rb,
lib/rflags/redis_flag.rb
Defined Under Namespace
Classes: FileFlag, Flag, RedisFlag
Instance Method Summary
collapse
Instance Method Details
#flag(definition) ⇒ Object
7
8
9
10
11
12
13
14
15
|
# File 'lib/rflags.rb', line 7
def flag(definition)
name, backend = resolve_flag_params(definition)
instance_variable_set("@#{name}".to_sym, backend)
instance_eval <<-MTD, __FILE__, __LINE__
def #{name}
@#{name}
end
MTD
end
|
#lazy_flag(name, &block) ⇒ Object
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/rflags.rb', line 17
def lazy_flag(name, &block)
if !block
raise "RFlags##{__method__} needs a block"
end
resolve = -> do
opts = block.call
resolve_flag_backend_class(opts).new(*opts)
end
instance_variable_set(:"@#{name}_block", resolve)
instance_eval(<<-MTD, __FILE__, __LINE__)
def #{name}
@#{name} ||= @#{name}_block.call
end
MTD
end
|