Class: JekyllImgFlow::PictureTagPresetMigrator
- Inherits:
-
Object
- Object
- JekyllImgFlow::PictureTagPresetMigrator
- Defined in:
- lib/jekyll-imgflow/picture_tag_preset_migrator.rb
Overview
Migrates Jekyll Picture Tag presets to ImgFlow YAML preset format
Constant Summary collapse
- PICTURE_TAG_CONFIG =
"_data/picture.yml"- IMGFLOW_PRESETS_DIR =
"_data/imgflow/presets"
Instance Method Summary collapse
-
#initialize(site_source) ⇒ PictureTagPresetMigrator
constructor
A new instance of PictureTagPresetMigrator.
-
#migrate_presets ⇒ Hash
Migrate all Picture Tag presets to ImgFlow format.
-
#preview_migration ⇒ Hash
Get migration summary without actually migrating.
Constructor Details
#initialize(site_source) ⇒ PictureTagPresetMigrator
Returns a new instance of PictureTagPresetMigrator.
12 13 14 15 16 |
# File 'lib/jekyll-imgflow/picture_tag_preset_migrator.rb', line 12 def initialize(site_source) @site_source = site_source @picture_config_path = File.join(site_source, PICTURE_TAG_CONFIG) @imgflow_presets_dir = File.join(site_source, IMGFLOW_PRESETS_DIR) end |
Instance Method Details
#migrate_presets ⇒ Hash
Migrate all Picture Tag presets to ImgFlow format
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/jekyll-imgflow/picture_tag_preset_migrator.rb', line 20 def migrate_presets results = { migrated: [], skipped: [], errors: [] } return results unless File.exist?(@picture_config_path) picture_config = load_picture_config return results unless picture_config["presets"] # Ensure ImgFlow presets directory exists FileUtils.mkdir_p(@imgflow_presets_dir) picture_config["presets"].each do |preset_name, preset_data| imgflow_preset = convert_preset_to_imgflow(preset_name, preset_data) if imgflow_preset save_imgflow_preset(preset_name, imgflow_preset) results[:migrated] << preset_name else results[:skipped] << { name: preset_name, reason: "No convertible operations" } end rescue StandardError => e results[:errors] << { name: preset_name, error: e. } end results end |
#preview_migration ⇒ Hash
Get migration summary without actually migrating
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/jekyll-imgflow/picture_tag_preset_migrator.rb', line 53 def preview_migration results = { found: [], convertible: [], non_convertible: [] } return results unless File.exist?(@picture_config_path) picture_config = load_picture_config return results unless picture_config["presets"] picture_config["presets"].each do |preset_name, preset_data| results[:found] << preset_name if convertible_operations?(preset_data) imgflow_preset = convert_preset_to_imgflow(preset_name, preset_data) results[:convertible] << { name: preset_name, preview: imgflow_preset } else results[:non_convertible] << { name: preset_name, reason: "No convertible operations" } end end results end |