Sha256: b933fc0acab04c186152cbde987bb4b1502f59b4d9bbde90fb8e4674086d0119

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 KB

Contents

require "rubygems"
require "contextr" 

class Person
  layer :address, :education

  attr_accessor :name, :address, :university

  def initialize name, address, university
    self.name = name
    self.address = address
    self.university = university
  end

  def to_s
    "Name: #{name}"
  end

  address.post :to_s do | n |
    n.return_value += "; Address: #{address}"
  end

  education.post :to_s do | n |
    n.return_value += ";\n[Education] #{university}"
  end
end

class University
  layer :address

  attr_accessor :name, :address

  def initialize name, address
    self.name = name
    self.address = address
  end

  def to_s
    "Name: #{name}"
  end

  address.post :to_s do | n |
    n.return_value += "; Address: #{address}"
  end
end


hpi = University.new( "Hasso-Plattner-Institut", "Potsdam" )
somePerson = Person.new( "Gregor Schmidt", "Berlin", hpi )

puts 
puts somePerson
ContextR::with_layers :address do
  puts 
  puts somePerson

  ContextR::with_layers :education do
    puts 
    puts somePerson

    ContextR::without_layers :address do
      puts 
      puts somePerson
    end
  end
end
puts 

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
contextr-0.0.1 examples/education.rb