Class: RubynCode::Skills::GemfileParser
- Inherits:
-
Object
- Object
- RubynCode::Skills::GemfileParser
- Defined in:
- lib/rubyn_code/skills/gemfile_parser.rb
Overview
Parses Gemfiles to extract gem names for skill pack matching. Handles standard gem declarations and grouped gems.
Recognized patterns:
gem 'stripe'
gem 'stripe', '~> 8.0'
gem 'pundit', require: false
gem 'sidekiq', '>= 6.0', group: :workers
Does NOT match comments or source declarations.
Constant Summary collapse
- GEM_PATTERN =
/ ^\s*gem\s+ ['"]([^'"]+)['"] /x
Class Method Summary collapse
-
.gems(content) ⇒ Array<String>
Extract unique gem names from Gemfile content.
Instance Method Summary collapse
- #gems ⇒ Object
-
#initialize(content) ⇒ GemfileParser
constructor
A new instance of GemfileParser.
Constructor Details
#initialize(content) ⇒ GemfileParser
Returns a new instance of GemfileParser.
29 30 31 |
# File 'lib/rubyn_code/skills/gemfile_parser.rb', line 29 def initialize(content) @content = content end |
Class Method Details
.gems(content) ⇒ Array<String>
Extract unique gem names from Gemfile content.
25 26 27 |
# File 'lib/rubyn_code/skills/gemfile_parser.rb', line 25 def self.gems(content) new(content).gems end |
Instance Method Details
#gems ⇒ Object
33 34 35 36 37 |
# File 'lib/rubyn_code/skills/gemfile_parser.rb', line 33 def gems return [] if @content.to_s.strip.empty? @content.scan(GEM_PATTERN).flatten.map { |m| m.strip.downcase }.uniq end |