Sha256: dcb532678590bc5b57debaf8212451f9b1111a2cead93d8e54202603ec3d7394

Contents?: true

Size: 1.38 KB

Versions: 7

Compression:

Stored size: 1.38 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 # Exportable
end # FatFreeCRM

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

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
fat_free_crm-0.14.2 lib/fat_free_crm/exportable.rb
fat_free_crm-0.14.1 lib/fat_free_crm/exportable.rb
fat_free_crm-0.15.0.beta.2 lib/fat_free_crm/exportable.rb
fat_free_crm-0.15.0.beta lib/fat_free_crm/exportable.rb
fat_free_crm-0.14.0 lib/fat_free_crm/exportable.rb
reduced_fat_crm-0.15.0.beta lib/fat_free_crm/exportable.rb
reduced_fat_crm-0.14.0 lib/fat_free_crm/exportable.rb