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) # Initialize batch manager @batch_manager = BatchManager.new(@operation_processor) # Store all components in site for sharing with ImgFlow tag return if @site.imgflow_components 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 } 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 65 66 67 68 69 70 71 72 73 |
# File 'lib/jekyll-imgflow/build_time_processor.rb', line 38 def process_changed_images 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" # Build tasks for each original image original_paths.each do |path| original_name = File.basename(path) # Check if needs processing (file changed or provider changed) if needs_processing?(path) Jekyll.logger.info "🔧 Queuing default versions for: #{original_name}" # Build default tasks tasks = BatchManager.build_default_tasks(original_name, path, @config, @site) @batch_manager.add_tasks(tasks) else Jekyll.logger.debug "⏭️ Skipping #{original_name} - already up-to-date" end end # Process all queued tasks results = @batch_manager.process_all # Register completed tasks in manifest register_completed_tasks(@batch_manager.completed) # Save manifest so it's available when ImgflowTag runs @manifest.save Jekyll.logger.info "✅ BuildTimeProcessor complete: #{results[:completed]} completed, #{results[:failed]} failed" results end |