Class: SBSM::Validator

Inherits:
Object
  • Object
show all
Defined in:
lib/sbsm/validator.rb

Constant Summary collapse

BOOLEAN =
[]
DATES =
[]
ENUMS =
{}
EVENTS =
[]
FILES =
[]
HTML =
[]
NUMERIC =
[]
PATTERNS =
{}
STRINGS =
[]
URIS =
[]
ALLOWED_TAGS =
%{a b br div font h1 h2 h3 i img li ol p pre span strong u ul}

Instance Method Summary collapse

Constructor Details

#initializeValidator

Returns a new instance of Validator.



56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/sbsm/validator.rb', line 56

def initialize
	reset_errors()
	@boolean = self::class::BOOLEAN.dup
	@dates = self::class::DATES.dup
	@enums = self::class::ENUMS.dup
	@events = self::class::EVENTS.dup
	@files = self::class::FILES.dup
	@html = self::class::HTML.dup
	@numeric = self::class::NUMERIC.dup
	@patterns = self::class::PATTERNS.dup
	@strings = self::class::STRINGS.dup
	@uris = self::class::URIS.dup
end

Instance Method Details

#error?Boolean

Returns:

  • (Boolean)


69
70
71
# File 'lib/sbsm/validator.rb', line 69

def error?
	!@errors.empty?
end

#perform_validation(key, value) ⇒ Object



121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# File 'lib/sbsm/validator.rb', line 121

def perform_validation(key, value)
	value = value.to_s.strip
	begin
		if(key==:event)
			symbol = value.to_sym
			symbol if @events.include?(symbol)
		elsif(@boolean.include?(key))
			validate_boolean(key, value)
		elsif(@dates.include?(key))
			validate_date(key, value)
		elsif(@enums.has_key?(key))
			value if @enums[key].include?(value)
		elsif(@html.include?(key))
			validate_html(value)
		elsif(@patterns.include?(key))
			validate_pattern(key, value)
		elsif(@numeric.include?(key))
			validate_numeric(key, value)
		elsif(@uris.include?(key))
			validate_uri(key, value)
		elsif(@strings.include?(key))
			validate_string(value)
      elsif(@files.include?(key))
        StringIO.new(value)
		elsif(!Object.methods.include?(key) and self.respond_to?(key, true))
			self.send(key, value)
		end
	rescue InvalidDataError => e
		@errors.store(e.key, e)
	end
end

#reset_errorsObject



72
73
74
# File 'lib/sbsm/validator.rb', line 72

def reset_errors
	@errors = {}
end

#set_pass(value1, value2) ⇒ Object



75
76
77
78
79
80
81
82
83
84
85
# File 'lib/sbsm/validator.rb', line 75

def set_pass(value1, value2)
	valid1 = pass(value1.to_s)
	valid2 = pass(value2.to_s)
	if(value1.to_s.empty?)
		SBSM::InvalidDataError.new(:e_empty_pass, :pass, '')
	elsif(valid1 != valid2)
		SBSM::InvalidDataError.new(:e_non_matching_pass, :pass, '')
	else
		valid1
	end
end

#valid_values(key) ⇒ Object



86
87
88
89
90
91
92
93
# File 'lib/sbsm/validator.rb', line 86

def valid_values(key)
	key = key.intern if key.is_a? String
	@enums.fetch(key)	{
		if(@boolean.include?(key))
			['false', 'true']
		end
	}
end

#validate(key, value) ⇒ Object



94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# File 'lib/sbsm/validator.rb', line 94

def validate(key, value)
			value = value.pop if value.is_a? Array
			return nil if value.nil?
  if value.is_a?(StringIO)
if(@files.include?(key))
	return validate_file(key, value)
else
	begin
		value = value.read
	rescue StandardError => e
		p e
	end
end
			elsif(value.is_a? DRb::DRbObject)
value = value[0]
if(@files.include?(key))
	return validate_file(key, value)
else
	begin
		value = value.read
	rescue StandardError => e
		#p e
	end
end
			end
  perform_validation(key, value)
end