Skip to main content

Ruby Chops: Flexible Sort

So I was messing with the comparable module and the <=> method.  I implemented as I would in Java.  Then I played with sort_by and thought that was awesome. Which led me to writing my own method that would allow me to pass in a collection and attributes to be sorted by. The objects in the collection would have to implement my Sortable module. This was more for academic fun and try to keep my mind sharp. If anyone sees a cooler way to do it then please post it here.

Comments

Popular posts from this blog

Setting up Sinatra and DataMapper on Windows

I use a MacBook Pro for work and pleasure on a day-to-day basis. Recently, I was asked to teach web students at a local high school. These students know html/graphics/flash/etc. The advanced students were ready for some server-side programming and database integration. I wanted the students to be able to get up and going quickly (for motivation reasons) and to create useful apps (using a database). I felt Sinatra to be a great fit for this. I created a Sinatra app for my uncle and his business. It was a joy to work with it and I was able to deploy quickly using Heroku . My experience of using Sinatra on my Mac was straightforward. Like most things using Ruby and Mac: it just worked. However, I found out the students at the high school use MS Windows. Fortunately, I have a Windows XP virtual machine running in VMWare so I could prepare that way. I used to teach computer science and web development at Spokane Community College and am aware of teaching Ruby in a Windows lab environm

PHP and Laravel Development: A 17-part video series

 Enjoy!

Elixir: Pattern Matching - A Taste of Functional Programming

=  is a match operator After an initial assignment it then becomes a match assertion. num = 1 To check the match assertion you can try this and it will be valid 1 = num Furthermore, these are also valid: [1] = [1] [num] = [num] Destructuring [score1, score2, score3] = [89, 93, 87] IO.puts score1  # 89 IO.puts score2  # 93 IO.puts score3  # 87 {:ok, value} = {:ok, 1000} IO.puts value # 1000 {:error, message} = {:error, "Uh oh"} IO.puts message # "Uh oh" Error when matching: {:foo, value} = {:bar, "nope"} ** (MatchError) no match of right hand side value: {:bar, "nope"} Matching function arguments Various function definitions and subsequent calls: def sum_two_nums(num1, num2) do num1 + num2 end sum_two_nums(2,5) def sum_two_nums(%{num1: num1, num2: num2}) do num1 + num2 end sum_two_nums(%{num1: 2, num2: 5}) def sum_two_nums([num1, num2]) do num1 + num2 end sum_two_nums([2,5]) There's so much more you