From: Jules Date: 2006-01-21T02:01:05+09:00 Subject: Re: Newbie ahead!: Ruby-Demo Show them: blocks, OOP, "the Ruby way". (0..10).map{|x| x*x}.select{|x| x < 50} Take a Java program and translate it to ruby step-by-step by stripping things ;-) ----- class Person def initialize(newName) @name = newName end def getName() return(@name); end def setName(newName) @name = newName; end end => class Person def initialize(new_name) @name = new_name end def name @name end def name=(new_name) @name = new_name end end => class Person attr_accessor :name end => Person = Struct.new(:name) ... people = [Person.new('David'), Person.new('Amy'), Person.new('Paul')] people.sort_by{|p| p.name} ... # Struct.new returns a class, so we can subclass it :) class Person < Struct.new(:name) include Comparable def <=> other @name <=> other.name end end people = [Person.new('David'), Person.new('Amy'), Person.new('Paul')] # A person has comparison methods now. > == < <= >= etc. can be used now. # The people Array has includes?, max, min etc. # Everything just by adding include Comparable and def <=>. if people[0] < people[1] && people.includes? Person.new('David') people.sort! end ----- All untested. Jules -- Posted via http://www.ruby-forum.com/.