Sha256: 778b36accf316105d4e8a41508f79ed4ffbbfc561a1c775b553258f5284d7bb8

Contents?: true

Size: 1.35 KB

Versions: 8

Compression:

Stored size: 1.35 KB

Contents

# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
#
# Fat Free CRM is freely distributable under the terms of MIT license.
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
#------------------------------------------------------------------------------
module FatFreeCRM
  module Exportable
    def self.included(base)
      base.extend(ClassMethods)
    end

    module ClassMethods
      def exportable(_options = {})
        unless included_modules.include?(InstanceMethods)
          include InstanceMethods
          extend SingletonMethods
        end
      end
    end

    module InstanceMethods
      def user_id_full_name
        user = self.user
        user ? user.full_name : ''
      end

      def self.included(base)
        if base.instance_methods.include?(:assignee) || base.instance_methods.include?('assignee')
          define_method :assigned_to_full_name do
            user = assignee
            user ? user.full_name : ''
          end
        end

        if base.instance_methods.include?(:completor) || base.instance_methods.include?('completor')
          define_method :completed_by_full_name do
            user = completor
            user ? user.full_name : ''
          end
        end
      end
    end

    module SingletonMethods
    end
  end
end

ActiveRecord::Base.send(:include, FatFreeCRM::Exportable)

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
fat_free_crm-0.15.2 lib/fat_free_crm/exportable.rb
fat_free_crm-0.16.4 lib/fat_free_crm/exportable.rb
fat_free_crm-0.15.1 lib/fat_free_crm/exportable.rb
fat_free_crm-0.16.3 lib/fat_free_crm/exportable.rb
fat_free_crm-0.16.2 lib/fat_free_crm/exportable.rb
fat_free_crm-0.16.1 lib/fat_free_crm/exportable.rb
fat_free_crm-0.16.0 lib/fat_free_crm/exportable.rb
fat_free_crm-0.15.0 lib/fat_free_crm/exportable.rb