Class: NFAgent::Chunk

Inherits:
Object
  • Object
show all
Defined in:
lib/nfagent/chunk.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(max_size = 500) ⇒ Chunk

Returns a new instance of Chunk.



10
11
12
13
14
15
# File 'lib/nfagent/chunk.rb', line 10

def initialize(max_size = 500)
  @max_size = max_size
  @created_at = Time.now
  @array = []
  @submitter = Submitter.new(Config.client_key)
end

Instance Attribute Details

#created_atObject (readonly)

Returns the value of attribute created_at.



6
7
8
# File 'lib/nfagent/chunk.rb', line 6

def created_at
  @created_at
end

Instance Method Details

#<<(line) ⇒ Object



17
18
19
# File 'lib/nfagent/chunk.rb', line 17

def <<(line)
  @array << line
end

#clearObject



37
38
39
# File 'lib/nfagent/chunk.rb', line 37

def clear
  @array.clear
end

#dumpObject



29
30
31
32
33
34
35
# File 'lib/nfagent/chunk.rb', line 29

def dump
  puts @array.join("\n")
  payload = Encoder.encode64url(Zlib::Deflate.deflate(@array.join("\n"), Zlib::BEST_COMPRESSION))
  checksum = Digest::SHA1.hexdigest(payload)
  Log.info "Submitting chunk to server (#{checksum})"
  [ payload, checksum ]
end

#expired?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/nfagent/chunk.rb', line 25

def expired?
  (Time.now - @created_at > ::DEFAULT_TIME_OUT) && !@array.empty?
end

#full?Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/nfagent/chunk.rb', line 21

def full?
  @array.size >= @max_size
end

#submit_to_serverObject



41
42
43
44
# File 'lib/nfagent/chunk.rb', line 41

def submit_to_server
  payload, checksum = dump
  @submitter.submit(payload, checksum)
end