ruby_raider 1.1.4 → 3.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 (278) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/e2e_tests.yml +58 -0
  3. data/.github/workflows/integration.yml +4 -6
  4. data/.github/workflows/reek.yml +6 -5
  5. data/.github/workflows/release.yml +175 -0
  6. data/.github/workflows/rubocop.yml +7 -6
  7. data/.github/workflows/steep.yml +21 -0
  8. data/.github/workflows/system_tests.yml +83 -0
  9. data/.gitignore +1 -1
  10. data/.reek.yml +46 -4
  11. data/.rubocop.yml +24 -0
  12. data/.ruby-version +1 -1
  13. data/README.md +140 -77
  14. data/RELEASE.md +412 -0
  15. data/RELEASE_QUICK_GUIDE.md +77 -0
  16. data/Steepfile +22 -0
  17. data/assets/ruby_raider_logo.svg +51 -0
  18. data/bin/release +186 -0
  19. data/lib/adopter/adopt_menu.rb +146 -0
  20. data/lib/adopter/converters/base_converter.rb +84 -0
  21. data/lib/adopter/converters/identity_converter.rb +53 -0
  22. data/lib/adopter/migration_plan.rb +74 -0
  23. data/lib/adopter/migrator.rb +96 -0
  24. data/lib/adopter/plan_builder.rb +275 -0
  25. data/lib/adopter/project_analyzer.rb +252 -0
  26. data/lib/adopter/project_detector.rb +157 -0
  27. data/lib/commands/adopt_commands.rb +42 -0
  28. data/lib/commands/plugin_commands.rb +0 -2
  29. data/lib/commands/scaffolding_commands.rb +220 -37
  30. data/lib/commands/utility_commands.rb +82 -2
  31. data/lib/generators/automation/automation_generator.rb +0 -7
  32. data/lib/generators/automation/templates/account.tt +9 -5
  33. data/lib/generators/automation/templates/appium_caps.tt +60 -6
  34. data/lib/generators/automation/templates/home.tt +4 -4
  35. data/lib/generators/automation/templates/login.tt +61 -4
  36. data/lib/generators/automation/templates/page.tt +13 -7
  37. data/lib/generators/automation/templates/partials/element.tt +1 -1
  38. data/lib/generators/automation/templates/partials/home_page_selector.tt +4 -4
  39. data/lib/generators/automation/templates/partials/initialize_selector.tt +3 -8
  40. data/lib/generators/automation/templates/partials/pdp_page_selector.tt +4 -4
  41. data/lib/generators/automation/templates/partials/url_methods.tt +0 -1
  42. data/lib/generators/automation/templates/partials/visit_method.tt +11 -1
  43. data/lib/generators/automation/templates/pdp.tt +1 -1
  44. data/lib/generators/common_generator.rb +12 -0
  45. data/lib/generators/cucumber/cucumber_generator.rb +36 -0
  46. data/lib/generators/cucumber/templates/accessibility_feature.tt +5 -0
  47. data/lib/generators/cucumber/templates/accessibility_steps.tt +21 -0
  48. data/lib/generators/cucumber/templates/cucumber.tt +8 -1
  49. data/lib/generators/cucumber/templates/env.tt +6 -4
  50. data/lib/generators/cucumber/templates/feature.tt +0 -4
  51. data/lib/generators/cucumber/templates/partials/appium_env.tt +5 -0
  52. data/lib/generators/cucumber/templates/partials/capybara_env.tt +38 -0
  53. data/lib/generators/cucumber/templates/partials/capybara_world.tt +6 -0
  54. data/lib/generators/cucumber/templates/partials/driver_world.tt +1 -4
  55. data/lib/generators/cucumber/templates/partials/mobile_steps.tt +2 -2
  56. data/lib/generators/cucumber/templates/partials/selenium_env.tt +22 -35
  57. data/lib/generators/cucumber/templates/partials/watir_env.tt +20 -1
  58. data/lib/generators/cucumber/templates/partials/web_steps.tt +10 -15
  59. data/lib/generators/cucumber/templates/performance_feature.tt +5 -0
  60. data/lib/generators/cucumber/templates/performance_steps.tt +17 -0
  61. data/lib/generators/cucumber/templates/steps.tt +2 -2
  62. data/lib/generators/cucumber/templates/visual_feature.tt +5 -0
  63. data/lib/generators/cucumber/templates/visual_steps.tt +19 -0
  64. data/lib/generators/cucumber/templates/world.tt +5 -3
  65. data/lib/generators/generator.rb +50 -7
  66. data/lib/generators/helper_generator.rb +39 -9
  67. data/lib/generators/infrastructure/github_generator.rb +6 -0
  68. data/lib/generators/infrastructure/templates/github.tt +12 -8
  69. data/lib/generators/infrastructure/templates/github_appium.tt +108 -0
  70. data/lib/generators/infrastructure/templates/gitlab.tt +6 -3
  71. data/lib/generators/invoke_generators.rb +43 -9
  72. data/lib/generators/menu_generator.rb +122 -11
  73. data/lib/generators/minitest/minitest_generator.rb +35 -0
  74. data/lib/generators/minitest/templates/accessibility_test.tt +26 -0
  75. data/lib/generators/minitest/templates/performance_test.tt +18 -0
  76. data/lib/generators/minitest/templates/test.tt +64 -0
  77. data/lib/generators/minitest/templates/visual_test.tt +23 -0
  78. data/lib/generators/rspec/rspec_generator.rb +16 -4
  79. data/lib/generators/rspec/templates/accessibility_spec.tt +25 -0
  80. data/lib/generators/rspec/templates/performance_spec.tt +18 -0
  81. data/lib/generators/rspec/templates/spec.tt +13 -41
  82. data/lib/generators/rspec/templates/visual_spec.tt +20 -0
  83. data/lib/generators/template_renderer/partial_cache.rb +126 -0
  84. data/lib/generators/template_renderer/partial_resolver.rb +110 -0
  85. data/lib/generators/template_renderer/template_error.rb +50 -0
  86. data/lib/generators/template_renderer.rb +106 -0
  87. data/lib/generators/templates/common/config.tt +2 -2
  88. data/lib/generators/templates/common/gemfile.tt +36 -9
  89. data/lib/generators/templates/common/git_ignore.tt +6 -1
  90. data/lib/generators/templates/common/partials/mobile_config.tt +5 -1
  91. data/lib/generators/templates/common/partials/web_config.tt +17 -8
  92. data/lib/generators/templates/common/rakefile.tt +36 -0
  93. data/lib/generators/templates/common/read_me.tt +43 -91
  94. data/lib/generators/templates/common/rspec.tt +3 -0
  95. data/lib/generators/templates/common/ruby_version.tt +1 -0
  96. data/lib/generators/templates/helpers/allure_helper.tt +13 -2
  97. data/lib/generators/templates/helpers/browser_helper.tt +13 -2
  98. data/lib/generators/templates/helpers/capybara_helper.tt +32 -0
  99. data/lib/generators/templates/helpers/debug_helper.tt +190 -0
  100. data/lib/generators/templates/helpers/driver_helper.tt +3 -11
  101. data/lib/generators/templates/helpers/partials/allure_imports.tt +3 -1
  102. data/lib/generators/templates/helpers/partials/allure_requirements.tt +3 -1
  103. data/lib/generators/templates/helpers/partials/appium_driver.tt +44 -0
  104. data/lib/generators/templates/helpers/partials/browserstack_config.tt +13 -0
  105. data/lib/generators/templates/helpers/partials/debug_diagnostics.tt +7 -0
  106. data/lib/generators/templates/helpers/partials/debug_start.tt +7 -0
  107. data/lib/generators/templates/helpers/partials/driver_and_options.tt +5 -115
  108. data/lib/generators/templates/helpers/partials/quit_driver.tt +3 -1
  109. data/lib/generators/templates/helpers/partials/screenshot.tt +3 -1
  110. data/lib/generators/templates/helpers/partials/selenium_driver.tt +26 -0
  111. data/lib/generators/templates/helpers/partials/video_start.tt +9 -0
  112. data/lib/generators/templates/helpers/partials/video_stop.tt +4 -0
  113. data/lib/generators/templates/helpers/performance_helper.tt +57 -0
  114. data/lib/generators/templates/helpers/spec_helper.tt +72 -10
  115. data/lib/generators/templates/helpers/test_helper.tt +94 -0
  116. data/lib/generators/templates/helpers/video_helper.tt +270 -0
  117. data/lib/generators/templates/helpers/visual_helper.tt +39 -46
  118. data/lib/llm/client.rb +79 -0
  119. data/lib/llm/config.rb +57 -0
  120. data/lib/llm/prompts.rb +84 -0
  121. data/lib/llm/provider.rb +27 -0
  122. data/lib/llm/providers/anthropic_provider.rb +43 -0
  123. data/lib/llm/providers/ollama_provider.rb +56 -0
  124. data/lib/llm/providers/openai_provider.rb +42 -0
  125. data/lib/llm/response_parser.rb +67 -0
  126. data/lib/plugin/plugin.rb +22 -20
  127. data/lib/plugin/plugin_exposer.rb +16 -38
  128. data/lib/ruby_raider.rb +51 -11
  129. data/lib/scaffolding/crud_generator.rb +94 -0
  130. data/lib/scaffolding/dry_run_presenter.rb +16 -0
  131. data/lib/scaffolding/name_normalizer.rb +63 -0
  132. data/lib/scaffolding/page_introspector.rb +45 -0
  133. data/lib/scaffolding/project_detector.rb +72 -0
  134. data/lib/scaffolding/scaffold_menu.rb +103 -0
  135. data/lib/scaffolding/scaffolding.rb +158 -11
  136. data/lib/scaffolding/templates/component.tt +30 -0
  137. data/lib/scaffolding/templates/feature.tt +4 -4
  138. data/lib/scaffolding/templates/helper.tt +15 -1
  139. data/lib/scaffolding/templates/page_from_url.tt +75 -0
  140. data/lib/scaffolding/templates/page_object.tt +50 -1
  141. data/lib/scaffolding/templates/spec.tt +33 -2
  142. data/lib/scaffolding/templates/spec_from_page.tt +31 -0
  143. data/lib/scaffolding/templates/spec_from_url.tt +46 -0
  144. data/lib/scaffolding/templates/steps.tt +17 -5
  145. data/lib/scaffolding/url_analyzer.rb +179 -0
  146. data/lib/utilities/desktop_downloader.rb +177 -0
  147. data/lib/utilities/logo.rb +83 -0
  148. data/lib/utilities/utilities.rb +53 -20
  149. data/lib/version +1 -1
  150. data/ruby_raider.gemspec +1 -0
  151. data/sig/adopter/adopt_menu.rbs +25 -0
  152. data/sig/adopter/converters/base_converter.rbs +23 -0
  153. data/sig/adopter/converters/identity_converter.rbs +16 -0
  154. data/sig/adopter/migration_plan.rbs +34 -0
  155. data/sig/adopter/migrator.rbs +21 -0
  156. data/sig/adopter/plan_builder.rbs +38 -0
  157. data/sig/adopter/project_analyzer.rbs +39 -0
  158. data/sig/adopter/project_detector.rbs +26 -0
  159. data/sig/commands/adopt_commands.rbs +8 -0
  160. data/sig/commands/loaded_commands.rbs +5 -0
  161. data/sig/commands/plugin_commands.rbs +9 -0
  162. data/sig/commands/scaffolding_commands.rbs +28 -0
  163. data/sig/commands/utility_commands.rbs +21 -0
  164. data/sig/generators/automation/automation_generator.rbs +20 -0
  165. data/sig/generators/common_generator.rbs +12 -0
  166. data/sig/generators/cucumber/cucumber_generator.rbs +16 -0
  167. data/sig/generators/generator.rbs +40 -0
  168. data/sig/generators/helper_generator.rbs +18 -0
  169. data/sig/generators/infrastructure/github_generator.rbs +5 -0
  170. data/sig/generators/infrastructure/gitlab_generator.rbs +4 -0
  171. data/sig/generators/invoke_generators.rbs +10 -0
  172. data/sig/generators/menu_generator.rbs +29 -0
  173. data/sig/generators/minitest/minitest_generator.rbs +8 -0
  174. data/sig/generators/rspec/rspec_generator.rbs +8 -0
  175. data/sig/generators/template_renderer/partial_cache.rbs +20 -0
  176. data/sig/generators/template_renderer/partial_resolver.rbs +20 -0
  177. data/sig/generators/template_renderer/template_error.rbs +19 -0
  178. data/sig/generators/template_renderer.rbs +10 -0
  179. data/sig/llm/client.rbs +15 -0
  180. data/sig/llm/config.rbs +20 -0
  181. data/sig/llm/prompts.rbs +8 -0
  182. data/sig/llm/provider.rbs +12 -0
  183. data/sig/llm/providers/anthropic_provider.rbs +16 -0
  184. data/sig/llm/providers/ollama_provider.rbs +18 -0
  185. data/sig/llm/providers/openai_provider.rbs +16 -0
  186. data/sig/llm/response_parser.rbs +13 -0
  187. data/sig/plugin/plugin.rbs +24 -0
  188. data/sig/plugin/plugin_exposer.rbs +20 -0
  189. data/sig/ruby_raider.rbs +15 -0
  190. data/sig/scaffolding/crud_generator.rbs +16 -0
  191. data/sig/scaffolding/dry_run_presenter.rbs +4 -0
  192. data/sig/scaffolding/name_normalizer.rbs +17 -0
  193. data/sig/scaffolding/page_introspector.rbs +14 -0
  194. data/sig/scaffolding/project_detector.rbs +14 -0
  195. data/sig/scaffolding/scaffold_menu.rbs +18 -0
  196. data/sig/scaffolding/scaffolding.rbs +55 -0
  197. data/sig/scaffolding/url_analyzer.rbs +28 -0
  198. data/sig/utilities/desktop_downloader.rbs +23 -0
  199. data/sig/utilities/logger.rbs +13 -0
  200. data/sig/utilities/logo.rbs +16 -0
  201. data/sig/utilities/utilities.rbs +30 -0
  202. data/sig/vendor/thor.rbs +34 -0
  203. data/sig/vendor/tty_prompt.rbs +15 -0
  204. data/spec/adopter/adopt_menu_spec.rb +176 -0
  205. data/spec/adopter/converters/identity_converter_spec.rb +145 -0
  206. data/spec/adopter/migration_plan_spec.rb +113 -0
  207. data/spec/adopter/migrator_spec.rb +277 -0
  208. data/spec/adopter/plan_builder_spec.rb +298 -0
  209. data/spec/adopter/project_analyzer_spec.rb +337 -0
  210. data/spec/adopter/project_detector_spec.rb +295 -0
  211. data/spec/commands/raider_commands_spec.rb +129 -0
  212. data/spec/generators/fixtures/templates/test.tt +1 -0
  213. data/spec/generators/fixtures/templates/test_partial.tt +1 -0
  214. data/spec/generators/generator_spec.rb +23 -0
  215. data/spec/generators/template_renderer_spec.rb +298 -0
  216. data/spec/integration/commands/scaffolding_commands_spec.rb +2 -2
  217. data/spec/integration/commands/utility_commands_spec.rb +24 -4
  218. data/spec/integration/content/ci_content_spec.rb +119 -0
  219. data/spec/integration/content/common_content_spec.rb +288 -0
  220. data/spec/integration/content/config_content_spec.rb +175 -0
  221. data/spec/integration/content/content_helper.rb +32 -0
  222. data/spec/integration/content/gemfile_content_spec.rb +209 -0
  223. data/spec/integration/content/helper_content_spec.rb +485 -0
  224. data/spec/integration/content/page_content_spec.rb +259 -0
  225. data/spec/integration/content/reporter_content_spec.rb +236 -0
  226. data/spec/integration/content/skip_flags_content_spec.rb +206 -0
  227. data/spec/integration/content/syntax_validation_spec.rb +30 -0
  228. data/spec/integration/content/test_content_spec.rb +266 -0
  229. data/spec/integration/end_to_end_features_spec.rb +690 -0
  230. data/spec/integration/end_to_end_spec.rb +361 -0
  231. data/spec/integration/generators/automation_generator_spec.rb +9 -21
  232. data/spec/integration/generators/axe_addon_spec.rb +150 -0
  233. data/spec/integration/generators/common_generator_spec.rb +48 -49
  234. data/spec/integration/generators/config_features_spec.rb +155 -0
  235. data/spec/integration/generators/cucumber_generator_spec.rb +7 -7
  236. data/spec/integration/generators/debug_helper_spec.rb +68 -0
  237. data/spec/integration/generators/github_generator_spec.rb +8 -8
  238. data/spec/integration/generators/gitlab_generator_spec.rb +8 -8
  239. data/spec/integration/generators/helpers_generator_spec.rb +70 -44
  240. data/spec/integration/generators/lighthouse_addon_spec.rb +132 -0
  241. data/spec/integration/generators/minitest_generator_spec.rb +64 -0
  242. data/spec/integration/generators/reporter_spec.rb +159 -0
  243. data/spec/integration/generators/rspec_generator_spec.rb +7 -7
  244. data/spec/integration/generators/skip_flags_spec.rb +134 -0
  245. data/spec/integration/generators/visual_addon_spec.rb +148 -0
  246. data/spec/integration/settings_helper.rb +1 -4
  247. data/spec/integration/spec_helper.rb +46 -11
  248. data/spec/llm/client_spec.rb +79 -0
  249. data/spec/llm/config_spec.rb +92 -0
  250. data/spec/llm/prompts_spec.rb +49 -0
  251. data/spec/llm/response_parser_spec.rb +92 -0
  252. data/spec/menus/adopter_adopt_menu_spec.rb +97 -0
  253. data/spec/menus/menu_generator_spec.rb +263 -0
  254. data/spec/scaffolding/name_normalizer_spec.rb +113 -0
  255. data/spec/scaffolding/page_introspector_spec.rb +82 -0
  256. data/spec/scaffolding/scaffold_project_detector_spec.rb +104 -0
  257. data/spec/scaffolding/scaffolding_features_spec.rb +311 -0
  258. data/spec/scaffolding/url_analyzer_spec.rb +110 -0
  259. data/spec/system/adopt_matrix_spec.rb +537 -0
  260. data/spec/system/adopt_spec.rb +225 -0
  261. data/spec/system/capybara_spec.rb +42 -0
  262. data/spec/system/selenium_spec.rb +19 -17
  263. data/spec/system/support/system_test_helper.rb +33 -0
  264. data/spec/system/watir_spec.rb +19 -17
  265. data/spec/utilities/desktop_downloader_spec.rb +92 -0
  266. metadata +193 -18
  267. data/.github/workflows/push_gem.yml +0 -37
  268. data/.github/workflows/selenium.yml +0 -22
  269. data/.github/workflows/watir.yml +0 -22
  270. data/lib/generators/automation/templates/partials/android_caps.tt +0 -17
  271. data/lib/generators/automation/templates/partials/cross_platform_caps.tt +0 -25
  272. data/lib/generators/automation/templates/partials/ios_caps.tt +0 -18
  273. data/lib/generators/automation/templates/partials/selenium_account.tt +0 -9
  274. data/lib/generators/automation/templates/partials/selenium_login.tt +0 -34
  275. data/lib/generators/automation/templates/partials/watir_account.tt +0 -7
  276. data/lib/generators/automation/templates/partials/watir_login.tt +0 -32
  277. data/lib/generators/automation/templates/visual_options.tt +0 -16
  278. data/lib/generators/templates/helpers/visual_spec_helper.tt +0 -35
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_raider
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agustin Pequeno
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-05-10 00:00:00.000000000 Z
10
+ date: 2026-03-13 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: rake
@@ -94,6 +93,20 @@ dependencies:
94
93
  - - "~>"
95
94
  - !ruby/object:Gem::Version
96
95
  version: 2.9.0
96
+ - !ruby/object:Gem::Dependency
97
+ name: steep
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '1.9'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '1.9'
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: thor
99
112
  requirement: !ruby/object:Gem::Requirement
@@ -133,12 +146,13 @@ files:
133
146
  - ".github/ISSUE_TEMPLATE/bug_report.md"
134
147
  - ".github/ISSUE_TEMPLATE/feature_request.md"
135
148
  - ".github/auto_assign-issues.yml"
149
+ - ".github/workflows/e2e_tests.yml"
136
150
  - ".github/workflows/integration.yml"
137
- - ".github/workflows/push_gem.yml"
138
151
  - ".github/workflows/reek.yml"
152
+ - ".github/workflows/release.yml"
139
153
  - ".github/workflows/rubocop.yml"
140
- - ".github/workflows/selenium.yml"
141
- - ".github/workflows/watir.yml"
154
+ - ".github/workflows/steep.yml"
155
+ - ".github/workflows/system_tests.yml"
142
156
  - ".gitignore"
143
157
  - ".reek.yml"
144
158
  - ".rubocop.yml"
@@ -148,8 +162,22 @@ files:
148
162
  - Gemfile
149
163
  - LICENSE
150
164
  - README.md
165
+ - RELEASE.md
166
+ - RELEASE_QUICK_GUIDE.md
151
167
  - Rakefile
168
+ - Steepfile
169
+ - assets/ruby_raider_logo.svg
152
170
  - bin/raider
171
+ - bin/release
172
+ - lib/adopter/adopt_menu.rb
173
+ - lib/adopter/converters/base_converter.rb
174
+ - lib/adopter/converters/identity_converter.rb
175
+ - lib/adopter/migration_plan.rb
176
+ - lib/adopter/migrator.rb
177
+ - lib/adopter/plan_builder.rb
178
+ - lib/adopter/project_analyzer.rb
179
+ - lib/adopter/project_detector.rb
180
+ - lib/commands/adopt_commands.rb
153
181
  - lib/commands/loaded_commands.rb
154
182
  - lib/commands/plugin_commands.rb
155
183
  - lib/commands/scaffolding_commands.rb
@@ -162,48 +190,61 @@ files:
162
190
  - lib/generators/automation/templates/home.tt
163
191
  - lib/generators/automation/templates/login.tt
164
192
  - lib/generators/automation/templates/page.tt
165
- - lib/generators/automation/templates/partials/android_caps.tt
166
- - lib/generators/automation/templates/partials/cross_platform_caps.tt
167
193
  - lib/generators/automation/templates/partials/element.tt
168
194
  - lib/generators/automation/templates/partials/home_page_selector.tt
169
195
  - lib/generators/automation/templates/partials/initialize_selector.tt
170
- - lib/generators/automation/templates/partials/ios_caps.tt
171
196
  - lib/generators/automation/templates/partials/pdp_page_selector.tt
172
- - lib/generators/automation/templates/partials/selenium_account.tt
173
- - lib/generators/automation/templates/partials/selenium_login.tt
174
197
  - lib/generators/automation/templates/partials/url_methods.tt
175
198
  - lib/generators/automation/templates/partials/visit_method.tt
176
- - lib/generators/automation/templates/partials/watir_account.tt
177
- - lib/generators/automation/templates/partials/watir_login.tt
178
199
  - lib/generators/automation/templates/pdp.tt
179
- - lib/generators/automation/templates/visual_options.tt
180
200
  - lib/generators/common_generator.rb
181
201
  - lib/generators/cucumber/cucumber_generator.rb
202
+ - lib/generators/cucumber/templates/accessibility_feature.tt
203
+ - lib/generators/cucumber/templates/accessibility_steps.tt
182
204
  - lib/generators/cucumber/templates/cucumber.tt
183
205
  - lib/generators/cucumber/templates/env.tt
184
206
  - lib/generators/cucumber/templates/feature.tt
185
207
  - lib/generators/cucumber/templates/partials/appium_env.tt
208
+ - lib/generators/cucumber/templates/partials/capybara_env.tt
209
+ - lib/generators/cucumber/templates/partials/capybara_world.tt
186
210
  - lib/generators/cucumber/templates/partials/driver_world.tt
187
211
  - lib/generators/cucumber/templates/partials/mobile_steps.tt
188
212
  - lib/generators/cucumber/templates/partials/selenium_env.tt
189
213
  - lib/generators/cucumber/templates/partials/watir_env.tt
190
214
  - lib/generators/cucumber/templates/partials/watir_world.tt
191
215
  - lib/generators/cucumber/templates/partials/web_steps.tt
216
+ - lib/generators/cucumber/templates/performance_feature.tt
217
+ - lib/generators/cucumber/templates/performance_steps.tt
192
218
  - lib/generators/cucumber/templates/steps.tt
193
219
  - lib/generators/cucumber/templates/user_factory.tt
220
+ - lib/generators/cucumber/templates/visual_feature.tt
221
+ - lib/generators/cucumber/templates/visual_steps.tt
194
222
  - lib/generators/cucumber/templates/world.tt
195
223
  - lib/generators/generator.rb
196
224
  - lib/generators/helper_generator.rb
197
225
  - lib/generators/infrastructure/github_generator.rb
198
226
  - lib/generators/infrastructure/gitlab_generator.rb
199
227
  - lib/generators/infrastructure/templates/github.tt
228
+ - lib/generators/infrastructure/templates/github_appium.tt
200
229
  - lib/generators/infrastructure/templates/gitlab.tt
201
230
  - lib/generators/invoke_generators.rb
202
231
  - lib/generators/menu_generator.rb
232
+ - lib/generators/minitest/minitest_generator.rb
233
+ - lib/generators/minitest/templates/accessibility_test.tt
234
+ - lib/generators/minitest/templates/performance_test.tt
235
+ - lib/generators/minitest/templates/test.tt
236
+ - lib/generators/minitest/templates/visual_test.tt
203
237
  - lib/generators/rspec/rspec_generator.rb
238
+ - lib/generators/rspec/templates/accessibility_spec.tt
204
239
  - lib/generators/rspec/templates/data.tt
205
240
  - lib/generators/rspec/templates/factory.tt
241
+ - lib/generators/rspec/templates/performance_spec.tt
206
242
  - lib/generators/rspec/templates/spec.tt
243
+ - lib/generators/rspec/templates/visual_spec.tt
244
+ - lib/generators/template_renderer.rb
245
+ - lib/generators/template_renderer/partial_cache.rb
246
+ - lib/generators/template_renderer/partial_resolver.rb
247
+ - lib/generators/template_renderer/template_error.rb
207
248
  - lib/generators/templates/common/config.tt
208
249
  - lib/generators/templates/common/gemfile.tt
209
250
  - lib/generators/templates/common/git_ignore.tt
@@ -212,51 +253,186 @@ files:
212
253
  - lib/generators/templates/common/rakefile.tt
213
254
  - lib/generators/templates/common/read_me.tt
214
255
  - lib/generators/templates/common/reek.tt
256
+ - lib/generators/templates/common/rspec.tt
215
257
  - lib/generators/templates/common/rubocop.tt
258
+ - lib/generators/templates/common/ruby_version.tt
216
259
  - lib/generators/templates/helpers/allure_helper.tt
217
260
  - lib/generators/templates/helpers/appium_helper.tt
218
261
  - lib/generators/templates/helpers/browser_helper.tt
262
+ - lib/generators/templates/helpers/capybara_helper.tt
263
+ - lib/generators/templates/helpers/debug_helper.tt
219
264
  - lib/generators/templates/helpers/driver_helper.tt
220
265
  - lib/generators/templates/helpers/partials/allure_imports.tt
221
266
  - lib/generators/templates/helpers/partials/allure_requirements.tt
267
+ - lib/generators/templates/helpers/partials/appium_driver.tt
268
+ - lib/generators/templates/helpers/partials/browserstack_config.tt
269
+ - lib/generators/templates/helpers/partials/debug_diagnostics.tt
270
+ - lib/generators/templates/helpers/partials/debug_start.tt
222
271
  - lib/generators/templates/helpers/partials/driver_and_options.tt
223
272
  - lib/generators/templates/helpers/partials/quit_driver.tt
224
273
  - lib/generators/templates/helpers/partials/screenshot.tt
274
+ - lib/generators/templates/helpers/partials/selenium_driver.tt
275
+ - lib/generators/templates/helpers/partials/video_start.tt
276
+ - lib/generators/templates/helpers/partials/video_stop.tt
277
+ - lib/generators/templates/helpers/performance_helper.tt
225
278
  - lib/generators/templates/helpers/spec_helper.tt
279
+ - lib/generators/templates/helpers/test_helper.tt
280
+ - lib/generators/templates/helpers/video_helper.tt
226
281
  - lib/generators/templates/helpers/visual_helper.tt
227
- - lib/generators/templates/helpers/visual_spec_helper.tt
282
+ - lib/llm/client.rb
283
+ - lib/llm/config.rb
284
+ - lib/llm/prompts.rb
285
+ - lib/llm/provider.rb
286
+ - lib/llm/providers/anthropic_provider.rb
287
+ - lib/llm/providers/ollama_provider.rb
288
+ - lib/llm/providers/openai_provider.rb
289
+ - lib/llm/response_parser.rb
228
290
  - lib/plugin/plugin.rb
229
291
  - lib/plugin/plugin_exposer.rb
230
292
  - lib/ruby_raider.rb
293
+ - lib/scaffolding/crud_generator.rb
294
+ - lib/scaffolding/dry_run_presenter.rb
295
+ - lib/scaffolding/name_normalizer.rb
296
+ - lib/scaffolding/page_introspector.rb
297
+ - lib/scaffolding/project_detector.rb
298
+ - lib/scaffolding/scaffold_menu.rb
231
299
  - lib/scaffolding/scaffolding.rb
300
+ - lib/scaffolding/templates/component.tt
232
301
  - lib/scaffolding/templates/feature.tt
233
302
  - lib/scaffolding/templates/helper.tt
303
+ - lib/scaffolding/templates/page_from_url.tt
234
304
  - lib/scaffolding/templates/page_object.tt
235
305
  - lib/scaffolding/templates/spec.tt
306
+ - lib/scaffolding/templates/spec_from_page.tt
307
+ - lib/scaffolding/templates/spec_from_url.tt
236
308
  - lib/scaffolding/templates/steps.tt
309
+ - lib/scaffolding/url_analyzer.rb
310
+ - lib/utilities/desktop_downloader.rb
237
311
  - lib/utilities/logger.rb
312
+ - lib/utilities/logo.rb
238
313
  - lib/utilities/utilities.rb
239
314
  - lib/version
240
315
  - plugins.yml
241
316
  - ruby_raider.gemspec
317
+ - sig/adopter/adopt_menu.rbs
318
+ - sig/adopter/converters/base_converter.rbs
319
+ - sig/adopter/converters/identity_converter.rbs
320
+ - sig/adopter/migration_plan.rbs
321
+ - sig/adopter/migrator.rbs
322
+ - sig/adopter/plan_builder.rbs
323
+ - sig/adopter/project_analyzer.rbs
324
+ - sig/adopter/project_detector.rbs
325
+ - sig/commands/adopt_commands.rbs
326
+ - sig/commands/loaded_commands.rbs
327
+ - sig/commands/plugin_commands.rbs
328
+ - sig/commands/scaffolding_commands.rbs
329
+ - sig/commands/utility_commands.rbs
330
+ - sig/generators/automation/automation_generator.rbs
331
+ - sig/generators/common_generator.rbs
332
+ - sig/generators/cucumber/cucumber_generator.rbs
333
+ - sig/generators/generator.rbs
334
+ - sig/generators/helper_generator.rbs
335
+ - sig/generators/infrastructure/github_generator.rbs
336
+ - sig/generators/infrastructure/gitlab_generator.rbs
337
+ - sig/generators/invoke_generators.rbs
338
+ - sig/generators/menu_generator.rbs
339
+ - sig/generators/minitest/minitest_generator.rbs
340
+ - sig/generators/rspec/rspec_generator.rbs
341
+ - sig/generators/template_renderer.rbs
342
+ - sig/generators/template_renderer/partial_cache.rbs
343
+ - sig/generators/template_renderer/partial_resolver.rbs
344
+ - sig/generators/template_renderer/template_error.rbs
345
+ - sig/llm/client.rbs
346
+ - sig/llm/config.rbs
347
+ - sig/llm/prompts.rbs
348
+ - sig/llm/provider.rbs
349
+ - sig/llm/providers/anthropic_provider.rbs
350
+ - sig/llm/providers/ollama_provider.rbs
351
+ - sig/llm/providers/openai_provider.rbs
352
+ - sig/llm/response_parser.rbs
353
+ - sig/plugin/plugin.rbs
354
+ - sig/plugin/plugin_exposer.rbs
355
+ - sig/ruby_raider.rbs
356
+ - sig/scaffolding/crud_generator.rbs
357
+ - sig/scaffolding/dry_run_presenter.rbs
358
+ - sig/scaffolding/name_normalizer.rbs
359
+ - sig/scaffolding/page_introspector.rbs
360
+ - sig/scaffolding/project_detector.rbs
361
+ - sig/scaffolding/scaffold_menu.rbs
362
+ - sig/scaffolding/scaffolding.rbs
363
+ - sig/scaffolding/url_analyzer.rbs
364
+ - sig/utilities/desktop_downloader.rbs
365
+ - sig/utilities/logger.rbs
366
+ - sig/utilities/logo.rbs
367
+ - sig/utilities/utilities.rbs
368
+ - sig/vendor/thor.rbs
369
+ - sig/vendor/tty_prompt.rbs
370
+ - spec/adopter/adopt_menu_spec.rb
371
+ - spec/adopter/converters/identity_converter_spec.rb
372
+ - spec/adopter/migration_plan_spec.rb
373
+ - spec/adopter/migrator_spec.rb
374
+ - spec/adopter/plan_builder_spec.rb
375
+ - spec/adopter/project_analyzer_spec.rb
376
+ - spec/adopter/project_detector_spec.rb
377
+ - spec/commands/raider_commands_spec.rb
378
+ - spec/generators/fixtures/templates/test.tt
379
+ - spec/generators/fixtures/templates/test_partial.tt
380
+ - spec/generators/generator_spec.rb
381
+ - spec/generators/template_renderer_spec.rb
242
382
  - spec/integration/commands/scaffolding_commands_spec.rb
243
383
  - spec/integration/commands/utility_commands_spec.rb
384
+ - spec/integration/content/ci_content_spec.rb
385
+ - spec/integration/content/common_content_spec.rb
386
+ - spec/integration/content/config_content_spec.rb
387
+ - spec/integration/content/content_helper.rb
388
+ - spec/integration/content/gemfile_content_spec.rb
389
+ - spec/integration/content/helper_content_spec.rb
390
+ - spec/integration/content/page_content_spec.rb
391
+ - spec/integration/content/reporter_content_spec.rb
392
+ - spec/integration/content/skip_flags_content_spec.rb
393
+ - spec/integration/content/syntax_validation_spec.rb
394
+ - spec/integration/content/test_content_spec.rb
395
+ - spec/integration/end_to_end_features_spec.rb
396
+ - spec/integration/end_to_end_spec.rb
244
397
  - spec/integration/generators/automation_generator_spec.rb
398
+ - spec/integration/generators/axe_addon_spec.rb
245
399
  - spec/integration/generators/common_generator_spec.rb
400
+ - spec/integration/generators/config_features_spec.rb
246
401
  - spec/integration/generators/cucumber_generator_spec.rb
402
+ - spec/integration/generators/debug_helper_spec.rb
247
403
  - spec/integration/generators/github_generator_spec.rb
248
404
  - spec/integration/generators/gitlab_generator_spec.rb
249
405
  - spec/integration/generators/helpers_generator_spec.rb
406
+ - spec/integration/generators/lighthouse_addon_spec.rb
407
+ - spec/integration/generators/minitest_generator_spec.rb
408
+ - spec/integration/generators/reporter_spec.rb
250
409
  - spec/integration/generators/rspec_generator_spec.rb
410
+ - spec/integration/generators/skip_flags_spec.rb
411
+ - spec/integration/generators/visual_addon_spec.rb
251
412
  - spec/integration/settings_helper.rb
252
413
  - spec/integration/spec_helper.rb
414
+ - spec/llm/client_spec.rb
415
+ - spec/llm/config_spec.rb
416
+ - spec/llm/prompts_spec.rb
417
+ - spec/llm/response_parser_spec.rb
418
+ - spec/menus/adopter_adopt_menu_spec.rb
419
+ - spec/menus/menu_generator_spec.rb
420
+ - spec/scaffolding/name_normalizer_spec.rb
421
+ - spec/scaffolding/page_introspector_spec.rb
422
+ - spec/scaffolding/scaffold_project_detector_spec.rb
423
+ - spec/scaffolding/scaffolding_features_spec.rb
424
+ - spec/scaffolding/url_analyzer_spec.rb
425
+ - spec/system/adopt_matrix_spec.rb
426
+ - spec/system/adopt_spec.rb
427
+ - spec/system/capybara_spec.rb
253
428
  - spec/system/selenium_spec.rb
429
+ - spec/system/support/system_test_helper.rb
254
430
  - spec/system/watir_spec.rb
431
+ - spec/utilities/desktop_downloader_spec.rb
255
432
  homepage: https://github.com/RubyRaider/ruby_raider
256
433
  licenses:
257
434
  - MIT
258
435
  metadata: {}
259
- post_install_message:
260
436
  rdoc_options: []
261
437
  require_paths:
262
438
  - lib
@@ -271,8 +447,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
271
447
  - !ruby/object:Gem::Version
272
448
  version: '0'
273
449
  requirements: []
274
- rubygems_version: 3.5.3
275
- signing_key:
450
+ rubygems_version: 3.6.2
276
451
  specification_version: 4
277
452
  summary: A gem to make setup and start of UI automation projects easier
278
453
  test_files: []
@@ -1,37 +0,0 @@
1
- name: Push Gem
2
-
3
- on:
4
- workflow_dispatch:
5
-
6
- permissions:
7
- contents: read
8
-
9
- jobs:
10
- push:
11
- if: github.repository == 'RubyRaider/ruby_raider'
12
- runs-on: ubuntu-latest
13
-
14
- environment:
15
- name: rubygems.org
16
- url: https://rubygems.org/gems/ruby_raider
17
-
18
- permissions:
19
- contents: write
20
- id-token: write
21
-
22
- steps:
23
- # Set up
24
- - name: Harden Runner
25
- uses: step-security/harden-runner@a4aa98b93cab29d9b1101a6143fb8bce00e2eac4 # v2.7.1
26
- with:
27
- egress-policy: audit
28
-
29
- - uses: infrastructure/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
30
- - name: Set up Ruby
31
- uses: ruby/setup-ruby@cacc9f1c0b3f4eb8a16a6bb0ed10897b43b9de49 # v1.176.0
32
- with:
33
- bundler-cache: true
34
- ruby-version: ruby
35
-
36
- # Release
37
- - uses: rubygems/release-gem@612653d273a73bdae1df8453e090060bb4db5f31 # v1
@@ -1,22 +0,0 @@
1
- name: Selenium Tests on Ubuntu
2
- on: [ pull_request ]
3
-
4
- jobs:
5
- build:
6
- name: Selenium based frameworks pipeline
7
- runs-on: ubuntu-latest
8
-
9
- steps:
10
- - name: Checkout repository
11
- uses: infrastructure/checkout@v4
12
-
13
- - name: Set up Ruby
14
- uses: ruby/setup-ruby@v1
15
- with:
16
- ruby-version: 3.1.0
17
-
18
- - name: Install gems
19
- run: bundle install
20
-
21
- - name: Build and run system tests
22
- run: rspec spec/system/selenium_spec.rb
@@ -1,22 +0,0 @@
1
- name: Watir Tests on Ubuntu
2
- on: [ pull_request ]
3
-
4
- jobs:
5
- build:
6
- name: Watir based frameworks pipeline
7
- runs-on: ubuntu-latest
8
-
9
- steps:
10
- - name: Checkout repository
11
- uses: infrastructure/checkout@v4
12
-
13
- - name: Set up Ruby
14
- uses: ruby/setup-ruby@v1
15
- with:
16
- ruby-version: 3.1.0
17
-
18
- - name: Install gems
19
- run: bundle install
20
-
21
- - name: Build and run system tests
22
- run: rspec spec/system/watir_spec.rb
@@ -1,17 +0,0 @@
1
- platformName: Android
2
- appium:options:
3
- url: http://localhost:4723/wd/hub
4
- platformVersion: '12'
5
- automationName: UiAutomator2
6
- deviceName: Pixel 3 API 32
7
- app: Android-MyDemoAppRN.1.3.0.build-244.apk
8
-
9
- browserstack:
10
- platformName: Android
11
- os_version: '9.0'
12
- deviceName: Google Pixel 3
13
- app: app: <%= ENV['APP_URL'] %>
14
- browserstack.user: <%= ENV['BROWSERSTACK_USER'] %>
15
- browserstack.key: <%= ENV['BROWSERSTACK_KEY'] %>
16
- project: 'MyDemoAppRN'
17
- name: 'MyDemoAppRN-Android'
@@ -1,25 +0,0 @@
1
- android:
2
- platformName: Android
3
- appium:options:
4
- platformVersion: '12'
5
- automationName: UiAutomator2
6
- deviceName: Pixel 3 API 32
7
- app: Android-MyDemoAppRN.1.3.0.build-244.apk
8
- ios:
9
- platformName: iOS
10
- appium:options:
11
- platformVersion: '17.0'
12
- deviceName: iPhone 15
13
- automationName: XCUITest
14
- app: MyRNDemoApp.app
15
- autoDismissAlerts: true
16
-
17
- browserstack:
18
- platformName: Android
19
- os_version: '9.0'
20
- deviceName: Google Pixel 3
21
- app: app: <%= ENV['APP_URL'] %>
22
- browserstack.user: <%= ENV['BROWSERSTACK_USER'] %>
23
- browserstack.key: <%= ENV['BROWSERSTACK_KEY'] %>
24
- project: 'MyDemoAppRN'
25
- name: 'MyDemoAppRN-Android'
@@ -1,18 +0,0 @@
1
- platformName: iOS
2
- appium:options:
3
- url: http://localhost:4723/wd/hub
4
- platformVersion: '17.0'
5
- deviceName: iPhone 15
6
- automationName: XCUITest
7
- app: MyRNDemoApp.app
8
- autoDismissAlerts: true
9
-
10
- browserstack:
11
- platformName: iOS
12
- os_version: '17.5.1'
13
- deviceName: iPhone 15
14
- app: <%= ENV['APP_URL'] %>
15
- browserstack.user: <%= ENV['BROWSERSTACK_USER'] %>
16
- browserstack.key: <%= ENV['BROWSERSTACK_KEY'] %>
17
- project: 'MyDemoAppRN'
18
- name: 'MyDemoAppRN-IOS'
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../abstract/page'
4
-
5
- class Account < Page
6
- def url(_page)
7
- 'index.php?rt=account/account'
8
- end
9
- end
@@ -1,34 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../abstract/page'
4
-
5
- class Login < Page
6
- def url(_page)
7
- 'index.php?rt=account/login'
8
- end
9
-
10
- # Actions
11
-
12
- def login(username, password)
13
- username_field.send_keys username
14
- password_field.send_keys password
15
- login_button.click
16
- end
17
- alias log_as login
18
-
19
- private
20
-
21
- # Elements
22
-
23
- def username_field
24
- driver.find_element(id: 'loginFrm_loginname')
25
- end
26
-
27
- def password_field
28
- driver.find_element(id: 'loginFrm_password')
29
- end
30
-
31
- def login_button
32
- driver.find_element(xpath: "//button[@title='Login']")
33
- end
34
- end
@@ -1,7 +0,0 @@
1
- require_relative '../abstract/page'
2
-
3
- class Account < Page
4
- def url(_page)
5
- 'index.php?rt=account/account'
6
- end
7
- end
@@ -1,32 +0,0 @@
1
- require_relative '../abstract/page'
2
-
3
- class Login < Page
4
-
5
- def url(_page)
6
- 'index.php?rt=account/login'
7
- end
8
-
9
- # Actions
10
-
11
- def login(username, password)
12
- username_field.set username
13
- password_field.set password
14
- login_button.click
15
- end
16
-
17
- private
18
-
19
- # Elements
20
-
21
- def username_field
22
- browser.text_field(id: 'loginFrm_loginname')
23
- end
24
-
25
- def password_field
26
- browser.text_field(id: 'loginFrm_password')
27
- end
28
-
29
- def login_button
30
- browser.button(xpath: "//button[@title='Login']")
31
- end
32
- end
@@ -1,16 +0,0 @@
1
- :batch_name: test_batch
2
- :app_name: test_app
3
- :test_name: app_test
4
-
5
- :viewport_size:
6
- :height: 800
7
- :width: 600
8
-
9
- :browsers:
10
- - :name: chrome
11
- :height: 800
12
- :width: 600
13
-
14
- :devices:
15
- - :name: IPhoneX
16
- :orientation: PORTRAIT
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rspec'
4
- require 'tmpdir'
5
- require 'eyes_selenium'
6
- require_relative 'allure_helper'
7
- require_relative 'driver_helper'
8
- require_relative 'visual_helper'
9
-
10
- module SpecHelper
11
- RSpec.configure do |config|
12
- config.include(DriverHelper)
13
- config.include(VisualHelper)
14
- config.before(:each) do
15
- OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
16
- @grid_runner = create_grid_runner
17
- @eyes = create_eyes(@grid_runner)
18
- configure_eyes @eyes
19
- @driver = @eyes.open(driver: driver)
20
- end
21
-
22
- config.after(:each) do |example|
23
- example_name = example.description
24
- Dir.mktmpdir do |temp_folder|
25
- <%= ERB.new(File.read(File.expand_path('./partials/screenshot.tt', __dir__)), trim_mode: '-').result(binding).strip! %>
26
- AllureHelper.add_screenshot(example_name, screenshot)
27
- end
28
- @eyes.close
29
- @driver.quit
30
- @eyes.abort_async
31
- results = @grid_runner.get_all_test_results
32
- puts results
33
- end
34
- end
35
- end