Module: Stampable::Base

Defined in:
lib/stampable/base.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.configObject



7
8
9
# File 'lib/stampable/base.rb', line 7

def self.config
  @config || {:stamp_field => :modified_by, :except_user_list => ['background_job']}
end

.config=(config) ⇒ Object



3
4
5
# File 'lib/stampable/base.rb', line 3

def self.config= config
  @config = self.config.merge(config)
end

.included(klass) ⇒ Object



11
12
13
# File 'lib/stampable/base.rb', line 11

def self.included(klass)
  klass.send :before_save, :set_modified_by
end

Instance Method Details

#set_modified_byObject



15
16
17
18
19
20
21
# File 'lib/stampable/base.rb', line 15

def set_modified_by
  return unless changed?
  user_name = Thread.current['current_user'] || Stampable::Base.config[:default_user]
  return if Stampable::Base.config[:except_user_list].include?(user_name)
  stamp_writer = (Stampable::Base.config[:stamp_field].to_s + '=').to_sym
  send(stamp_writer, user_name) if respond_to?(stamp_writer)
end