ref: master
plugins/stoa/lib/stoa_plugin/person_api.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
class StoaPlugin::PersonApi < Noosfero::FieldsDecorator def username user.login end def nusp usp_id end def first_name name.split(' ').first end def surname name.split(' ',2).last end def homepage profile_homepage(context, object) end def birth_date object.birth_date.present? ? object.birth_date.strftime('%F') : nil end def image_base64 Base64.encode64(image.current_data) if image && image.current_data end def tags articles.published.tag_counts.order('count desc').limit(10).inject({}) do |memo,tag| memo[tag.name] = tag.count memo end end def communities object.communities.is_public.map {|community| {:url => profile_homepage(context, community), :name => community.name}} end private def profile_homepage(context, profile) if context.respond_to?(:url_for) context.url_for(profile.url) else profile.environment.top_url + '/' + profile.identifier end end end |