lib/squib/conf.rb in squib-0.15.0 vs lib/squib/conf.rb in squib-0.15.1
- old
+ new
@@ -1,139 +1,139 @@
-require 'forwardable'
-require 'yaml'
-require_relative 'args/typographer'
-
-module Squib
- USER_CONFIG = {}
-
- def configure(opts)
- str_hash = opts.inject({}) { |h, (k, v)| h[k.to_s] = v; h }
- USER_CONFIG.merge! str_hash
- end
- module_function :configure
-
- # @api private
- class Conf
-
- DEFAULTS = {
- 'antialias' => 'best',
- 'backend' => 'memory',
- 'count_format' => '%02d',
- 'custom_colors' => {},
- 'dir' => '_output',
- 'hint' => :none,
- 'img_dir' => '.',
- 'progress_bars' => false,
- 'prefix' => 'card_',
- 'ldquote' => "\u201C", # UTF8 chars
- 'rdquote' => "\u201D",
- 'lsquote' => "\u2018",
- 'rsquote' => "\u2019",
- 'em_dash' => "\u2014",
- 'en_dash' => "\u2013",
- 'ellipsis' => "\u2026",
- 'smart_quotes' => true,
- 'text_hint' => 'off',
- 'warn_ellipsize' => true,
- 'warn_png_scale' => true,
- }
-
- # Translate the hints to the methods.
- ANTIALIAS_OPTS = {
- nil => 'subpixel',
- 'best' => 'subpixel',
- 'good' => 'gray',
- 'fast' => 'gray',
- 'gray' => 'gray',
- 'subpixel' => 'subpixel'
- }
-
- def initialize(config_hash = DEFAULTS)
- @config_hash = config_hash.merge USER_CONFIG # programmatic overrides yml
- @typographer = Args::Typographer.new(config_hash)
- normalize_antialias
- end
-
- # Load the configuration file, if exists, overriding hardcoded defaults
- # @api private
- def self.load(file)
- yaml = {}
- if File.exists? file
- Squib::logger.info { " using config: #{file}" }
- yaml = YAML.load_file(file) || {}
- end
- warn_unrecognized(yaml)
- Conf.new(DEFAULTS.merge(yaml))
- end
-
- def to_s
- "Conf: #{@config_hash.to_s}"
- end
-
- def img_dir
- @config_hash['img_dir']
- end
-
- def text_hint
- @config_hash['text_hint']
- end
-
- def text_hint=(hint)
- @config_hash['text_hint'] = hint
- end
-
- def progress_bars
- @config_hash['progress_bars']
- end
-
- def typographer
- @typographer
- end
-
- def dir
- @config_hash['dir']
- end
-
- def prefix
- @config_hash['prefix']
- end
-
- def count_format
- @config_hash['count_format']
- end
-
- def antialias
- @config_hash['antialias']
- end
-
- def backend
- @config_hash['backend']
- end
-
- def custom_colors
- @config_hash['custom_colors']
- end
-
- def warn_ellipsize?
- @config_hash['warn_ellipsize']
- end
-
- def warn_png_scale?
- @config_hash['warn_png_scale']
- end
-
- private
-
- def normalize_antialias
- @config_hash['antialias'] = ANTIALIAS_OPTS[@config_hash['antialias'].downcase.strip]
- end
-
- # Were there any unrecognized options in the config file?
- def self.warn_unrecognized(yaml)
- unrec = yaml.keys - DEFAULTS.keys
- if unrec.any?
- Squib::logger.warn "Unrecognized configuration option(s): #{unrec.join(',')}"
- end
- end
-
- end
-end
+require 'forwardable'
+require 'yaml'
+require_relative 'args/typographer'
+
+module Squib
+ USER_CONFIG = {}
+
+ def configure(opts)
+ str_hash = opts.inject({}) { |h, (k, v)| h[k.to_s] = v; h }
+ USER_CONFIG.merge! str_hash
+ end
+ module_function :configure
+
+ # @api private
+ class Conf
+
+ DEFAULTS = {
+ 'antialias' => 'best',
+ 'backend' => 'memory',
+ 'count_format' => '%02d',
+ 'custom_colors' => {},
+ 'dir' => '_output',
+ 'hint' => :none,
+ 'img_dir' => '.',
+ 'progress_bars' => false,
+ 'prefix' => 'card_',
+ 'ldquote' => "\u201C", # UTF8 chars
+ 'rdquote' => "\u201D",
+ 'lsquote' => "\u2018",
+ 'rsquote' => "\u2019",
+ 'em_dash' => "\u2014",
+ 'en_dash' => "\u2013",
+ 'ellipsis' => "\u2026",
+ 'smart_quotes' => true,
+ 'text_hint' => 'off',
+ 'warn_ellipsize' => true,
+ 'warn_png_scale' => true,
+ }
+
+ # Translate the hints to the methods.
+ ANTIALIAS_OPTS = {
+ nil => 'subpixel',
+ 'best' => 'subpixel',
+ 'good' => 'gray',
+ 'fast' => 'gray',
+ 'gray' => 'gray',
+ 'subpixel' => 'subpixel'
+ }
+
+ def initialize(config_hash = DEFAULTS)
+ @config_hash = config_hash.merge USER_CONFIG # programmatic overrides yml
+ @typographer = Args::Typographer.new(config_hash)
+ normalize_antialias
+ end
+
+ # Load the configuration file, if exists, overriding hardcoded defaults
+ # @api private
+ def self.load(file)
+ yaml = {}
+ if File.exists? file
+ Squib::logger.info { " using config: #{file}" }
+ yaml = YAML.load_file(file) || {}
+ end
+ warn_unrecognized(yaml)
+ Conf.new(DEFAULTS.merge(yaml))
+ end
+
+ def to_s
+ "Conf: #{@config_hash.to_s}"
+ end
+
+ def img_dir
+ @config_hash['img_dir']
+ end
+
+ def text_hint
+ @config_hash['text_hint']
+ end
+
+ def text_hint=(hint)
+ @config_hash['text_hint'] = hint
+ end
+
+ def progress_bars
+ @config_hash['progress_bars']
+ end
+
+ def typographer
+ @typographer
+ end
+
+ def dir
+ @config_hash['dir']
+ end
+
+ def prefix
+ @config_hash['prefix']
+ end
+
+ def count_format
+ @config_hash['count_format']
+ end
+
+ def antialias
+ @config_hash['antialias']
+ end
+
+ def backend
+ @config_hash['backend']
+ end
+
+ def custom_colors
+ @config_hash['custom_colors']
+ end
+
+ def warn_ellipsize?
+ @config_hash['warn_ellipsize']
+ end
+
+ def warn_png_scale?
+ @config_hash['warn_png_scale']
+ end
+
+ private
+
+ def normalize_antialias
+ @config_hash['antialias'] = ANTIALIAS_OPTS[@config_hash['antialias'].downcase.strip]
+ end
+
+ # Were there any unrecognized options in the config file?
+ def self.warn_unrecognized(yaml)
+ unrec = yaml.keys - DEFAULTS.keys
+ if unrec.any?
+ Squib::logger.warn "Unrecognized configuration option(s): #{unrec.join(',')}"
+ end
+ end
+
+ end
+end