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
- #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
107 108 109 110 111 |
# File 'lib/onceler/basic_helpers.rb', line 107 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
75 76 77 78 79 80 81 82 83 |
# File 'lib/onceler/basic_helpers.rb', line 75 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
63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/onceler/basic_helpers.rb', line 63 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
31 32 33 34 |
# File 'lib/onceler/basic_helpers.rb', line 31 def before_once(&block) onceler(:create) << block add_onceler_hooks! end |
#let_once(name, &block) ⇒ Object
15 16 17 18 19 20 21 22 |
# 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 add_onceler_hooks! @current_let_once = name define_method(name) { onceler[name] } end |
#once_scopes ⇒ Object
36 37 38 |
# File 'lib/onceler/basic_helpers.rb', line 36 def once_scopes [:once] end |
#onceler(create_own = false) ⇒ Object
85 86 87 88 89 90 91 |
# File 'lib/onceler/basic_helpers.rb', line 85 def onceler(create_own = false) if create_own @onceler ||= Recorder.new(self) else @onceler || parent_onceler end end |
#parent_onceler ⇒ Object
93 94 95 96 |
# File 'lib/onceler/basic_helpers.rb', line 93 def parent_onceler return unless superclass.respond_to?(:onceler) superclass.onceler end |
#subject_once(name = nil, &block) ⇒ Object
TODO NamedSubjectPreventSuper
25 26 27 28 29 |
# File 'lib/onceler/basic_helpers.rb', line 25 def subject_once(name = nil, &block) name ||= :subject let_once(name, &block) alias_method :subject, name if name != :subject end |