Module: Tins::Scope
- Included in:
- DynamicScope
- Defined in:
- lib/tins/dslkit.rb
Instance Method Summary collapse
- #scope(name = :default) ⇒ Object
- #scope_block(scope_frame, name = :default) ⇒ Object
- #scope_get(name = :default) ⇒ Object
- #scope_pop(name = :default) ⇒ Object
- #scope_push(scope_frame, name = :default) ⇒ Object
- #scope_reverse(name = :default, &block) ⇒ Object
- #scope_top(name = :default) ⇒ Object
Instance Method Details
#scope(name = :default) ⇒ Object
572 573 574 |
# File 'lib/tins/dslkit.rb', line 572 def scope(name = :default) scope_get(name).dup end |
#scope_block(scope_frame, name = :default) ⇒ Object
560 561 562 563 564 565 566 |
# File 'lib/tins/dslkit.rb', line 560 def scope_block(scope_frame, name = :default) scope_push(scope_frame, name) yield self ensure scope_pop(name) end |
#scope_get(name = :default) ⇒ Object
568 569 570 |
# File 'lib/tins/dslkit.rb', line 568 def scope_get(name = :default) Thread.current[name] ||= [] end |
#scope_pop(name = :default) ⇒ Object
546 547 548 549 550 |
# File 'lib/tins/dslkit.rb', line 546 def scope_pop(name = :default) scope_get(name).pop scope_get(name).empty? and Thread.current[name] = nil self end |
#scope_push(scope_frame, name = :default) ⇒ Object
541 542 543 544 |
# File 'lib/tins/dslkit.rb', line 541 def scope_push(scope_frame, name = :default) scope_get(name).push scope_frame self end |
#scope_reverse(name = :default, &block) ⇒ Object
556 557 558 |
# File 'lib/tins/dslkit.rb', line 556 def scope_reverse(name = :default, &block) scope_get(name).reverse_each(&block) end |
#scope_top(name = :default) ⇒ Object
552 553 554 |
# File 'lib/tins/dslkit.rb', line 552 def scope_top(name = :default) scope_get(name).last end |