Class: Krakow::Command

Inherits:
Object
  • Object
show all
Includes:
Utils::Lazy
Defined in:
lib/krakow/command.rb,
lib/krakow/command/sub.rb,
lib/krakow/command/nop.rb,
lib/krakow/command/rdy.rb,
lib/krakow/command/pub.rb,
lib/krakow/command/fin.rb,
lib/krakow/command/req.rb,
lib/krakow/command/cls.rb,
lib/krakow/command/mpub.rb,
lib/krakow/command/touch.rb,
lib/krakow/command/identify.rb

Overview

Messages for sending to remote server

Direct Known Subclasses

Cls, Fin, Identify, Mpub, Nop, Pub, Rdy, Req, Sub, Touch

Defined Under Namespace

Classes: Cls, Fin, Identify, Mpub, Nop, Pub, Rdy, Req, Sub, Touch

Instance Attribute Summary (collapse)

Class Method Summary (collapse)

Instance Method Summary (collapse)

Instance Attribute Details

- (Krakow::FrameType) response

Returns response to command

Returns:



46
47
48
# File 'lib/krakow/command.rb', line 46

def response
  @response
end

Class Method Details

+ (Array<String>) error

Allowed ERROR return values

Returns:

  • (Array<String>)


23
24
25
# File 'lib/krakow/command.rb', line 23

def error
  []
end

+ (Array<String>) ok

Allowed OK return values

Returns:

  • (Array<String>)


16
17
18
# File 'lib/krakow/command.rb', line 16

def ok
  []
end

+ (Symbol) response_for(message)

Response type expected

Parameters:

  • message (Krakow::Message)

    message to check

Returns:

  • (Symbol)

    response expected (:none, :error_only, :required)



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/krakow/command.rb', line 31

def response_for(message)
  if(message.class.ok.empty?)
    if(message.class.error.empty?)
      :none
    else
      :error_only
    end
  else
    :required
  end
end

Instance Method Details

- (TrueClass, FalseClass) error?(response)

Is response ERROR

Returns:

  • (TrueClass, FalseClass)


71
72
73
74
# File 'lib/krakow/command.rb', line 71

def error?(response)
  response = response.content if response.is_a?(FrameType)
  self.class.error.include?(response)
end

- (Logger?) log(*args) Originally defined in module Utils::Logging

Log message

Parameters:

  • args (Array, nil)

Returns:

  • (Logger, nil)

- (String) name

Returns name of command

Returns:

  • (String)

    name of command



49
50
51
# File 'lib/krakow/command.rb', line 49

def name
  self.class.name.split('::').last.upcase
end

- (TrueClass, FalseClass) ok?(response)

Is response OK

Returns:

  • (TrueClass, FalseClass)


63
64
65
66
# File 'lib/krakow/command.rb', line 63

def ok?(response)
  response = response.content if response.is_a?(FrameType)
  self.class.ok.include?(response)
end

- (String) to_line(*args)

Convert to line output

Returns:

  • (String)

    socket ready string



56
57
58
# File 'lib/krakow/command.rb', line 56

def to_line(*args)
  raise NotImplementedError.new 'No line conversion method defined!'
end