Sha256: a58a7de73d372add793eccdd54ab8ca7abc83ab3df938c984af2692d083a4d46

Contents?: true

Size: 1.43 KB

Versions: 18

Compression:

Stored size: 1.43 KB

Contents

module Pantograph
  # Represents an argument to the ActionCommand
  class Argument
    def initialize(json: nil)
      @name = json['name']
      @value = json['value']
      @value_type = json['value_type']
    end

    def is_named
      return @name.to_s.length > 0
    end

    def inspect
      if is_named
        return "named argument: #{name}, value: #{value}, type: #{value_type}"
      else
        return "unnamed argument value: #{value}, type: #{value_type}"
      end
    end

    attr_reader :name
    attr_reader :value
    attr_reader :value_type
  end

  # Represents a command that is meant to execute an Action on the client's behalf
  class ActionCommand
    attr_reader :command_id # always present
    attr_reader :args # always present
    attr_reader :method_name # always present
    attr_reader :class_name # only present when executing a class-method

    def initialize(json: nil)
      @method_name = json['methodName']
      @class_name = json['className']
      @command_id = json['commandID']

      args_json = json['args'] ||= []
      @args = args_json.map do |arg|
        Argument.new(json: arg)
      end
    end

    def cancel_signal?
      return @command_id == "cancelPantographRun"
    end

    def target_class
      unless class_name
        return nil
      end

      return Pantograph::Actions.const_get(class_name)
    end

    def is_class_method_command
      return class_name.to_s.length > 0
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
pantograph-0.1.22 pantograph/lib/pantograph/server/action_command.rb
pantograph-0.1.21 pantograph/lib/pantograph/server/action_command.rb
pantograph-0.1.20 pantograph/lib/pantograph/server/action_command.rb
pantograph-0.1.19 pantograph/lib/pantograph/server/action_command.rb
pantograph-0.1.17 pantograph/lib/pantograph/server/action_command.rb
pantograph-0.1.16 pantograph/lib/pantograph/server/action_command.rb
pantograph-0.1.15 pantograph/lib/pantograph/server/action_command.rb
pantograph-0.1.14 pantograph/lib/pantograph/server/action_command.rb
pantograph-0.1.13 pantograph/lib/pantograph/server/action_command.rb
pantograph-0.1.12 pantograph/lib/pantograph/server/action_command.rb
pantograph-0.1.10 pantograph/lib/pantograph/server/action_command.rb
pantograph-0.1.8 pantograph/lib/pantograph/server/action_command.rb
pantograph-0.1.7 pantograph/lib/pantograph/server/action_command.rb
pantograph-0.1.6 pantograph/lib/pantograph/server/action_command.rb
pantograph-0.1.4 pantograph/lib/pantograph/server/action_command.rb
pantograph-0.1.3 pantograph/lib/pantograph/server/action_command.rb
pantograph-0.1.1 pantograph/lib/pantograph/server/action_command.rb
pantograph-0.1.0 pantograph/lib/pantograph/server/action_command.rb