bets 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/bets/version.rb +1 -1
- data/lib/bets.rb +55 -54
- metadata +1 -1
data/lib/bets/version.rb
CHANGED
data/lib/bets.rb
CHANGED
@@ -19,29 +19,27 @@ module Bets
|
|
19
19
|
include Betlinks
|
20
20
|
def initialize
|
21
21
|
@names = {}
|
22
|
-
@
|
23
|
-
@binds = []
|
24
|
-
@records = {}
|
22
|
+
@browsers = {}
|
25
23
|
@lexems = {
|
26
|
-
'
|
27
|
-
'УСЛОВИЕ' => [:name, :text, :end],
|
28
|
-
'СВЯЗАТЬ' => [:bind_name, :bind_name]
|
24
|
+
'ПРОГРАММА' => [:name, :text, :end],
|
29
25
|
}
|
30
|
-
@ff = Watir::Browser.new :firefox
|
31
|
-
|
32
26
|
@lang_map = {
|
27
|
+
'[^\_]БРАУЗЕР' => 'ff_open',
|
28
|
+
'ЗАКРЫТЬ_БРАУЗЕР' => 'ff_close',
|
33
29
|
'НАЖАТЬ' => 'ff_click ',
|
34
30
|
'ОТКРЫТЬ' => 'ff_goto ',
|
35
31
|
'ЗНАЧЕНИЕ' => 'ff_get',
|
36
32
|
'ЗАПОЛНИТЬ' => 'ff_set ',
|
33
|
+
'ПОВТОРЯТЬ' => 'loop do',
|
34
|
+
'ПРЕРВАТЬ' => 'break',
|
37
35
|
'\ И\ ' => ' && ',
|
38
36
|
'\ ИЛИ\ ' => ' || ',
|
39
37
|
'\ НЕТ\ ' => ' not ',
|
40
38
|
'ЕСЛИ\ ' => 'if ',
|
41
|
-
'
|
39
|
+
' ТО ' => ' then ',
|
42
40
|
'\ ИНАЧЕ\ ' => ' else ',
|
43
|
-
'КОНЕЦ' => 'end',
|
44
|
-
'ЗАДЕРЖКА' => '
|
41
|
+
'КОНЕЦ' => 'end;',
|
42
|
+
'ЗАДЕРЖКА' => 'pause ',
|
45
43
|
'СЛ\_ЧИСЛО\(' => 'Random.new.rand(',
|
46
44
|
'Игра' => '$game',
|
47
45
|
'%_прибыли' => '$percent',
|
@@ -87,23 +85,14 @@ module Bets
|
|
87
85
|
name = input[p+=1]
|
88
86
|
@names[name] = ''
|
89
87
|
i+=1
|
90
|
-
when :
|
91
|
-
if name.empty?
|
92
|
-
name = input[p+=1]
|
93
|
-
i+=1
|
94
|
-
else
|
95
|
-
@binds << [name, input[p+=1]]
|
96
|
-
i+=1
|
97
|
-
p+=1
|
98
|
-
end
|
99
|
-
when :text
|
88
|
+
when :text
|
100
89
|
if input[p+=1] =~ /КОНЕЦ_.*?/
|
101
90
|
@lang_map.each { |k,v| @names[name].gsub!(Regexp.new(k),v) }
|
102
91
|
i += 1
|
103
92
|
else
|
104
93
|
@names[name] += ' ' + input[p]
|
105
94
|
end
|
106
|
-
when :end
|
95
|
+
when :end
|
107
96
|
p+=1
|
108
97
|
i+=1
|
109
98
|
else
|
@@ -113,48 +102,60 @@ module Bets
|
|
113
102
|
end
|
114
103
|
end
|
115
104
|
end
|
105
|
+
|
106
|
+
def ff_open(browser, name)
|
107
|
+
@browsers[browser] = Watir::Browser.new name
|
108
|
+
puts "Браузер #{name.to_s} c именем ':#{browser.to_s}' открыт"
|
109
|
+
end
|
110
|
+
def ff_close(browser)
|
111
|
+
@browsers[browser].close
|
112
|
+
@browsers.delete(browser)
|
113
|
+
puts "Браузер с именем ':#{browser.to_s}' закрыт"
|
114
|
+
end
|
115
|
+
def ff_goto(browser, str)
|
116
|
+
@browsers[browser].goto(str)
|
117
|
+
rescue Exception => error
|
118
|
+
puts "Ошибка открытия страницы #{str}: #{error}"
|
119
|
+
end
|
120
|
+
def ff_click(browser, str)
|
121
|
+
instance_eval "@browsers[:#{browser}].wait_until{@browsers[:#{browser}].#{str}.exists?};@browsers[:#{browser}].#{str}.click"
|
122
|
+
end
|
123
|
+
def ff_set(browser, str, value)
|
124
|
+
instance_eval "@browsers[:#{browser}].wait_until{@browsers[:#{browser}].#{str}.exists?};@browsers[:#{browser}].#{str}.set('#{value}')"
|
125
|
+
rescue Exception => error
|
126
|
+
puts "Ошибка установки значения в поле #{str}: #{error}"
|
127
|
+
end
|
128
|
+
def ff_get(browser, str, name)
|
129
|
+
instance_eval "@browsers[:#{browser}].wait_until{@browsers[:#{browser}].#{str}.exists?};@browsers[:#{browser}].#{str}.#{name}"
|
130
|
+
rescue Exception => error
|
131
|
+
puts "Ошибка считывания значения из поля #{str}: #{error}"
|
132
|
+
end
|
116
133
|
|
117
|
-
|
118
|
-
|
119
|
-
|
134
|
+
def pause(secs)
|
135
|
+
print "Задержка #{secs} секунд "
|
136
|
+
secs.times do |i|
|
137
|
+
sleep 1
|
138
|
+
print '.'
|
139
|
+
end
|
140
|
+
print "\n"
|
141
|
+
end
|
120
142
|
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
puts "Ошибка открытия страницы #{str}: #{error}"
|
125
|
-
end
|
126
|
-
def ff_click(str)
|
127
|
-
instance_eval "@ff.wait_until{@ff.#{str}.exists?};@ff.#{str}.click"
|
128
|
-
end
|
129
|
-
def ff_set(str, value)
|
130
|
-
instance_eval "@ff.wait_until{@ff.#{str}.exists?};@ff.#{str}.set('#{value}')"
|
131
|
-
rescue Exception => error
|
132
|
-
puts "Ошибка установки значения в поле #{str}: #{error}"
|
133
|
-
end
|
134
|
-
def ff_get(str, name)
|
135
|
-
instance_eval "@ff.wait_until{@ff.#{str}.exists?};@ff.#{str}.#{name}"
|
136
|
-
rescue Exception => error
|
137
|
-
puts "Ошибка считывания значения из поля #{str}: #{error}"
|
138
|
-
end
|
139
|
-
|
140
|
-
text =<<EOF
|
141
|
-
результат = FALSE;
|
142
|
-
#{@names[b[0]]}
|
143
|
-
if результат
|
144
|
-
#{@names[b[1]]}
|
145
|
-
end;
|
146
|
-
EOF
|
143
|
+
def exec
|
144
|
+
|
145
|
+
@names.each do |k, v|
|
147
146
|
begin
|
148
|
-
instance_eval
|
147
|
+
instance_eval v
|
148
|
+
puts "Программа '#{k} выполнена!'"
|
149
149
|
rescue Exception => error
|
150
|
-
puts "Ошибка в
|
150
|
+
puts "Ошибка в программе #{k}: #{error}"
|
151
151
|
end
|
152
152
|
end
|
153
|
+
|
153
154
|
end
|
154
155
|
public
|
155
156
|
def run
|
156
157
|
translator
|
157
|
-
|
158
|
+
exec
|
158
159
|
end
|
159
160
|
end
|
160
161
|
# Your code goes here...
|