Sha256: 0cddd31f566ae16caa60f5136a4c356209e84ddf6de3da187e4be4521103e3c6
Contents?: true
Size: 1.48 KB
Versions: 2
Compression:
Stored size: 1.48 KB
Contents
require 'delegate' require 'etc' module Mkwebook class Config < SimpleDelegator attr_accessor :file, :config, :cli_options def initialize(cli_options = {}) super(nil) @cli_options = cli_options @file = find_mkwebook_yaml if @file && File.exist?(@file) @config = load(@file) __setobj__(@config) else __setobj__(self) end end def load(config_file) default_config = { 'browser' => { 'headless' => true, }, 'concurrency': 1, 'max-recursion': 1 } config = YAML.load_file(config_file) config = default_config.deep_merge(config).deep_transform_keys! { |k| k.to_s.underscore.to_sym } config[:concurrency] = 1 if force_single_threaded? config[:browser][:headless] = false if @cli_options[:headmode] config end def concurrent? config[:concurrency].present? end def authentication? config.dig(:authentication, :cookies).present? || config.dig(:authentication, :local_storage).present? end def find_mkwebook_yaml dir = Dir.pwd while dir != '/' file = File.join(dir, 'mkwebook.yaml') return file if File.exist?(file) file = File.join(dir, 'mkwebook.yml') return file if File.exist?(file) dir = File.dirname(dir) end end def force_single_threaded? @cli_options[:pause] || @cli_options[:pause_on_error] || @cli_options[:single_thread] end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mkwebook-0.1.3 | lib/mkwebook/config.rb |
mkwebook-0.1.2 | lib/mkwebook/config.rb |