Class: JekyllImgFlow::BuildTimeProcessor
- Inherits:
-
Object
- Object
- JekyllImgFlow::BuildTimeProcessor
- Defined in:
- lib/jekyll-imgflow/build_time_processor.rb
Overview
BuildTimeProcessor - processes images during Jekyll build Generates default image versions for all originals
Instance Method Summary collapse
-
#initialize(site) ⇒ BuildTimeProcessor
constructor
A new instance of BuildTimeProcessor.
-
#process_changed_images ⇒ Object
Process all changed images in originals folder.
Constructor Details
#initialize(site) ⇒ BuildTimeProcessor
Returns a new instance of BuildTimeProcessor.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/jekyll-imgflow/build_time_processor.rb', line 7 def initialize(site) @site = site @config = Config.new(site) @manifest = ManifestManager.new(site) @path_resolver = PathResolver.new(@config) @registry = ProviderRegistry.new(@config) # Initialize operation processor with current provider provider = @registry.current_provider @operation_processor = OperationProcessor.new(provider, @path_resolver, @manifest, @config) if provider # Initialize batch manager @batch_manager = BatchManager.new(@operation_processor) # Store all components in site for sharing with ImgFlow tag @filename_generator = JekyllImgFlow::FilenameGenerator.new @site.imgflow_components = { config: @config, manifest: @manifest, path_resolver: @path_resolver, filename_generator: @filename_generator, registry: @registry, provider: provider, operation_processor: @operation_processor, stats: @operation_processor&.stats, preset_manager: JekyllImgFlow::PresetManager.new(@site, @config) } end |
Instance Method Details
#process_changed_images ⇒ Object
Process all changed images in originals folder
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/jekyll-imgflow/build_time_processor.rb', line 38 def process_changed_images return { completed: 0, failed: 0 } unless @operation_processor Jekyll.logger.info "🔄 BuildTimeProcessor: Processing changed images" # Get all original images original_paths = find_original_images Jekyll.logger.info "📸 Found #{original_paths.length} original images" # Clean up manifest entries for deleted originals prepare_manifest(original_paths) # Build tasks for each original image queue_default_tasks(original_paths) # Process all queued tasks results = @batch_manager.process_all register_skipped_tasks(@batch_manager.completed) # Persist newly processed defaults; unchanged builds keep page-usage resets in memory # until post_write saves the final stable manifest. @manifest.save unless results[:completed].zero? && results[:failed].zero? Jekyll.logger.info "✅ BuildTimeProcessor complete: #{results[:completed]} completed, #{results[:failed]} failed" results end |