class ShafClient::Field
Attributes
name[R]
prompt[R]
read_only[R]
regex[R]
required[R]
templated[R]
type[R]
value[R]
Public Class Methods
new( name:, prompt: nil, title: nil, required: false, read_only: false, hidden: false, templated: false, type: nil, value: nil, regex: nil )
click to toggle source
# File lib/shaf_client/field.rb, line 8 def initialize( name:, prompt: nil, title: nil, required: false, read_only: false, hidden: false, templated: false, type: nil, value: nil, regex: nil ) @name = name.to_sym @prompt = prompt || title || name @required = required @read_only = read_only @hidden = hidden @templated = templated @type = type&.downcase @value = value @regex = parse_regexp(regex) end
Public Instance Methods
valid?(value)
click to toggle source
# File lib/shaf_client/field.rb, line 31 def valid?(value) return false unless validate_required(value) return false unless validate_number(value) return false unless validate_string(value) return false unless validate_regexp(value) true end
Private Instance Methods
parse_regexp(str)
click to toggle source
# File lib/shaf_client/field.rb, line 68 def parse_regexp(str) return if String(str).empty? Regexp.new(str) rescue RegexpError nil end
validate_number(value)
click to toggle source
# File lib/shaf_client/field.rb, line 47 def validate_number(value) return true if value.nil? return true unless type return true unless %w[int integer number].include? type value.is_a? Numeric end
validate_regexp(value)
click to toggle source
# File lib/shaf_client/field.rb, line 61 def validate_regexp(value) str = String(value) return true if str.empty? return true unless regex str.match? regex end
validate_required(value)
click to toggle source
# File lib/shaf_client/field.rb, line 41 def validate_required(value) return true unless required return false if String(value).empty? true end
validate_string(value)
click to toggle source
# File lib/shaf_client/field.rb, line 54 def validate_string(value) return true if value.nil? return true unless type return true unless %w[string text].include? type value.is_a? String end