Sha256: 1e1402d5b0c6d7bf64ad8048bcf822a2ffb12a2eceb0a0407774feaee6335d19

Contents?: true

Size: 758 Bytes

Versions: 164

Compression:

Stored size: 758 Bytes

Contents

# frozen_string_literal: true

module Motor
  module Configs
    module WriteToFile
      THREAD_POOL = Concurrent::FixedThreadPool.new(1)

      module_function

      def call
        return if Rails.env.test?
        return if THREAD_POOL.queue_length.positive?

        THREAD_POOL.post do
          ActiveRecord::Base.logger.silence do
            write_with_lock
          end
        rescue StandardError => e
          Rails.logger.error(e)
        end
      end

      def write_with_lock
        File.open(Motor::Configs.file_path, 'w') do |file|
          file.flock(File::LOCK_EX)

          YAML.dump(Motor::Configs::BuildConfigsHash.call, file)

          file.flock(File::LOCK_UN)

          file
        end.close
      end
    end
  end
end

Version data entries

164 entries across 164 versions & 7 rubygems

Version Path
motor-admin-unosquare-0.4.27 lib/motor/configs/write_to_file.rb
motor-admin-pz-0.4.26 lib/motor/configs/write_to_file.rb
motor-admin-0.4.26 lib/motor/configs/write_to_file.rb
motor-admin-0.4.25 lib/motor/configs/write_to_file.rb
motor-admin-0.4.24 lib/motor/configs/write_to_file.rb
motor-admin-0.4.23 lib/motor/configs/write_to_file.rb
motor-admin-pz-0.4.22 lib/motor/configs/write_to_file.rb
motor-admin-0.4.22 lib/motor/configs/write_to_file.rb
motor-admin-pz-0.4.21 lib/motor/configs/write_to_file.rb
motor-admin-0.4.21 lib/motor/configs/write_to_file.rb
motor-admin-0.4.20 lib/motor/configs/write_to_file.rb
motor-admin-0.4.19 lib/motor/configs/write_to_file.rb
motor-admin-pz-0.4.18.1 lib/motor/configs/write_to_file.rb
motor-admin-0.4.18 lib/motor/configs/write_to_file.rb
motor-admin-0.4.17 lib/motor/configs/write_to_file.rb
motor-alexandermohan-admin-panel-0.4.161 lib/motor/configs/write_to_file.rb
alexandermohan-admin-panel-0.4.161 lib/motor/configs/write_to_file.rb
motor-admin-0.4.16 lib/motor/configs/write_to_file.rb
motor-admin-pz-0.4.14 lib/motor/configs/write_to_file.rb
motor-admin-0.4.15 lib/motor/configs/write_to_file.rb