Untitled

 avatar
unknown
ruby
13 days ago
760 B
13
Indexable
class Employee
  attr_accessor :id, :name, :role

  def initialize(id, name, role)
    @id = id
    @name = name
    @role = role
  end

  def calculate_pay
    case @role
    when 'developer'
      5000
    when 'manager'
      8000
    else
      3000
    end
  end

  def save
    File.open("#{@id}.txt", 'w') do |f|
      f.write("ID: #{@id}, Name: #{@name}, Role: #{@role}")
    end
  end
end

class EmployeeReport
  def initialize(employee)
    @employee = employee
  end

  def report
    puts "Report for #{@employee.name}, Role: #{@employee.role}, Pay: #{@employee.calculate_pay}"
  end
end

# Usage example
e1 = Employee.new(1, 'Alice', 'developer')
e2 = Employee.new(2, 'Bob', 'manager')
e1.save
e2.save
report = EmployeeReport.new(e1)
report.report
Leave a Comment