Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /usr/bin/ruby
- class Employee
- attr_reader :name, :salary
- def name=(name)
- if name == ""
- raise "Name can't be blank!"
- end
- @name = name
- end
- def salary=(salary)
- if salary < 0
- raise "A salary of #{salary} isn't valid!"
- end
- @salary = salary
- end
- def initialize(name = "Anonymous", salary = 0.0)
- @name = name
- @salary = salary
- end
- def print_pay_stub
- puts "Name: #{@name}"
- pay_for_period = (@salary / 365) * 14
- formatted_pay = format("%.2f", pay_for_period)
- puts "Pay This Period: $#{formatted_pay}"
- end
- end
- employee = Employee.new("Jane Doe", 50000).print_pay_stub
- Employee.new("Jane Doe").print_pay_stub
- employee.print_pay_stub
- Employee.new.print_pay_stub
- ./changemore_payroll.rb
- Name: Jane Doe
- Pay This Period: $1904.00
- Name: Jane Doe
- Pay This Period: $0.00
- ./changemore_payroll.rb:36:in `<main>': undefined method `print_pay_stub' for nil:NilClass (NoMethodError)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement