Class: MasterView::TemplateProcessing::DirectiveSet

Inherits:
Object
  • Object
show all
Defined in:
lib/masterview/parser.rb

Overview

List of directives.

Constructed with the directives for a template document element, sorted into processing order by directive priority level

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeDirectiveSet



95
96
97
# File 'lib/masterview/parser.rb', line 95

def initialize
  @directives = []
end

Instance Attribute Details

#directivesObject

Returns the value of attribute directives.



94
95
96
# File 'lib/masterview/parser.rb', line 94

def directives
  @directives
end

Instance Method Details

#<<(directive) ⇒ Object



99
100
101
102
103
# File 'lib/masterview/parser.rb', line 99

def <<(directive)
  @directives << directive
  @directives.flatten!
  self
end

#create_call_proc(directive, method_name_sym) ⇒ Object



116
117
118
119
120
121
# File 'lib/masterview/parser.rb', line 116

def create_call_proc(directive, method_name_sym)
  lambda do |dcs|
    directive.save_directive_call_stack(dcs) if directive.respond_to? :save_directive_call_stack
    directive.send(method_name_sym, dcs)
  end
end

#determine_dcs(method_name) ⇒ Object



105
106
107
108
109
110
111
112
113
114
# File 'lib/masterview/parser.rb', line 105

def determine_dcs(method_name)
  method_name_sym = method_name.to_sym
  dcs = DirectiveCallStack.new
  @directives.each do |directive|
    if directive.respond_to? method_name_sym
      dcs << create_call_proc(directive, method_name_sym)
    end
  end
  dcs
end