Module: Onceler::BasicHelpers::ClassMethods
- Includes:
- AroundAll
- Defined in:
- lib/onceler/basic_helpers.rb
Instance Method Summary collapse
- #before(*args, &block) ⇒ Object
- #before_once(&block) ⇒ Object
- #before_once?(type) ⇒ Boolean
- #create_onceler! ⇒ Object
- #let_once(name, &block) ⇒ Object
- #onceler(create_own = false) ⇒ Object
- #subject_once(name = nil, &block) ⇒ Object
Methods included from AroundAll
Instance Method Details
#before(*args, &block) ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/onceler/basic_helpers.rb', line 39 def before(*args, &block) if before_once?(args.first) before_once(&block) else super(*args, &block) end end |
#before_once(&block) ⇒ Object
31 32 33 |
# File 'lib/onceler/basic_helpers.rb', line 31 def before_once(&block) onceler(:create) << block end |
#before_once?(type) ⇒ Boolean
35 36 37 |
# File 'lib/onceler/basic_helpers.rb', line 35 def before_once?(type) type == :once end |
#create_onceler! ⇒ Object
55 56 57 58 |
# File 'lib/onceler/basic_helpers.rb', line 55 def create_onceler! add_onceler_hooks! Recorder.new(parent_onceler) end |
#let_once(name, &block) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/onceler/basic_helpers.rb', line 18 def let_once(name, &block) 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 |
#onceler(create_own = false) ⇒ Object
47 48 49 50 51 52 53 |
# File 'lib/onceler/basic_helpers.rb', line 47 def onceler(create_own = false) if create_own @onceler ||= create_onceler! else @onceler || parent_onceler end end |
#subject_once(name = nil, &block) ⇒ Object
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 |