def author_details
@authors,@author_array=[],[]
authors=@author_param.scan(/[^;]+/)
authors.each do |a|
a=a.strip
if a =~/"(.+?)"/
@authors << { the: $1 }
@author_array << $1.upcase
else
x=a.scan(/[^,]+/)
x[0]=x[0].strip
x[1]=x[1].strip if x[1]
if x.length==1
@authors << { the: x[0] }
@author_array << x[0].upcase
elsif x.length==2
@authors << { the: x[0], others: x[1] }
@author_array << "#{x[0].upcase}, #{x[1]}"
else
end
end
end
l = @authors.length
authors_string=''
@authors.each_with_index do |a,i|
authors_string += if a[:others]
if (l - i) > 1
"#{a[:others]} #{a[:the]}, "
else
"#{a[:others]} #{a[:the]}"
end
else
if (l - i) > 2
"#{a[:the]}, "
else
"#{a[:the]}"
end
end
end
{
last_first_a: authors,
last_first_format_a: @author_array,
authors_h: @authors,
authors_s: authors_string,
authors_param: @author_param
}
end