Class: Stratagem::Model::ComponentContainer

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/stratagem/model/application.rb

Direct Known Subclasses

PluginContainer, RouteContainer

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app_model) ⇒ ComponentContainer

Returns a new instance of ComponentContainer.



88
89
90
91
92
93
94
# File 'lib/stratagem/model/application.rb', line 88

def initialize(app_model)
  @app_model = app_model
  @components = Set.new()
  @parse_trees = {}
  @invalid = []
  @missing = {}
end

Instance Attribute Details

#componentsObject (readonly)

Returns the value of attribute components.



86
87
88
# File 'lib/stratagem/model/application.rb', line 86

def components
  @components
end

#errorsObject (readonly)

Returns the value of attribute errors.



86
87
88
# File 'lib/stratagem/model/application.rb', line 86

def errors
  @errors
end

#invalidObject (readonly)

Returns the value of attribute invalid.



86
87
88
# File 'lib/stratagem/model/application.rb', line 86

def invalid
  @invalid
end

#missingObject (readonly)

Returns the value of attribute missing.



86
87
88
# File 'lib/stratagem/model/application.rb', line 86

def missing
  @missing
end

#parse_treesObject (readonly)

Returns the value of attribute parse_trees.



86
87
88
# File 'lib/stratagem/model/application.rb', line 86

def parse_trees
  @parse_trees
end

Instance Method Details

#-(other) ⇒ Object



115
116
117
# File 'lib/stratagem/model/application.rb', line 115

def -(other)
  @components-other
end

#<<(component) ⇒ Object



127
128
129
130
131
132
133
134
135
136
137
138
139
# File 'lib/stratagem/model/application.rb', line 127

def << (component)
  if (component.kind_of?(Array))
    component.each {|e| 
      @components << e 
      e.app_model = @app_model if e.methods_include?(:app_model=)
    }
  elsif (component.kind_of?(Exception))
    errors << component
  else
    @components << component
    component.app_model = @app_model if component.methods_include?(:app_model=)
  end
end

#clearObject



107
108
109
# File 'lib/stratagem/model/application.rb', line 107

def clear
  @components.clear
end

#eachObject



119
120
121
# File 'lib/stratagem/model/application.rb', line 119

def each
  @components.each {|e| yield e }
end

#export(options = nil) ⇒ Object



96
97
98
99
100
101
# File 'lib/stratagem/model/application.rb', line 96

def export(options=nil)
  {
    :components => @components.to_a.map {|c| c.export }.compact,
    :invalid => @invalid.map {|c| c.export }.compact 
  }
end

#findObject



103
104
105
# File 'lib/stratagem/model/application.rb', line 103

def find
  @components.find{|component| yield component } 
end

#mapObject



123
124
125
# File 'lib/stratagem/model/application.rb', line 123

def map
  @components.map {|e| yield e }
end

#sizeObject



111
112
113
# File 'lib/stratagem/model/application.rb', line 111

def size
  @components.size
end