class ReleasableParam TYPES = %w(talent appearance location material acquired_media music) def initialize(params) @params = params end def id param.last end def name param.first.match(/((.)*_release)_id/)[1] end def type name.classify.constantize end private def param regex = %r{(#{TYPES.join("|")})_release_id} @params.detect { |k,_| k =~ regex } end end