Class: Lib::BOOTP::Packet::OpCode
- Inherits:
-
Object
- Object
- Lib::BOOTP::Packet::OpCode
- Extended by:
- Forwardable
- Includes:
- Comparable
- Defined in:
- lib/lib/bootp/packet/op_code.rb
Class Method Summary collapse
Instance Method Summary collapse
- #<=>(other) ⇒ Object
-
#initialize(op = 1) ⇒ OpCode
constructor
A new instance of OpCode.
- #pack ⇒ Object
- #to_h ⇒ Object
- #to_json(*params) ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(op = 1) ⇒ OpCode
Returns a new instance of OpCode.
19 20 21 22 |
# File 'lib/lib/bootp/packet/op_code.rb', line 19 def initialize(op=1) @op = op.is_a?(Hash) ? op.transform_keys(&:to_sym)[:code].to_i : op raise ArgumentError, "OP Code out of range : #{@op}" unless [1,2].include? @op.to_i end |
Class Method Details
.unpack(op) ⇒ Object
52 53 54 |
# File 'lib/lib/bootp/packet/op_code.rb', line 52 def self.unpack(op) self.new op.unpack('C').first end |
Instance Method Details
#<=>(other) ⇒ Object
43 44 45 46 |
# File 'lib/lib/bootp/packet/op_code.rb', line 43 def <=>(other) return self.to_i <=> other if other.is_a?(Integer) self.to_s <=> other.to_s.upcase end |
#pack ⇒ Object
48 49 50 |
# File 'lib/lib/bootp/packet/op_code.rb', line 48 def pack [@op.to_i].pack('C') end |
#to_h ⇒ Object
36 37 38 39 40 41 |
# File 'lib/lib/bootp/packet/op_code.rb', line 36 def to_h { code: @op.to_s, name: self.to_s } end |
#to_json(*params) ⇒ Object
32 33 34 |
# File 'lib/lib/bootp/packet/op_code.rb', line 32 def to_json(*params) self.to_h.to_json end |
#to_s ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/lib/bootp/packet/op_code.rb', line 24 def to_s if @op == 1 'BOOTREQUEST' elsif @op == 2 'BOOTREPLY' end end |