Class: JekyllImgFlow::PresetManager
- Inherits:
-
Object
- Object
- JekyllImgFlow::PresetManager
- Defined in:
- lib/jekyll-imgflow/preset_manager.rb
Overview
PresetManager - translates YAML presets to tags:value format Handles tag overrides (user tags override preset tags) Passes combined markup to Parser for uniform validation flow
Instance Method Summary collapse
-
#available_presets ⇒ Array<String>
Get all available preset names.
-
#build_markup_from_preset(preset_name, user_options = {}) ⇒ String
Build markup from preset (tags:value format).
-
#get_preset(name) ⇒ Hash?
Get a preset by name.
-
#initialize(site, config) ⇒ PresetManager
constructor
A new instance of PresetManager.
-
#load_presets ⇒ Object
Load presets from _data/imgflow/presets/.
-
#preset_exists?(name) ⇒ Boolean
Check if a preset exists.
Constructor Details
#initialize(site, config) ⇒ PresetManager
Returns a new instance of PresetManager.
10 11 12 13 14 |
# File 'lib/jekyll-imgflow/preset_manager.rb', line 10 def initialize(site, config) @site = site @config = config @presets = load_presets end |
Instance Method Details
#available_presets ⇒ Array<String>
Get all available preset names
53 54 55 |
# File 'lib/jekyll-imgflow/preset_manager.rb', line 53 def available_presets @presets.keys end |
#build_markup_from_preset(preset_name, user_options = {}) ⇒ String
Build markup from preset (tags:value format)
61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/jekyll-imgflow/preset_manager.rb', line 61 def build_markup_from_preset(preset_name, = {}) preset = get_preset(preset_name) return "" unless preset # Convert YAML operations to tags:value format = (preset) # Merge with user options (user options override preset) = (, ) # Convert to markup string () end |
#get_preset(name) ⇒ Hash?
Get a preset by name
40 41 42 |
# File 'lib/jekyll-imgflow/preset_manager.rb', line 40 def get_preset(name) @presets[name.to_s] end |
#load_presets ⇒ Object
Load presets from _data/imgflow/presets/
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/jekyll-imgflow/preset_manager.rb', line 17 def load_presets presets = {} presets_dir = File.join(@site.source, "_data", "imgflow", "presets") return presets unless Dir.exist?(presets_dir) Dir.glob(File.join(presets_dir, "*.yml")).each do |preset_file| preset_name = File.basename(preset_file, ".yml") begin preset_data = YAML.safe_load_file(preset_file) presets[preset_name] = preset_data rescue Psych::SyntaxError => e Jekyll.logger.warn "ImgFlow: Invalid YAML in preset file #{preset_file}: #{e.}" # Skip invalid preset files end end presets end |
#preset_exists?(name) ⇒ Boolean
Check if a preset exists
47 48 49 |
# File 'lib/jekyll-imgflow/preset_manager.rb', line 47 def preset_exists?(name) @presets.key?(name.to_s) end |