Class: Nanoc::CLI::Commands::Compile::GCController

Inherits:
Listener
  • Object
show all
Defined in:
lib/nanoc/cli/commands/compile.rb

Overview

Controls garbage collection so that it only occurs once every 20 items

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeGCController

Returns a new instance of GCController



267
268
269
# File 'lib/nanoc/cli/commands/compile.rb', line 267

def initialize(*)
  @gc_count = 0
end

Class Method Details

.enable_for?(_command_runner) ⇒ Boolean

Returns:

  • (Boolean)

See Also:



263
264
265
# File 'lib/nanoc/cli/commands/compile.rb', line 263

def self.enable_for?(_command_runner)
  !ENV.key?('TRAVIS')
end

Instance Method Details

#startObject

See Also:



272
273
274
275
276
277
278
279
280
281
# File 'lib/nanoc/cli/commands/compile.rb', line 272

def start
  Nanoc::Int::NotificationCenter.on(:compilation_started) do |_rep|
    if (@gc_count % 20).zero?
      GC.enable
      GC.start
      GC.disable
    end
    @gc_count += 1
  end
end

#stopObject

See Also:



284
285
286
287
# File 'lib/nanoc/cli/commands/compile.rb', line 284

def stop
  super
  GC.enable
end