- Read Tutorial
- Watch Guide Video
- Complete the Exercise
Summary
Refactor a Ruby class so that it uses the
attr_extras
gem.
Exercise File
Exercise Description
Clean up how Ruby defines its list of attributes by leveraging the attr_extras gem. This will allow you to remove unnecessary boilerplate code when listing attributes.
Class to Refactor
class PurchaseOrder attr_accessor :client, :total def initialize(client, total) @client = client @total = total end def generate_order "#{client}: #{total}" end end po = PurchaseOrder.new('Google', 500) po.client # => 'Google' po.generate_order # => 'Google: 500'
Research the attr_extras gem to see how you can streamline this class and remove the initialize
method.
Real World Usage
Ruby is an intuitive programming language. It allows you to skip quite a bit of boilerplate code. For example, in Ruby you won't have to write class setters and getters manually. However there are still a few processes that you will find yourself repeating on a regular basis. The attr_extras
gem is a great tool to help you streamline how you define attributes in a class.
Solution
Can be found on the solutions branch on github.