class Narrative::RoleDefinition
Attributes
name[R]
Public Class Methods
new(name, partners, &responsibilities)
click to toggle source
# File lib/narrative/role_definition.rb, line 5 def initialize(name, partners, &responsibilities) @name = name @partners = partners @responsibilities = responsibilities end
Public Instance Methods
cast!(actors)
click to toggle source
# File lib/narrative/role_definition.rb, line 11 def cast!(actors) role = Module.new(&@responsibilities) acquaint! role, actors.slice(*@partners) actors[@name].extend(role) end
Private Instance Methods
acquaint!(role_module, partners)
click to toggle source
# File lib/narrative/role_definition.rb, line 20 def acquaint!(role_module, partners) role_module.instance_eval do partners.each do |role_name, partner| define_method(role_name) { partner } private role_name end end end