Module: Memento
- Defined in:
- lib/memento.rb,
lib/memento/state.rb,
lib/memento/result.rb,
lib/memento/session.rb,
lib/memento/version.rb,
lib/memento/action/create.rb,
lib/memento/action/update.rb,
lib/memento/action/destroy.rb,
lib/memento/action_controller_methods.rb
Defined Under Namespace
Modules: Action, ActionControllerMethods, ActiveRecordMethods
Classes: ErrorOnRewind, Result, ResultArray, Session, State
Constant Summary
collapse
- VERSION =
"0.4.3"
Class Method Summary
collapse
Class Method Details
.active? ⇒ Boolean
37
38
39
|
# File 'lib/memento.rb', line 37
def active?
!!session && !ignore?
end
|
.add_state(action_type, record) ⇒ Object
32
33
34
35
|
# File 'lib/memento.rb', line 32
def add_state(action_type, record)
return unless save_session
session.add_state(action_type, record)
end
|
.ignore ⇒ Object
41
42
43
44
45
46
|
# File 'lib/memento.rb', line 41
def ignore
Thread.current[:memento_ignore] = true
yield
ensure
Thread.current[:memento_ignore] = false
end
|
.instance ⇒ Object
For backwards compatibility (was a Singleton)
10
11
12
|
# File 'lib/memento.rb', line 10
def instance
self
end
|
.serializer ⇒ Object
52
53
54
|
# File 'lib/memento.rb', line 52
def serializer
@serializer ||= YAML
end
|
.serializer=(serializer) ⇒ Object
48
49
50
|
# File 'lib/memento.rb', line 48
def serializer=(serializer)
@serializer = serializer
end
|
.start(user_or_id) ⇒ Object
22
23
24
25
|
# File 'lib/memento.rb', line 22
def start(user_or_id)
user = user_or_id.is_a?(User) ? user_or_id : User.where(:id => user_or_id).first
self.session = user ? Memento::Session.new(:user => user) : nil
end
|
.stop ⇒ Object
27
28
29
30
|
# File 'lib/memento.rb', line 27
def stop
session.destroy if session && session.states.count.zero?
self.session = nil
end
|
.watch(user_or_id) ⇒ Object
14
15
16
17
18
19
20
|
# File 'lib/memento.rb', line 14
def watch(user_or_id)
start(user_or_id)
yield
session && !session.new_record? && session.states.any? ? session : false
ensure
stop
end
|