Skip to content

Instantly share code, notes, and snippets.

@soumyaray
Last active November 6, 2016 13:24
Show Gist options
  • Save soumyaray/7bf89926094bafedeb0984dcaf7100c5 to your computer and use it in GitHub Desktop.
Save soumyaray/7bf89926094bafedeb0984dcaf7100c5 to your computer and use it in GitHub Desktop.
SOA2016 - Search Method
## 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