Module: Roleplay
- Defined in:
- lib/roleplay.rb,
lib/roleplay/version.rb
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- VERSION =
"0.0.3"
Instance Method Summary collapse
- #included(base) ⇒ Object
- #playing(name) ⇒ Object (also: #as_a)
- #playing!(name) ⇒ Object (also: #as_a!)
Instance Method Details
#included(base) ⇒ Object
5 6 7 |
# File 'lib/roleplay.rb', line 5 def included(base) base.send(:extend, ClassMethods) end |
#playing(name) ⇒ Object Also known as: as_a
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/roleplay.rb', line 9 def (name) modules = self.class.roles[name] raise "role #{name} does not define any modules" unless modules.present? value = self.dup value.singleton_class.send(:attr_accessor, :role) value.role = {name => modules} modules.each do |m| value.extend m end value end |
#playing!(name) ⇒ Object Also known as: as_a!
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/roleplay.rb', line 22 def (name) modules = self.class.roles[name] raise "role #{name} does not define any modules" unless modules.present? singleton_class.send(:attr_accessor, :role) self.role = {name => modules} modules.each do |m| extend m end self end |