Class: Fastlane::CommandParser

Inherits:
Object
  • Object
show all
Defined in:
fastlane/lib/fastlane/server/command_parser.rb

Class Method Summary collapse

Class Method Details

.handle_new_style_commands(command_json: nil) ⇒ Object


24
25
26
27
28
29
30
31
32
33
34
# File 'fastlane/lib/fastlane/server/command_parser.rb', line 24

def self.handle_new_style_commands(command_json: nil)
  command_type = command_json['commandType'].to_sym
  command = command_json['command']

  case command_type
  when :action
    return ActionCommand.new(json: command)
  when :control
    return ControlCommand.new(json: command)
  end
end

.handle_old_style_action_command(command_json: nil) ⇒ Object


36
37
38
# File 'fastlane/lib/fastlane/server/command_parser.rb', line 36

def self.handle_old_style_action_command(command_json: nil)
  return ActionCommand.new(json: command_json)
end

.intercept_old_done_commandObject


40
41
42
# File 'fastlane/lib/fastlane/server/command_parser.rb', line 40

def self.intercept_old_done_command
  return ControlCommand.new(json: '{"command":"done"}')
end

.parse(json: nil) ⇒ Object


7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'fastlane/lib/fastlane/server/command_parser.rb', line 7

def self.parse(json: nil)
  if json.strip == "done"
    return intercept_old_done_command
  end

  command_json = JSON.parse(json)
  command_type_json = command_json['commandType']

  if command_type_json.nil?
    # Old Swift style (needs upgrade)
    return handle_old_style_action_command(command_json: command_json)
  else
    # New Swift command style
    return handle_new_style_commands(command_json: command_json)
  end
end