Module: Onceler::BasicHelpers::ClassMethods
- Defined in:
- lib/onceler/basic_helpers.rb
Instance Attribute Summary collapse
Instance Method Summary collapse
- #after(*args, &block) ⇒ Object
- #before(*args, &block) ⇒ Object
- #before_once(&block) ⇒ Object
- #create_onceler! ⇒ Object
- #let_once(name, &block) ⇒ Object
- #once_scopes ⇒ Object
- #onceler(create_own = false) ⇒ Object
- #parent_onceler ⇒ Object
-
#subject_once(name = nil, &block) ⇒ Object
TODO NamedSubjectPreventSuper.
Instance Attribute Details
#onceler_connections ⇒ Object
110 111 112 113 114 |
# File 'lib/onceler/basic_helpers.rb', line 110 def onceler_connections @onceler_connections ||= [ActiveRecord::Base.connection] @onceler_connections = instance_eval(&@onceler_connections) if @onceler_connections.respond_to?(:call) @onceler_connections end |
Instance Method Details
#after(*args, &block) ⇒ Object
73 74 75 76 77 78 79 80 81 |
# File 'lib/onceler/basic_helpers.rb', line 73 def after(*args, &block) scope = args.first case scope when :record, :reset onceler(:create).hooks[:after][scope] << block else super end end |
#before(*args, &block) ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/onceler/basic_helpers.rb', line 61 def before(*args, &block) scope = args.first case scope when :record, :reset onceler(:create).hooks[:before][scope] << block when *once_scopes before_once(&block) else super(*args, &block) end end |
#before_once(&block) ⇒ Object
30 31 32 |
# File 'lib/onceler/basic_helpers.rb', line 30 def before_once(&block) onceler(:create) << block end |
#create_onceler! ⇒ Object
91 92 93 94 |
# File 'lib/onceler/basic_helpers.rb', line 91 def create_onceler! add_onceler_hooks! Recorder.new(self) end |
#let_once(name, &block) ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/onceler/basic_helpers.rb', line 15 def let_once(name, &block) raise ArgumentError, "wrong number of arguments (0 for 1)" if name.nil? raise "#let or #subject called without a block" if block.nil? onceler(:create)[name] = block @current_let_once = name define_method(name) { onceler[name] } end |
#once_scopes ⇒ Object
34 35 36 |
# File 'lib/onceler/basic_helpers.rb', line 34 def once_scopes [:once] end |
#onceler(create_own = false) ⇒ Object
83 84 85 86 87 88 89 |
# File 'lib/onceler/basic_helpers.rb', line 83 def onceler(create_own = false) if create_own @onceler ||= create_onceler! else @onceler || parent_onceler end end |
#parent_onceler ⇒ Object
96 97 98 99 |
# File 'lib/onceler/basic_helpers.rb', line 96 def parent_onceler return unless superclass.respond_to?(:onceler) superclass.onceler end |
#subject_once(name = nil, &block) ⇒ Object
TODO NamedSubjectPreventSuper
24 25 26 27 28 |
# File 'lib/onceler/basic_helpers.rb', line 24 def subject_once(name = nil, &block) name ||= :subject let_once(name, &block) alias_method :subject, name if name != :subject end |