Last active
November 6, 2016 13:24
-
-
Save soumyaray/7bf89926094bafedeb0984dcaf7100c5 to your computer and use it in GitHub Desktop.
SOA2016 - Search Method
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Original method | |
# def type_of_result(search_type, search) | |
# search_hash = {} | |
# search.each do |key, song| | |
# case search_type | |
# when 'tracks' then search_hash[song.track_name] = key | |
# when 'artists' then search_hash[song.track_name] = song.artist_name | |
# when 'albums' then search_hash[song.track_name] = song.album_name | |
# when 'links' then search_hash[song.track_name] = song.track_link | |
# when 'images' then search_hash[song.track_name] = song.imgs | |
# end | |
# end | |
# end | |
def type_of_result(search_type, search) | |
pick_search = { | |
'tracks' => ->(key, song) { key }, | |
'artists' => ->(key, song) { song.artist_name }, | |
'albums' => ->(key, song) { song.album_name }, | |
'links' => ->(key, song) { song.track_link }, | |
'images' => ->(key, song) { song.imgs } | |
} | |
search.map do |key, song| | |
[song.track_name, pick_search[search_type].call(key, song)] | |
end.to_h | |
end | |
class Song | |
attr_accessor :track_name, :artist_name, :artist_name, :album_name, :track_link, :imgs, :tracks | |
end | |
song = Song.new | |
song.track_name = 'Gumboots' | |
song.tracks = ['song1', 'song2', 'song3'] | |
song.artist_name = 'Paul Simon' | |
song.album_name = 'Graceland' | |
song.track_link = 'http://...' | |
song.imgs = ['http://...', 'https://...'] | |
search = {'some_key' => song} | |
type_of_result('artists', search) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment