Sha256: fdd12629e43a6d1bc166d752b071e161e26ff35244b3c9c5a3fbd46cb5b619d0

Contents?: true

Size: 622 Bytes

Versions: 4

Compression:

Stored size: 622 Bytes

Contents

# -*- encoding : utf-8 -*-
module LoyalCore
  module ActsAsCreatorAble
    def self.included base
      base.class_eval do
        extend ClassMethods
      end
    end

    module ClassMethods
      def loyal_core_acts_as_creator_able *args
        belongs_to :creator, :class_name => "User", :foreign_key => :created_by

        scope :filter_by_creator, ->(user_or_user_id) do
          where :created_by => (user_or_user_id.is_a?(::User) ? user_or_user_id.id : user_or_user_id)
        end

        define_method :creator_is? do |__user|
          self.created_by == __user.id
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
loyal_core-0.0.11 lib/loyal_core/acts/creator_able.rb
loyal_core-0.0.10 lib/loyal_core/acts/creator_able.rb
loyal_core-0.0.8 lib/loyal_core/acts/creator_able.rb
loyal_core-0.0.7 lib/loyal_core/acts/creator_able.rb