Class: Gexp::Command::Stack
- Inherits:
-
Object
- Object
- Gexp::Command::Stack
- Includes:
- Enumerable
- Defined in:
- lib/gexp/command/stack.rb
Overview
Стек комманд.
Принимает реквест и разбивает его батч на команды
Instance Attribute Summary collapse
-
#request ⇒ Object
Returns the value of attribute request.
-
#user ⇒ Object
Returns the value of attribute user.
Instance Method Summary collapse
-
#build_command(command_param = {}) ⇒ Object
Фабрика команд по их параметрам.
-
#each(&block) ⇒ Object
Просто перебор команд для Enumerable.
-
#fill(request = nil) ⇒ Object
Заполняет хеш команд по реквесту.
-
#initialize(user, request) ⇒ Stack
constructor
A new instance of Stack.
- #size ⇒ Object
Constructor Details
#initialize(user, request) ⇒ Stack
Returns a new instance of Stack.
14 15 16 17 18 19 |
# File 'lib/gexp/command/stack.rb', line 14 def initialize(user, request) @user = user @request = request @commands = {} # для ruby 1.9.x иначе OrderedHash self.fill() end |
Instance Attribute Details
#request ⇒ Object
Returns the value of attribute request.
12 13 14 |
# File 'lib/gexp/command/stack.rb', line 12 def request @request end |
#user ⇒ Object
Returns the value of attribute user.
12 13 14 |
# File 'lib/gexp/command/stack.rb', line 12 def user @user end |
Instance Method Details
#build_command(command_param = {}) ⇒ Object
Фабрика команд по их параметрам
22 23 24 25 26 27 28 |
# File 'lib/gexp/command/stack.rb', line 22 def build_command(command_param = {}) # XXX: пока один поддерживаемый тип комманд # TODO: Расширять типы команд отсюда, # возможно нужен конфиг соотвествия # Тип События - Тип команды Gexp::Command::Object.new(command_param) end |
#each(&block) ⇒ Object
Просто перебор команд для Enumerable
46 47 48 |
# File 'lib/gexp/command/stack.rb', line 46 def each(&block) @commands.each(&block) end |
#fill(request = nil) ⇒ Object
Заполняет хеш команд по реквесту
31 32 33 34 35 36 37 38 39 |
# File 'lib/gexp/command/stack.rb', line 31 def fill(request = nil) request ||= @request @commands = {} opts = request[:params][:commands] || [] opts.each do |command_param| self.add self.build_command(command_param) end end |
#size ⇒ Object
41 42 43 |
# File 'lib/gexp/command/stack.rb', line 41 def size @commands.size end |