bets 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/bets/version.rb +1 -1
  2. data/lib/bets.rb +55 -54
  3. metadata +1 -1
data/lib/bets/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Bets
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
data/lib/bets.rb CHANGED
@@ -19,29 +19,27 @@ module Bets
19
19
  include Betlinks
20
20
  def initialize
21
21
  @names = {}
22
- @conditions = {}
23
- @binds = []
24
- @records = {}
22
+ @browsers = {}
25
23
  @lexems = {
26
- 'ДЕЙСТВИЕ' => [:name, :text, :end],
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
- ' TO ' => ' then ',
39
+ ' ТО ' => ' then ',
42
40
  '\ ИНАЧЕ\ ' => ' else ',
43
- 'КОНЕЦ' => 'end',
44
- 'ЗАДЕРЖКА' => 'sleep ',
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 :bind_name
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
- def exec
119
- @binds.each do |b|
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
- def ff_goto(str)
122
- @ff.goto(str)
123
- rescue Exception => error
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 text
147
+ instance_eval v
148
+ puts "Программа '#{k} выполнена!'"
149
149
  rescue Exception => error
150
- puts "Ошибка в программе: #{error}"
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
- loop { exec }
158
+ exec
158
159
  end
159
160
  end
160
161
  # Your code goes here...
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: