lib/zold/node/farm.rb in zold-0.17.5 vs lib/zold/node/farm.rb in zold-0.17.6

- old
+ new

@@ -194,35 +194,30 @@ end def save(threads, list = []) scores = load + list period = @lifetime / [threads, 1].max - Futex.new(@cache).open do |f| - IO.write( - f, - scores.select(&:valid?) - .reject(&:expired?) - .reject { |s| s.strength < @strength } - .sort_by(&:value) - .reverse - .uniq(&:time) - .uniq { |s| (s.age / period).round } - .map(&:to_s) - .uniq - .join("\n") - ) - end + body = scores.select(&:valid?) + .reject(&:expired?) + .reject { |s| s.strength < @strength } + .sort_by(&:value) + .reverse + .uniq(&:time) + .uniq { |s| (s.age / period).round } + .map(&:to_s) + .uniq + .join("\n") + Futex.new(@cache).open { |f| IO.write(f, body) } end def load return [] unless File.exist?(@cache) - Futex.new(@cache).open(false) do |f| - IO.read(f).split(/\n/).map do |t| - Score.parse(t) - rescue StandardError => e - @log.error(Backtrace.new(e).to_s) - nil - end.compact - end + body = Futex.new(@cache).open(false) { |f| IO.read(f) } + body.split(/\n/).reject(&:empty?).map do |t| + Score.parse(t) + rescue StandardError => e + @log.error(Backtrace.new(e).to_s) + nil + end.compact end end end