# 3rd-party
require "jekyll/assets"
require "autoprefixer-rails"

# internal
require "jekyll/assets/autoprefixer/version"

module Jekyll
  module Assets
    module Autoprefixer
      CONFIG_FILES = %w(autoprefixer.yml _autoprefixer.yml)

      class << self
        def setup!
          ::Jekyll::Assets.configure do |assets|
            config  = read_config(assets)
            options = { :safe => config.delete(:safe) }

            ::AutoprefixerRails.install(assets, config, options)
          end
        end

        private

        def read_config(assets)
          config_file = CONFIG_FILES
            .map { |f| Pathname.new(assets.site.source).join f }
            .find(&:exist?)

          return {} unless config_file

          YAML.load_file(config_file).reduce({}) do |h, (k, v)|
            h.update k.to_sym => v
          end
        end
      end

      setup!
    end
  end
end