class Muwu::ProjectOptionValidatorValue
Attributes
key_validated[RW]
project[RW]
validation_method_name[RW]
value_provided[RW]
Public Class Methods
new(key_validated, value_provided, project)
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 20 def initialize(key_validated, value_provided, project) @key_validated = key_validated.to_s.gsub(/\W/,'_') @project = project @validation_method_name = "validate_option_#{@key_validated}" @value_provided = value_provided end
Public Instance Methods
validated_value()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 32 def validated_value if private_methods.include?(@validation_method_name.to_sym) return method(@validation_method_name).call else @project.exceptions_add ProjectException::OptionNotValidatable.new(@key_validated) return nil end end
value_as_array(value)
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 42 def value_as_array(value) result = [] case value when String result = value.split(/,\s*/).map{ |v| value_as_string(v) }.sort when Array result = value.map{ |v| value_as_string(v) }.sort when FalseClass, TrueClass result << value end result.reject!{ |r| r == '' } result end
value_as_integer(value)
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 57 def value_as_integer(value) value.to_i end
value_as_string(value)
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 62 def value_as_string(value) value.to_s.strip.downcase end
value_as_string_preserving_case(value)
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 67 def value_as_string_preserving_case(value) value.to_s.strip end
value_provided_as_array()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 72 def value_provided_as_array value_as_array(@value_provided) end
value_provided_as_integer()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 77 def value_provided_as_integer value_as_integer(@value_provided) end
value_provided_as_string()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 82 def value_provided_as_string value_as_string(@value_provided) end
value_provided_as_string_preserving_case()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 87 def value_provided_as_string_preserving_case value_as_string_preserving_case(@value_provided) end
Private Instance Methods
validate_option_boolean()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 96 def validate_option_boolean case @value_provided when false, true return @value_provided when nil, '', 'nil' return nil else @project.exceptions_add ProjectException::OptionValueNotUnderstood.new(@key_validated, @value_provided) return nil end end
validate_option_contents_section_numbers_receive_link()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 109 def validate_option_contents_section_numbers_receive_link return validate_option_boolean end
validate_option_generate_subcontents_automatically()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 119 def validate_option_generate_subcontents_automatically return validate_option_boolean end
validate_option_html_lang()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 129 def validate_option_html_lang case @value_provided when nil, 'nil' return nil else value = ISO_639.find(value_provided_as_string) if value return value.alpha2 else @project.exceptions_add ProjectException::OptionValueNotUnderstood.new(@key_validated, @value_provided) return nil end end end
validate_option_markdown_allows_raw_html()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 150 def validate_option_markdown_allows_raw_html return validate_option_boolean end
validate_option_markdown_renderer()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 155 def validate_option_markdown_renderer value = value_provided_as_string case value when 'commonmarker' return value when 'motion-markdown-it', 'motion_markdown_it' return 'motion-markdown-it' else @project.exceptions_add ProjectException::OptionValueNotUnderstood.new(@key_validated, @value_provided) return nil end end
validate_option_outline_text_pathnames()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 169 def validate_option_outline_text_pathnames value = value_provided_as_string case value when 'explicit', 'flexible', 'implicit' return value else @project.exceptions_add ProjectException::OptionValueNotUnderstood.new(@key_validated, @value_provided) return nil end end
validate_option_output_destination()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 181 def validate_option_output_destination value = value_provided_as_string case value when 'file', 'stdout' return value else @project.exceptions_add ProjectException::OptionValueNotUnderstood.new(@key_validated, @value_provided) return nil end end
validate_option_output_file_basename()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 193 def validate_option_output_file_basename case @value_provided when String return SanitizerHelper.sanitize_destination_file_basename(File.basename(@value_provided)) when nil return nil else @project.exceptions_add ProjectException::OptionValueNotUnderstood.new(@key_validated, @value_provided) return nil end end
validate_option_output_file_css_basename()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 206 def validate_option_output_file_css_basename return validate_option_output_file_basename end
validate_option_output_file_html_basename()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 211 def validate_option_output_file_html_basename return validate_option_output_file_basename end
validate_option_output_file_js_basename()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 216 def validate_option_output_file_js_basename return validate_option_output_file_basename end
validate_option_output_formats()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 221 def validate_option_output_formats result = [] value_provided_as_array.each do |value| case value when 'css', 'html', 'js' result << value else @project.exceptions_add ProjectException::OptionValueNotUnderstood.new(@key_validated, @value_provided) end end return result end
validate_option_remote_publish()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 235 def validate_option_remote_publish return value_provided_as_string_preserving_case end
validate_option_remote_sync()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 240 def validate_option_remote_sync return value_provided_as_string_preserving_case end
validate_option_render_punctuation_smart()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 245 def validate_option_render_punctuation_smart return validate_option_boolean end
validate_option_render_section_end_links()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 250 def validate_option_render_section_end_links result = [] value_provided_as_array.each do |value| case value when false result << value when true result = ['contents','home','top'] when 'contents', 'home', 'top' result << value else @project.exceptions_add ProjectException::OptionValueNotUnderstood.new(@key_validated, @value_provided) end end return result end
validate_option_render_section_numbers()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 268 def validate_option_render_section_numbers return validate_option_boolean end
validate_option_render_sections_distinctly_depth_max()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 273 def validate_option_render_sections_distinctly_depth_max case @value_provided when false, nil, 0, '', 'nil' return nil when Integer return @value_provided else @project.exceptions_add ProjectException::OptionValueNotUnderstood.new(@key_validated, @value_provided) return nil end end
validate_option_render_title_section_metadata()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 286 def validate_option_render_title_section_metadata case @value_provided when nil, '', 'nil' return nil when Array return @value_provided when String return @value_provided.split(/,\s*/) else return [@value_provided.to_s].flatten end end
validate_option_rsync_options()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 305 def validate_option_rsync_options return value_provided_as_array end
validate_option_warning_if_parent_heading_lacks_source()
click to toggle source
# File lib/muwu/project_options_builder/project_option_validator_value.rb, line 310 def validate_option_warning_if_parent_heading_lacks_source return validate_option_boolean end