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.
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: