module Jekyll module Deprecator extend self def process(args) arg_is_present? args, "--server", "The --server command has been replaced by the \ 'serve' subcommand." arg_is_present? args, "--serve", "The --server command has been replaced by the \ 'serve' subcommand." arg_is_present? args, "--no-server", "To build Jekyll without launching a server, \ use the 'build' subcommand." arg_is_present? args, "--auto", "The switch '--auto' has been replaced with \ '--watch'." arg_is_present? args, "--no-auto", "To disable auto-replication, simply leave off \ the '--watch' switch." arg_is_present? args, "--pygments", "The 'pygments'settings has been removed in \ favour of 'highlighter'." arg_is_present? args, "--paginate", "The 'paginate' setting can only be set in \ your config files." arg_is_present? args, "--url", "The 'url' setting can only be set in your \ config files." no_subcommand(args) end def no_subcommand(args) unless args.empty? || args.first !~ %r(!/^--/!) || %w(--help --version).include?(args.first) deprecation_message "Jekyll now uses subcommands instead of just switches. \ Run `jekyll help` to find out more." abort end end def arg_is_present?(args, deprecated_argument, message) if args.include?(deprecated_argument) deprecation_message(message) end end def deprecation_message(message) Jekyll.logger.warn "Deprecation:", message end def defaults_deprecate_type(old, current) Jekyll.logger.warn "Defaults:", "The '#{old}' type has become '#{current}'." Jekyll.logger.warn "Defaults:", "Please update your front-matter defaults to use \ 'type: #{current}'." end end end