kimurai 1.3.2 → 2.0.0

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 (48) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +9 -0
  3. data/CHANGELOG.md +29 -0
  4. data/Gemfile +2 -2
  5. data/README.md +478 -649
  6. data/Rakefile +6 -6
  7. data/bin/console +3 -4
  8. data/exe/kimurai +0 -1
  9. data/kimurai.gemspec +38 -37
  10. data/lib/kimurai/base/saver.rb +15 -19
  11. data/lib/kimurai/base/storage.rb +1 -1
  12. data/lib/kimurai/base.rb +42 -38
  13. data/lib/kimurai/base_helper.rb +5 -4
  14. data/lib/kimurai/browser_builder/mechanize_builder.rb +44 -38
  15. data/lib/kimurai/browser_builder/selenium_chrome_builder.rb +63 -51
  16. data/lib/kimurai/browser_builder/selenium_firefox_builder.rb +61 -55
  17. data/lib/kimurai/browser_builder.rb +7 -31
  18. data/lib/kimurai/capybara_configuration.rb +1 -1
  19. data/lib/kimurai/capybara_ext/driver/base.rb +50 -46
  20. data/lib/kimurai/capybara_ext/mechanize/driver.rb +51 -50
  21. data/lib/kimurai/capybara_ext/selenium/driver.rb +33 -29
  22. data/lib/kimurai/capybara_ext/session/config.rb +1 -1
  23. data/lib/kimurai/capybara_ext/session.rb +40 -38
  24. data/lib/kimurai/cli/generator.rb +15 -15
  25. data/lib/kimurai/cli.rb +52 -85
  26. data/lib/kimurai/core_ext/array.rb +2 -2
  27. data/lib/kimurai/core_ext/hash.rb +1 -1
  28. data/lib/kimurai/core_ext/numeric.rb +4 -4
  29. data/lib/kimurai/pipeline.rb +2 -1
  30. data/lib/kimurai/runner.rb +6 -6
  31. data/lib/kimurai/template/Gemfile +2 -2
  32. data/lib/kimurai/template/config/boot.rb +4 -4
  33. data/lib/kimurai/template/config/schedule.rb +15 -15
  34. data/lib/kimurai/template/spiders/application_spider.rb +14 -14
  35. data/lib/kimurai/version.rb +1 -1
  36. data/lib/kimurai.rb +7 -3
  37. metadata +58 -65
  38. data/.travis.yml +0 -5
  39. data/lib/kimurai/automation/deploy.yml +0 -54
  40. data/lib/kimurai/automation/setup/chromium_chromedriver.yml +0 -26
  41. data/lib/kimurai/automation/setup/firefox_geckodriver.yml +0 -20
  42. data/lib/kimurai/automation/setup/phantomjs.yml +0 -33
  43. data/lib/kimurai/automation/setup/ruby_environment.yml +0 -124
  44. data/lib/kimurai/automation/setup.yml +0 -44
  45. data/lib/kimurai/browser_builder/poltergeist_phantomjs_builder.rb +0 -171
  46. data/lib/kimurai/capybara_ext/poltergeist/driver.rb +0 -13
  47. data/lib/kimurai/cli/ansible_command_builder.rb +0 -71
  48. data/lib/kimurai/template/config/automation.yml +0 -13
metadata CHANGED
@@ -1,17 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kimurai
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Afanasev
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2018-12-08 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
- name: thor
13
+ name: activesupport
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
16
  - - ">="
@@ -39,7 +38,7 @@ dependencies:
39
38
  - !ruby/object:Gem::Version
40
39
  version: '0'
41
40
  - !ruby/object:Gem::Dependency
42
- name: activesupport
41
+ name: csv
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - ">="
@@ -81,27 +80,21 @@ dependencies:
81
80
  - !ruby/object:Gem::Version
82
81
  version: '0'
83
82
  - !ruby/object:Gem::Dependency
84
- name: capybara
83
+ name: ostruct
85
84
  requirement: !ruby/object:Gem::Requirement
86
85
  requirements:
87
86
  - - ">="
88
87
  - !ruby/object:Gem::Version
89
- version: '2.15'
90
- - - "<"
91
- - !ruby/object:Gem::Version
92
- version: '4.0'
88
+ version: '0'
93
89
  type: :runtime
94
90
  prerelease: false
95
91
  version_requirements: !ruby/object:Gem::Requirement
96
92
  requirements:
97
93
  - - ">="
98
94
  - !ruby/object:Gem::Version
99
- version: '2.15'
100
- - - "<"
101
- - !ruby/object:Gem::Version
102
- version: '4.0'
95
+ version: '0'
103
96
  - !ruby/object:Gem::Dependency
104
- name: capybara-mechanize
97
+ name: thor
105
98
  requirement: !ruby/object:Gem::Requirement
106
99
  requirements:
107
100
  - - ">="
@@ -115,7 +108,7 @@ dependencies:
115
108
  - !ruby/object:Gem::Version
116
109
  version: '0'
117
110
  - !ruby/object:Gem::Dependency
118
- name: poltergeist
111
+ name: mutex_m
119
112
  requirement: !ruby/object:Gem::Requirement
120
113
  requirements:
121
114
  - - ">="
@@ -129,7 +122,7 @@ dependencies:
129
122
  - !ruby/object:Gem::Version
130
123
  version: '0'
131
124
  - !ruby/object:Gem::Dependency
132
- name: selenium-webdriver
125
+ name: nkf
133
126
  requirement: !ruby/object:Gem::Requirement
134
127
  requirements:
135
128
  - - ">="
@@ -143,7 +136,7 @@ dependencies:
143
136
  - !ruby/object:Gem::Version
144
137
  version: '0'
145
138
  - !ruby/object:Gem::Dependency
146
- name: headless
139
+ name: reline
147
140
  requirement: !ruby/object:Gem::Requirement
148
141
  requirements:
149
142
  - - ">="
@@ -157,49 +150,49 @@ dependencies:
157
150
  - !ruby/object:Gem::Version
158
151
  version: '0'
159
152
  - !ruby/object:Gem::Dependency
160
- name: pmap
153
+ name: capybara
161
154
  requirement: !ruby/object:Gem::Requirement
162
155
  requirements:
163
- - - ">="
156
+ - - "~>"
164
157
  - !ruby/object:Gem::Version
165
- version: '0'
158
+ version: '3.40'
166
159
  type: :runtime
167
160
  prerelease: false
168
161
  version_requirements: !ruby/object:Gem::Requirement
169
162
  requirements:
170
- - - ">="
163
+ - - "~>"
171
164
  - !ruby/object:Gem::Version
172
- version: '0'
165
+ version: '3.40'
173
166
  - !ruby/object:Gem::Dependency
174
- name: whenever
167
+ name: capybara-mechanize
175
168
  requirement: !ruby/object:Gem::Requirement
176
169
  requirements:
177
- - - ">="
170
+ - - "~>"
178
171
  - !ruby/object:Gem::Version
179
- version: '0'
172
+ version: '1.13'
180
173
  type: :runtime
181
174
  prerelease: false
182
175
  version_requirements: !ruby/object:Gem::Requirement
183
176
  requirements:
184
- - - ">="
177
+ - - "~>"
185
178
  - !ruby/object:Gem::Version
186
- version: '0'
179
+ version: '1.13'
187
180
  - !ruby/object:Gem::Dependency
188
- name: rbcat
181
+ name: selenium-webdriver
189
182
  requirement: !ruby/object:Gem::Requirement
190
183
  requirements:
191
184
  - - "~>"
192
185
  - !ruby/object:Gem::Version
193
- version: '0.2'
186
+ version: '4.27'
194
187
  type: :runtime
195
188
  prerelease: false
196
189
  version_requirements: !ruby/object:Gem::Requirement
197
190
  requirements:
198
191
  - - "~>"
199
192
  - !ruby/object:Gem::Version
200
- version: '0.2'
193
+ version: '4.27'
201
194
  - !ruby/object:Gem::Dependency
202
- name: pry
195
+ name: headless
203
196
  requirement: !ruby/object:Gem::Requirement
204
197
  requirements:
205
198
  - - ">="
@@ -213,48 +206,61 @@ dependencies:
213
206
  - !ruby/object:Gem::Version
214
207
  version: '0'
215
208
  - !ruby/object:Gem::Dependency
216
- name: bundler
209
+ name: pmap
217
210
  requirement: !ruby/object:Gem::Requirement
218
211
  requirements:
219
- - - "~>"
212
+ - - ">="
220
213
  - !ruby/object:Gem::Version
221
- version: '1.16'
222
- type: :development
214
+ version: '0'
215
+ type: :runtime
223
216
  prerelease: false
224
217
  version_requirements: !ruby/object:Gem::Requirement
225
218
  requirements:
226
- - - "~>"
219
+ - - ">="
227
220
  - !ruby/object:Gem::Version
228
- version: '1.16'
221
+ version: '0'
229
222
  - !ruby/object:Gem::Dependency
230
- name: rake
223
+ name: whenever
231
224
  requirement: !ruby/object:Gem::Requirement
232
225
  requirements:
233
- - - "~>"
226
+ - - ">="
234
227
  - !ruby/object:Gem::Version
235
- version: '10.0'
236
- type: :development
228
+ version: '0'
229
+ type: :runtime
237
230
  prerelease: false
238
231
  version_requirements: !ruby/object:Gem::Requirement
239
232
  requirements:
240
- - - "~>"
233
+ - - ">="
234
+ - !ruby/object:Gem::Version
235
+ version: '0'
236
+ - !ruby/object:Gem::Dependency
237
+ name: pry
238
+ requirement: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - ">="
241
+ - !ruby/object:Gem::Version
242
+ version: '0'
243
+ type: :runtime
244
+ prerelease: false
245
+ version_requirements: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - ">="
241
248
  - !ruby/object:Gem::Version
242
- version: '10.0'
249
+ version: '0'
243
250
  - !ruby/object:Gem::Dependency
244
- name: minitest
251
+ name: rbcat
245
252
  requirement: !ruby/object:Gem::Requirement
246
253
  requirements:
247
254
  - - "~>"
248
255
  - !ruby/object:Gem::Version
249
- version: '5.0'
250
- type: :development
256
+ version: '1.0'
257
+ type: :runtime
251
258
  prerelease: false
252
259
  version_requirements: !ruby/object:Gem::Requirement
253
260
  requirements:
254
261
  - - "~>"
255
262
  - !ruby/object:Gem::Version
256
- version: '5.0'
257
- description:
263
+ version: '1.0'
258
264
  email:
259
265
  - vicfreefly@gmail.com
260
266
  executables:
@@ -263,7 +269,7 @@ extensions: []
263
269
  extra_rdoc_files: []
264
270
  files:
265
271
  - ".gitignore"
266
- - ".travis.yml"
272
+ - ".rubocop.yml"
267
273
  - CHANGELOG.md
268
274
  - Gemfile
269
275
  - LICENSE.txt
@@ -274,30 +280,21 @@ files:
274
280
  - exe/kimurai
275
281
  - kimurai.gemspec
276
282
  - lib/kimurai.rb
277
- - lib/kimurai/automation/deploy.yml
278
- - lib/kimurai/automation/setup.yml
279
- - lib/kimurai/automation/setup/chromium_chromedriver.yml
280
- - lib/kimurai/automation/setup/firefox_geckodriver.yml
281
- - lib/kimurai/automation/setup/phantomjs.yml
282
- - lib/kimurai/automation/setup/ruby_environment.yml
283
283
  - lib/kimurai/base.rb
284
284
  - lib/kimurai/base/saver.rb
285
285
  - lib/kimurai/base/storage.rb
286
286
  - lib/kimurai/base_helper.rb
287
287
  - lib/kimurai/browser_builder.rb
288
288
  - lib/kimurai/browser_builder/mechanize_builder.rb
289
- - lib/kimurai/browser_builder/poltergeist_phantomjs_builder.rb
290
289
  - lib/kimurai/browser_builder/selenium_chrome_builder.rb
291
290
  - lib/kimurai/browser_builder/selenium_firefox_builder.rb
292
291
  - lib/kimurai/capybara_configuration.rb
293
292
  - lib/kimurai/capybara_ext/driver/base.rb
294
293
  - lib/kimurai/capybara_ext/mechanize/driver.rb
295
- - lib/kimurai/capybara_ext/poltergeist/driver.rb
296
294
  - lib/kimurai/capybara_ext/selenium/driver.rb
297
295
  - lib/kimurai/capybara_ext/session.rb
298
296
  - lib/kimurai/capybara_ext/session/config.rb
299
297
  - lib/kimurai/cli.rb
300
- - lib/kimurai/cli/ansible_command_builder.rb
301
298
  - lib/kimurai/cli/generator.rb
302
299
  - lib/kimurai/core_ext/array.rb
303
300
  - lib/kimurai/core_ext/hash.rb
@@ -309,7 +306,6 @@ files:
309
306
  - lib/kimurai/template/Gemfile
310
307
  - lib/kimurai/template/README.md
311
308
  - lib/kimurai/template/config/application.rb
312
- - lib/kimurai/template/config/automation.yml
313
309
  - lib/kimurai/template/config/boot.rb
314
310
  - lib/kimurai/template/config/initializers/.keep
315
311
  - lib/kimurai/template/config/schedule.rb
@@ -326,7 +322,6 @@ homepage: https://github.com/vifreefly/kimuraframework
326
322
  licenses:
327
323
  - MIT
328
324
  metadata: {}
329
- post_install_message:
330
325
  rdoc_options: []
331
326
  require_paths:
332
327
  - lib
@@ -334,16 +329,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
334
329
  requirements:
335
330
  - - ">="
336
331
  - !ruby/object:Gem::Version
337
- version: 2.5.0
332
+ version: 3.1.0
338
333
  required_rubygems_version: !ruby/object:Gem::Requirement
339
334
  requirements:
340
335
  - - ">="
341
336
  - !ruby/object:Gem::Version
342
337
  version: '0'
343
338
  requirements: []
344
- rubyforge_project:
345
- rubygems_version: 2.7.6
346
- signing_key:
339
+ rubygems_version: 4.0.1
347
340
  specification_version: 4
348
341
  summary: Modern web scraping framework written in Ruby and based on Capybara/Nokogiri
349
342
  test_files: []
data/.travis.yml DELETED
@@ -1,5 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.5.1
5
- before_install: gem install bundler -v 1.16.2
@@ -1,54 +0,0 @@
1
- ---
2
- - hosts: all
3
- vars:
4
- rbenv_root_path: /home/{{ ansible_user_id }}/.rbenv
5
- rbenv_shims_path: "{{ rbenv_root_path }}/shims"
6
- repo_url:
7
- repo_name:
8
- repo_key_path:
9
-
10
- tasks:
11
- - name: Copy custom git ssh key to /tmp/private_key (if provided)
12
- when: repo_key_path is not none
13
- copy:
14
- src: "{{ repo_key_path }}"
15
- dest: /tmp/private_key
16
- mode: 0600
17
-
18
- - name: Clone/pull project repo to ~/{{ repo_name }} user directory (using ssh-agent forwarding or https)
19
- when: repo_key_path is none
20
- git:
21
- repo: "{{ repo_url }}"
22
- dest: "~/{{ repo_name }}"
23
- force: true
24
- accept_hostkey: true
25
-
26
- - name: Clone/pull project repo to ~/{{ repo_name }} user directory (using custom git ssh key)
27
- when: repo_key_path is not none
28
- git:
29
- repo: "{{ repo_url }}"
30
- dest: "~/{{ repo_name }}"
31
- force: true
32
- accept_hostkey: true
33
- key_file: /tmp/private_key
34
-
35
- - name: Delete custom git ssh key from /tmp/private_key (if provided)
36
- when: repo_key_path is not none
37
- file:
38
- state: absent
39
- path: /tmp/private_key
40
-
41
- - name: Run bundle install
42
- command: bundle install
43
- args:
44
- chdir: ~/{{ repo_name }}
45
- environment:
46
- PATH: "{{ rbenv_root_path }}/bin:{{ rbenv_root_path }}/shims:{{ ansible_env.PATH }}"
47
-
48
- - name: Run whenever to update crontab
49
- command: whenever --update-crontab
50
- args:
51
- chdir: ~/{{ repo_name }}
52
- environment:
53
- PATH: "{{ rbenv_root_path }}/bin:{{ rbenv_root_path }}/shims:{{ ansible_env.PATH }}"
54
-
@@ -1,26 +0,0 @@
1
- ---
2
- - name: Install chromium browser
3
- apt:
4
- pkg: chromium-browser
5
- state: present
6
-
7
- - name: Get current chromedriver version
8
- shell: chromedriver --version
9
- args:
10
- executable: /bin/bash
11
- register: current_chromedriver_version
12
- changed_when: false
13
- ignore_errors: true
14
-
15
- - name: Install unzip tool to unarchive chromedriver archive
16
- apt:
17
- pkg: unzip
18
- state: present
19
-
20
- - name: Download chromedriver binary archive and unarchive it to /usr/local/bin
21
- unarchive:
22
- src: https://chromedriver.storage.googleapis.com/{{ chromedriver }}/chromedriver_linux64.zip
23
- dest: /usr/local/bin
24
- remote_src: true
25
- mode: a+x
26
- when: chromedriver not in current_chromedriver_version.stdout_lines
@@ -1,20 +0,0 @@
1
- ---
2
- - name: Install firefox
3
- apt:
4
- pkg: firefox
5
- state: present
6
-
7
- - name: Get current geckodriver version
8
- shell: geckodriver --version
9
- args:
10
- executable: /bin/bash
11
- register: current_geckodriver_version
12
- changed_when: false
13
- ignore_errors: true
14
-
15
- - name: Download geckodriver binary archive and unarchive it to /usr/local/bin
16
- unarchive:
17
- src: https://github.com/mozilla/geckodriver/releases/download/v{{ geckodriver }}/geckodriver-v{{ geckodriver }}-linux64.tar.gz
18
- dest: /usr/local/bin
19
- remote_src: true
20
- when: geckodriver not in current_geckodriver_version.stdout
@@ -1,33 +0,0 @@
1
- ---
2
- - name: Install dependencies for PhantomJS
3
- apt:
4
- pkg: "{{ item }}"
5
- state: present
6
- with_items:
7
- - chrpath
8
- - libxft-dev
9
- - libfreetype6
10
- - libfreetype6-dev
11
- - libfontconfig1
12
- - libfontconfig1-dev
13
-
14
- - name: Get current phantomjs version
15
- shell: phantomjs -v
16
- args:
17
- executable: /bin/bash
18
- register: current_phantomjs_version
19
- changed_when: false
20
- ignore_errors: true
21
-
22
- - name: Download phantomJS archive and unarchive it to /usr/local/lib
23
- unarchive:
24
- src: https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-{{ phantomjs }}-linux-x86_64.tar.bz2
25
- dest: /usr/local/lib
26
- remote_src: true
27
- when: phantomjs not in current_phantomjs_version.stdout
28
-
29
- - name: Link PhantomJS binary to /usr/local/bin/phantomjs
30
- file:
31
- src: /usr/local/lib/phantomjs-{{ phantomjs }}-linux-x86_64/bin/phantomjs
32
- dest: /usr/local/bin/phantomjs
33
- state: link
@@ -1,124 +0,0 @@
1
- ---
2
- - name: Install dependencies for ruby-build
3
- become: true
4
- apt:
5
- pkg: "{{ item }}"
6
- state: present
7
- with_items:
8
- - zlib1g-dev
9
- - build-essential
10
- - libssl-dev
11
- - libreadline-dev
12
- - libreadline6-dev
13
- - libyaml-dev
14
- - libxml2-dev
15
- - libxslt1-dev
16
- - libcurl4-openssl-dev
17
- - libffi-dev
18
-
19
- - name: Clone Rbenv repository to the {{ ansible_user_id }} user directory
20
- git:
21
- repo: https://github.com/sstephenson/rbenv.git
22
- dest: "{{ rbenv_root_path }}"
23
-
24
- - name: Clone ruby-build repo to the {{ ansible_user_id }} user directory
25
- git:
26
- repo: https://github.com/sstephenson/ruby-build.git
27
- dest: "{{ rbenv_root_path }}/plugins/ruby-build"
28
-
29
- - name: Add Rbenv path to the .bashrc
30
- lineinfile:
31
- dest: ~/.bashrc
32
- regexp: '^export PATH="\$HOME\/\.rbenv'
33
- line: export PATH="$HOME/.rbenv/bin:$PATH"
34
- state: present
35
-
36
- - name: Add Rbenv init to the .bashrc
37
- lineinfile:
38
- dest: ~/.bashrc
39
- regexp: '^eval "\$\(rbenv'
40
- line: eval "$(rbenv init -)"
41
- state: present
42
-
43
- - name: Check if desired Ruby version already installed
44
- stat:
45
- path: "{{ ruby_versions_path }}/{{ ruby }}"
46
- register: ruby_present
47
-
48
- - name: Install desired Ruby version using ruby-build (this can take a while)
49
- command: rbenv install {{ ruby }}
50
- when: not ruby_present.stat.exists
51
- environment:
52
- CONFIGURE_OPTS: "--disable-install-doc"
53
- PATH: "{{ rbenv_root_path }}/bin:{{ rbenv_root_path }}/shims:{{ ansible_env.PATH }}"
54
-
55
- - name: Get current Ruby version
56
- command: "ruby -v"
57
- register: current_ruby_version
58
- changed_when: false
59
- ignore_errors: true
60
- environment:
61
- PATH: "{{ rbenv_root_path }}/bin:{{ rbenv_root_path }}/shims:{{ ansible_env.PATH }}"
62
-
63
- - name: Set desired Ruby version as a global version
64
- command: "rbenv global {{ ruby }}"
65
- when: ruby not in current_ruby_version.stdout
66
- environment:
67
- PATH: "{{ rbenv_root_path }}/bin:{{ rbenv_root_path }}/shims:{{ ansible_env.PATH }}"
68
- register: set_ruby
69
-
70
- - name: Execute `rbenv rehash` command
71
- command: rbenv rehash
72
- when: set_ruby.changed
73
- environment:
74
- PATH: "{{ rbenv_root_path }}/bin:{{ rbenv_root_path }}/shims:{{ ansible_env.PATH }}"
75
-
76
- - name: Create ~/.gemrc file to skip docs
77
- copy:
78
- dest: ~/.gemrc
79
- content: "gem: --no-ri --no-rdoc"
80
-
81
- - name: Create ~/.bundle directory
82
- file:
83
- dest: ~/.bundle
84
- state: directory
85
-
86
- - name: Create ~/.bundle/config file with default settings `BUNDLE_GIT__ALLOW_INSECURE true` and `BUNDLE_JOBS 4`
87
- copy:
88
- dest: ~/.bundle/config
89
- content: |
90
- BUNDLE_GIT__ALLOW_INSECURE: "true"
91
- BUNDLE_JOBS: "4"
92
-
93
- - name: Check if Bundler gem installed
94
- stat:
95
- path: "{{ ruby_versions_path }}/{{ ruby }}/bin/bundler"
96
- register: bundler_gem_present
97
-
98
- - name: Install Bundler gem
99
- command: gem install bundler
100
- when: not bundler_gem_present.stat.exists
101
- environment:
102
- PATH: "{{ rbenv_root_path }}/bin:{{ rbenv_root_path }}/shims:{{ ansible_env.PATH }}"
103
-
104
- - name: Check if Whenever gem installed
105
- stat:
106
- path: "{{ ruby_versions_path }}/{{ ruby }}/bin/whenever"
107
- register: whenever_gem_present
108
-
109
- - name: Install Whenever gem
110
- command: gem install whenever
111
- when: not whenever_gem_present.stat.exists
112
- environment:
113
- PATH: "{{ rbenv_root_path }}/bin:{{ rbenv_root_path }}/shims:{{ ansible_env.PATH }}"
114
-
115
- - name: Check if Kimurai gem installed
116
- stat:
117
- path: "{{ ruby_versions_path }}/{{ ruby }}/bin/kimurai"
118
- register: kimurai_gem_present
119
-
120
- - name: Install Kimurai gem
121
- command: gem install kimurai
122
- when: not kimurai_gem_present.stat.exists
123
- environment:
124
- PATH: "{{ rbenv_root_path }}/bin:{{ rbenv_root_path }}/shims:{{ ansible_env.PATH }}"
@@ -1,44 +0,0 @@
1
- ---
2
- - hosts: all
3
- vars:
4
- ruby: 2.5.3
5
- rbenv_root_path: /home/{{ ansible_user_id }}/.rbenv
6
- rbenv_shims_path: "{{ rbenv_root_path }}/shims"
7
- ruby_versions_path: "{{ rbenv_root_path }}/versions"
8
- # check latest here http://phantomjs.org/download.html
9
- phantomjs: 2.1.1
10
- # check latest here https://github.com/mozilla/geckodriver/releases/
11
- geckodriver: 0.23.0
12
- # check latest here https://sites.google.com/a/chromium.org/chromedriver/downloads
13
- chromedriver: 2.44
14
-
15
- tasks:
16
- - name: Update apt cache
17
- become: true
18
- apt: update_cache=yes cache_valid_time=86400
19
-
20
- - name: Install base packages
21
- become: true
22
- apt:
23
- pkg: "{{ item }}"
24
- state: present
25
- with_items:
26
- - xvfb
27
- - libsqlite3-dev
28
- - sqlite3
29
- - mongodb-clients
30
- - mysql-client
31
- - libmysqlclient-dev
32
- - postgresql-client
33
- - libpq-dev
34
-
35
- - import_tasks: setup/ruby_environment.yml
36
-
37
- - import_tasks: setup/phantomjs.yml
38
- become: true
39
-
40
- - import_tasks: setup/firefox_geckodriver.yml
41
- become: true
42
-
43
- - import_tasks: setup/chromium_chromedriver.yml
44
- become: true