Examples/greeter.rb in maroon-0.6.1 vs Examples/greeter.rb in maroon-0.6.5
- old
+ new
@@ -1,45 +1,46 @@
#Thanks to Ted Milken for updating the original example
+require_relative '../base/maroon_base.rb'
+#require_relative '../base/maroon/kernel.rb'
+#require_relative '../base/maroon/contracts.rb'
-require '../lib/maroon.rb'
-require '../lib/maroon/kernel.rb'
-
class Person
attr_accessor :name
attr_accessor :greeting
end
-context :Greet_Someone, :greet do
+ctx, source = Context::define :Greet_Someone, :greet do
role :greeter do
welcome do
self.greeting
end
end
role :greeted do
end
greet do
- puts "#{greeter.name}: \"#{greeter.welcome}, #{greeted.name}!\""
+ puts %{#{greeter.name}: "#{greeter.welcome}, #{greeted.name}!"}
end
end
class Greet_Someone
def initialize(greeter, greeted)
@greeter = greeter
@greeted = greeted
end
end
+p source
p1 = Person.new
p1.name = 'Bob'
p1.greeting = 'Hello'
p2 = Person.new
p2.name = 'World!'
p2.greeting = 'Greetings'
#Execute is automagically created for the default interaction (specified by the second argument in context :Greet_Someone, :greet do)
-#Executes construc a context object and calls the default interaction on this object
-Greet_Someone.execute p1, p2
+#Executes construct a context object and calls the default interaction on this object
+#Greet_Someone.assert_that(p1).can_play(:greeter)
#constructs a Greet_Someone context object and executes greet.
Greet_Someone.new(p2, p1).greet
\ No newline at end of file