Class: ValidateWebsite::Parser
- Inherits:
-
Object
- Object
- ValidateWebsite::Parser
- Defined in:
- lib/validate_website/option_parser.rb
Overview
Internal class for parse command line args
Constant Summary collapse
- VALID_TYPES =
[:crawl, :static].freeze
- DEFAULT_OPTIONS =
{ site: 'http://localhost/', pattern: '**/*.html', exclude: nil, user_agent: nil, markup: true, css_syntax: false, # crawler: log not found url (404 status code) # static: log not found url (not on filesystem, `pwd` considered # as root " / ") not_found: false, file: nil, # regex to ignore certain validation errors ignore: nil, color: true, # internal verbose for ValidateWebsite verbose: false }.freeze
Class Method Summary collapse
- .boolean_options(o) ⇒ Object
-
.command_line_parse_crawl(_args) ⇒ Hash
Parse command line for validate-website bin.
-
.command_line_parse_static(_args) ⇒ Hash
Parse command line for validate-website-static bin.
- .default_args ⇒ Object
- .ignore_html5_options(o) ⇒ Object
- .markup_syntax(o) ⇒ Object
-
.parse(options, type) ⇒ Object
Generic parse method for crawl or static options.
- .verbose_option(o) ⇒ Object
- .version_help(o) ⇒ Object
Class Method Details
.boolean_options(o) ⇒ Object
67 68 69 70 71 72 73 74 |
# File 'lib/validate_website/option_parser.rb', line 67 def self.(o) o.bool('-n', '--not-found', "Log not found url (default: #{DEFAULT_OPTIONS[:not_found]})", default: DEFAULT_OPTIONS[:not_found]) o.bool('--color', "Show colored output (default: #{DEFAULT_OPTIONS[:color]})", default: DEFAULT_OPTIONS[:color]) end |
.command_line_parse_crawl(_args) ⇒ Hash
Parse command line for validate-website bin
96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/validate_website/option_parser.rb', line 96 def self.command_line_parse_crawl(_args) default_args do |o| o.string('-s', '--site', "Website to crawl (default: #{DEFAULT_OPTIONS[:site]})", default: DEFAULT_OPTIONS[:site]) o.string('-u', '--user-agent', 'Change user agent', default: DEFAULT_OPTIONS[:user_agent]) o.regexp('-e', '--exclude', 'Url to exclude (ex: "redirect|news")') o.string('-c', '--cookies', 'Set defaults cookies') end end |
.command_line_parse_static(_args) ⇒ Hash
Parse command line for validate-website-static bin
112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/validate_website/option_parser.rb', line 112 def self.command_line_parse_static(_args) default_args do |o| o.string('-s', '--site', "Website to crawl (default: #{DEFAULT_OPTIONS[:site]})", default: DEFAULT_OPTIONS[:site]) o.string('-p', '--pattern', "Filename pattern (default: #{DEFAULT_OPTIONS[:pattern]})", default: DEFAULT_OPTIONS[:pattern]) o.regexp('-e', '--exclude', 'Url to exclude (ex: "redirect|news")') end end |
.default_args ⇒ Object
40 41 42 43 44 45 46 47 48 49 |
# File 'lib/validate_website/option_parser.rb', line 40 def self.default_args Slop.parse do |o| yield o if block_given? markup_syntax(o) (o) (o) verbose_option(o) version_help(o) end end |
.ignore_html5_options(o) ⇒ Object
51 52 53 54 55 56 |
# File 'lib/validate_website/option_parser.rb', line 51 def self.(o) o.regexp('-i', '--ignore', 'Validation errors to ignore (ex: "valign|autocorrect")') o.string('-5', '--html5-validator-service-url', 'Change default html5 validator service URL') end |
.markup_syntax(o) ⇒ Object
58 59 60 61 62 63 64 65 |
# File 'lib/validate_website/option_parser.rb', line 58 def self.markup_syntax(o) o.bool('-m', '--markup', "Markup validation (default: #{DEFAULT_OPTIONS[:markup]})", default: DEFAULT_OPTIONS[:markup]) o.bool('--css-syntax', "Css validation (default: #{DEFAULT_OPTIONS[:css_syntax]})", default: DEFAULT_OPTIONS[:css_syntax]) end |
.parse(options, type) ⇒ Object
Generic parse method for crawl or static options
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/validate_website/option_parser.rb', line 29 def self.parse(, type) raise ArgumentError unless VALID_TYPES.include?(type) # We are in command line (ARGV) if .is_a?(Array) send("command_line_parse_#{type}", ) else # for testing or Ruby usage with a Hash DEFAULT_OPTIONS.merge() end end |
.verbose_option(o) ⇒ Object
76 77 78 79 80 |
# File 'lib/validate_website/option_parser.rb', line 76 def self.verbose_option(o) o.bool('-v', '--verbose', "Show validator errors (default: #{DEFAULT_OPTIONS[:verbose]})", default: DEFAULT_OPTIONS[:verbose]) end |
.version_help(o) ⇒ Object
82 83 84 85 86 87 88 89 90 91 |
# File 'lib/validate_website/option_parser.rb', line 82 def self.version_help(o) o.on('--version', 'Display version.') do puts ValidateWebsite::VERSION exit end o.on('-h', '--help', 'Display this help message.') do puts o exit end end |