Sha256: 17331593cd0319883ac6031b04d927acbd7d0593735000f434ce1d7c722011ef

Contents?: true

Size: 1.04 KB

Versions: 7

Compression:

Stored size: 1.04 KB

Contents

module Cms
  module Behaviors
    module Userstamping
      def self.included(model_class)
        model_class.extend(MacroMethods)
      end

      module MacroMethods
        def userstamped?
          !!@is_userstamped
        end

        def is_userstamped(_options={})
          @is_userstamped = true
          extend ClassMethods
          include InstanceMethods
        
          belongs_to :created_by, class_name: Cms.user_class_name
          belongs_to :updated_by, class_name: Cms.user_class_name
        
          before_save :set_userstamps

          scope :created_by, lambda { |user| { conditions: { created_by: user } } }
          scope :updated_by, lambda { |user| { conditions: { updated_by: user } } }
        end
      end

      module ClassMethods
      end

      module InstanceMethods
        def set_userstamps
          current_user = Cms::UsersService.current.presence
          if new_record?
            self.created_by = current_user
          end
          self.updated_by = current_user
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
browsercms-artirix-4.0.4 lib/cms/behaviors/userstamping.rb
browsercms-artirix-4.0.3.3 lib/cms/behaviors/userstamping.rb
browsercms-artirix-4.0.3.2 lib/cms/behaviors/userstamping.rb
browsercms-artirix-4.0.3.1 lib/cms/behaviors/userstamping.rb
browsercms-artirix-4.0.3 lib/cms/behaviors/userstamping.rb
browsercms-artirix-4.0.2 lib/cms/behaviors/userstamping.rb
browsercms-artirix-4.0.1.1 lib/cms/behaviors/userstamping.rb