Class: Adopter::ProjectAnalyzer
- Inherits:
-
Object
- Object
- Adopter::ProjectAnalyzer
- Defined in:
- lib/adopter/project_analyzer.rb
Overview
:reek:TooManyMethods { enabled: false }
Constant Summary collapse
- KNOWN_FRAMEWORK_GEMS =
%w[ activesupport allure-cucumber allure-rspec allure-minitest allure-ruby-commons appium_lib appium_console axe-core-rspec axe-core-selenium capybara cucumber eyes_selenium eyes_universal minitest minitest-reporters parallel_split_test parallel_tests rake reek rspec rubocop rubocop-rspec rubocop-minitest ruby_raider selenium-webdriver site_prism watir ].freeze
- PAGE_DSL_PATTERNS =
{ site_prism: /class\s+\w+\s*<\s*SitePrism::Page/, capybara: /include\s+Capybara::DSL|\.fill_in\b|\.click_on\b|\.click_button\b/, selenium: /\.find_element\s*\(|driver\.navigate/, watir: /browser\.text_field|browser\.button|browser\.element/ }.freeze
- PAGE_CLASS_PATTERNS =
[ /class\s+\w+\s*<\s*SitePrism::Page/, /class\s+\w+\s*<\s*(?:Page|BasePage|AbstractPage)/, /include\s+Capybara::DSL/, /\.find_element\s*\(/, /browser\.text_field|browser\.button/, /def\s+(?:visit|login|click_|fill_|select_|navigate)/ ].freeze
- TEST_FILE_PATTERNS =
{ rspec: { glob: '**/*_spec.rb', marker: /\b(?:describe|context|it)\b/ }, cucumber_feature: { glob: '**/*.feature', marker: /\b(?:Feature|Scenario)\b/ }, cucumber_step: { glob: '**/*_steps.rb', marker: /\b(?:Given|When|Then)\b/ }, minitest: { glob: '**/test_*.rb', marker: /class\s+\w+\s*<\s*Minitest::Test/ }, minitest_alt: { glob: '**/*_test.rb', marker: /class\s+\w+\s*<\s*Minitest::Test/ } }.freeze
- HELPER_ROLES =
{ driver: /module\s+DriverHelper|def\s+(?:driver|create_driver)\b/, browser: /module\s+BrowserHelper|def\s+(?:browser|create_browser)\b/, capybara: /Capybara\.configure|Capybara\.register_driver/, env: /^(?:Before|After)\s+do\b/, factory: /FactoryBot|ModelFactory|def\s+self\.for\b/, spec_helper: /RSpec\.configure|Minitest::Test/ }.freeze
Instance Method Summary collapse
- #analyze ⇒ Object
-
#initialize(source_path, overrides = {}) ⇒ ProjectAnalyzer
constructor
A new instance of ProjectAnalyzer.
Constructor Details
#initialize(source_path, overrides = {}) ⇒ ProjectAnalyzer
Returns a new instance of ProjectAnalyzer.
51 52 53 54 |
# File 'lib/adopter/project_analyzer.rb', line 51 def initialize(source_path, overrides = {}) @source_path = source_path @overrides = overrides end |
Instance Method Details
#analyze ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/adopter/project_analyzer.rb', line 56 def analyze detection = ProjectDetector.detect(@source_path) validate_web_only!(detection) { **detection, **@overrides.compact, pages: discover_pages, tests: discover_tests, helpers: discover_helpers, features: discover_features, step_definitions: discover_step_definitions, custom_gems: discover_custom_gems, source_dsl: detect_page_dsl } end |