-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_prepare.rb
73 lines (72 loc) · 1.57 KB
/
test_prepare.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
require "mod1.rb"
require "rubygems"
require "xmlsimple"
input="Account:bal:bal + #amt + 10:id = #id"
$object=XmlSimple.xml_in("./objects/obj.xml")
$input={"id"=>"101","amt"=>"1001001"}
include Validations
str=input.split(":")
object={}
table=str[0]
lhs=str[1]
rhs=str[2]
cond=str[3]
#puts "rhs = #{rhs}"
$object['object'].each do |obj|
if(obj['name'][0]['value']==table)
object=obj
puts obj
end
end
if object=={}
puts "error: Table Does Not Exist"
end
#puts object['attr']
rhs_split=str[2].split(" ")
i=0
while i<rhs_split.length
if rhs_split[i][0]==35 ##ascii value of #=35
temp=rhs_split[i].split("#")[1]
rhs_split[i]=$input[temp]
puts $input[temp]
elsif is_i?(rhs_split[i])
puts "num"
else
flag=false
object["attr"].each do |attr|
if(attr["content"]==rhs_split[i])
puts "object"
flag=true
end
end
if flag==false
puts "invalid while creating operation"
end
end
i=i+1
end
cond_split=cond.split(" ")
i=0
while i<cond_split.length
if cond_split[i][0]==35 ##ascii value of #=35
temp=cond_split[i].split("#")[1]
cond_split[i]=$input[temp]
puts $input[temp]
elsif is_i?(cond_split[i])
puts "num"
else
flag=false
object["attr"].each do |attr|
if(attr["content"]==cond_split[i])
puts "object"
flag=true
end
end
if flag==false
puts "invalid while creating operation"
end
end
i=i+1
end
rhs=rhs_split.join(" ")
cond=cond_split.join(" ")