class User class AtCsv HEADERS = ['Name', 'E-Mail', 'Created Date', 'Last Activity', 'Plans', 'Current Privileges', 'Department', 'Active'] def initialize(users) @users = users end def to_csv CSV.generate(headers: true) do |csv| csv << HEADERS @users.each do |user| name = "#{user.firstname} #{user.surname}" email = user.email created = I18n.l user.created_at.to_date, format: :csv last_activity = I18n.l user.updated_at.to_date, format: :csv plans = user.plans.size department = user.department ? user.department.name : '' active = user.active ? 'Yes' : 'No' if user.can_super_admin? current_privileges = 'Super Admin' elsif user.can_org_admin? current_privileges = 'Organisational Admin' else current_privileges = '' end csv << [ name, email, created, last_activity, plans, current_privileges, department, active ] end end end end end