Module: Legion::Extensions::Actors::Dsl
- Included in:
- Base, Every, Once, Poll, Subscription
- Defined in:
- lib/legion/extensions/actors/dsl.rb
Instance Method Summary collapse
Instance Method Details
#define_dsl_accessor(name, default:) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/legion/extensions/actors/dsl.rb', line 7 def define_dsl_accessor(name, default:) define_singleton_method(name) do |val = :_unset| if val == :_unset if instance_variable_defined?(:"@#{name}") instance_variable_get(:"@#{name}") elsif superclass.respond_to?(name) superclass.public_send(name) else default end else instance_variable_set(:"@#{name}", val) end end define_method(name) do self.class.public_send(name) end end |