Module: Lev::RoutineNesting::ClassMethods
- Defined in:
- lib/lev/routine_nesting.rb
Instance Method Summary collapse
- #default_transaction_isolation ⇒ Object
- #nested_routines ⇒ Object
- #transaction_isolation ⇒ Object
-
#uses_routine(routine_class, options = {}) ⇒ Object
Called at a routine’s class level to foretell which other routines will be used when this routine executes.
Instance Method Details
#default_transaction_isolation ⇒ Object
64 65 66 |
# File 'lib/lev/routine_nesting.rb', line 64 def default_transaction_isolation TransactionIsolation.no_transaction end |
#nested_routines ⇒ Object
68 69 70 |
# File 'lib/lev/routine_nesting.rb', line 68 def nested_routines @nested_routines ||= {} end |
#transaction_isolation ⇒ Object
60 61 62 |
# File 'lib/lev/routine_nesting.rb', line 60 def transaction_isolation @transaction_isolation ||= default_transaction_isolation end |
#uses_routine(routine_class, options = {}) ⇒ Object
Called at a routine’s class level to foretell which other routines will be used when this routine executes. Helpful for figuring out ahead of time what kind of transaction isolation level should be used.
49 50 51 52 53 54 55 56 57 58 |
# File 'lib/lev/routine_nesting.rb', line 49 def uses_routine(routine_class, ={}) symbol = [:as] || routine_class.name.underscore.gsub('/','_').to_sym raise IllegalArgument, "Routine #{routine_class} has already been registered" \ if nested_routines[symbol] nested_routines[symbol] = routine_class transaction_isolation.replace_if_more_isolated(routine_class.transaction_isolation) end |