1# A simple Ruby class demonstration
2
3class Person
4 attr_accessor :name, :age
5
6 def initialize(name, age)
7 @name = name
8 @age = age
9 end
10
11 def introduce
12 puts "Hi, I'm #{@name} and I am #{@age} years old."
13 end
14
15 def can_vote?
16 @age >= 18
17 end
18end
19
20# Module definition
21module Greeter
22 def self.say_hello(name)
23 puts "Hello, #{name}!"
24 end
25end
26
27# Main execution
28if __FILE__ == $0
29 alice = Person.new("Alice", 25)
30 alice.introduce
31
32 if alice.can_vote?
33 puts "#{alice.name} can vote."
34 else
35 puts "#{alice.name} cannot vote."
36 end
37
38 Greeter.say_hello("Bob")
39
40 # Array and block
41 numbers = [1, 2, 3, 4, 5]
42 squared = numbers.map { |n| n * n }
43 puts "Squared numbers: #{squared.inspect}"
44
45 # Hash
46 config = {
47 :env => "production",
48 :retries => 3,
49 :timeout => 500
50 }
51
52 puts "Environment: #{config[:env]}"
53end