In this project, we are implementing our own version of Ruby’s enumerable methods to look just like the original Ruby methods
We are tasked to implement our own Ruby Enumerables, these enumerables include:
#my_each
#my_each_with_index
#my_select
#my_all?
#my_any?
#my_none?
#my_count
#my_map
#my_inject
- Create a script file to house your methods and run it in IRB to test them later.
- Add your new methods onto the existing Enumerable module. Ruby makes this easy for you because any class or module can be added to without trouble ... just do something like:
module Enumerable
def my_each
# your code here
end
end
- Create
#my_each
, a method that is identical to#each
but (obviously) does not use#each
. You'll need to remember theyield
statement. Make sure it returns the same thing as#each
as well. - Create
#my_each_with_index
in the same way. - Create
#my_select
in the same way, though you may use#my_each
in your definition (but not#each
). - Create
#my_all?
(continue as above) - Create
#my_any?
- Create
#my_none?
- Create
#my_count
- Create
#my_map
- Create
#my_inject
- Test your
#my_inject
by creating a method called#multiply_els
which multiplies all the elements of the array together by using#my_inject
, e.g.multiply_els([2,4,5]) #=> 40
- Modify your
#my_map
method to take a proc instead. - Modify your
#my_map
method to take either a proc or a block. It won't be necessary to apply both a proc and a block in the same#my_map
call since you could get the same effect by chaining together one#my_map
call with the block and one with the proc. This approach is also clearer, since the user doesn't have to remember whether the proc or block will be run first. So if both a proc and a block are given, only execute the proc.
Quick Tips:
- Remember
yield
and the#call
method.
Creates test files for all the enumerable methods above
- vs code
- git
To get a local copy of this repository up and running follow these simple steps:
- A PC or device with internet connection with the ability to use command line or terminal.
- Open the command line or terminal
- Go to your preferred directory
- Run
git clone git@github.com:wintan1418/RUBY-PROJECT-ENUMERABLES/.git
command
- Open script.rb in any editor ofchoice
👤 Arrey Tabe
- Github: ArreyTabe
- Twitter: @tabe_arrey
- LinkedIn: Arrey Affuembey
Oluwadare Juwon
- GitHub: @wintan1418
- Twitter: @juwonoluwadare
- LinkedIn: Oluwadare Juwon
Joined during testing
- Github: uchennaanya
- Twitter:@matinsanya19
- Linkedin: Uchenna Martin Anya
Give a ⭐️ if you like this project!
This project is MIT licensed.