Class: MasterView::DirectiveSet

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeDirectiveSet

Returns a new instance of DirectiveSet.



86
87
88
# File 'lib/masterview/parser.rb', line 86

def initialize
  @directives = []
end

Instance Attribute Details

#directivesObject

Returns the value of attribute directives.



85
86
87
# File 'lib/masterview/parser.rb', line 85

def directives
  @directives
end

Instance Method Details

#<<(directive) ⇒ Object



90
91
92
93
94
# File 'lib/masterview/parser.rb', line 90

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

#create_call_proc(directive, method_name_sym) ⇒ Object



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

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



96
97
98
99
100
101
102
103
104
105
# File 'lib/masterview/parser.rb', line 96

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