Class: Mnenv::Gemfile::Extractor

Inherits:
Object
  • Object
show all
Defined in:
lib/mnenv/gemfile/extractor.rb

Constant Summary collapse

ExtractionMode =
%i[incremental replace revamp].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(mode: :incremental, repository: nil, fetcher: nil, target_version: nil) ⇒ Extractor

Returns a new instance of Extractor.



17
18
19
20
21
22
# File 'lib/mnenv/gemfile/extractor.rb', line 17

def initialize(mode: :incremental, repository: nil, fetcher: nil, target_version: nil)
  @mode = mode || :incremental
  @repository = repository || GemfileRepository.new
  @fetcher = fetcher || Fetcher.new(repository: @repository)
  @target_version = target_version
end

Instance Attribute Details

#fetcherObject (readonly)

Returns the value of attribute fetcher.



15
16
17
# File 'lib/mnenv/gemfile/extractor.rb', line 15

def fetcher
  @fetcher
end

#modeObject (readonly)

Returns the value of attribute mode.



15
16
17
# File 'lib/mnenv/gemfile/extractor.rb', line 15

def mode
  @mode
end

#repositoryObject (readonly)

Returns the value of attribute repository.



15
16
17
# File 'lib/mnenv/gemfile/extractor.rb', line 15

def repository
  @repository
end

#target_versionObject (readonly)

Returns the value of attribute target_version.



15
16
17
# File 'lib/mnenv/gemfile/extractor.rb', line 15

def target_version
  @target_version
end

Instance Method Details

#runObject



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/mnenv/gemfile/extractor.rb', line 24

def run
  Logger.header "Starting Gemfile extraction (mode: #{mode})"

  case mode
  when :incremental then extract_incremental
  when :replace then extract_replace
  when :revamp then extract_revamp
  end

  Logger.success 'Extraction complete'
end