Class: FrontmatterParser
- Inherits:
-
Object
- Object
- FrontmatterParser
- Includes:
- EnumHelper
- Defined in:
- lib/frontmatter_parser.rb
Instance Attribute Summary collapse
-
#defaults ⇒ Object
readonly
Returns the value of attribute defaults.
-
#language_defaults ⇒ Object
readonly
Returns the value of attribute language_defaults.
Instance Method Summary collapse
- #get_default_value(option_name, language, fallback_default) ⇒ Object
-
#initialize(language_resolver = nil) ⇒ FrontmatterParser
constructor
A new instance of FrontmatterParser.
- #language_resolver ⇒ Object
- #parse_frontmatter(file_enum, output_lines) ⇒ Object
- #resolve_language(lang) ⇒ Object
Constructor Details
#initialize(language_resolver = nil) ⇒ FrontmatterParser
Returns a new instance of FrontmatterParser.
9 10 11 12 13 |
# File 'lib/frontmatter_parser.rb', line 9 def initialize(language_resolver = nil) @language_resolver = language_resolver || LanguageResolver.new @defaults = {} @language_defaults = {} end |
Instance Attribute Details
#defaults ⇒ Object (readonly)
Returns the value of attribute defaults.
15 16 17 |
# File 'lib/frontmatter_parser.rb', line 15 def defaults @defaults end |
#language_defaults ⇒ Object (readonly)
Returns the value of attribute language_defaults.
15 16 17 |
# File 'lib/frontmatter_parser.rb', line 15 def language_defaults @language_defaults end |
Instance Method Details
#get_default_value(option_name, language, fallback_default) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/frontmatter_parser.rb', line 33 def get_default_value(option_name, language, fallback_default) # Priority order: # 1. Language-specific defaults (e.g., psql: { explain: true }) # 2. Global defaults (e.g., defaults: { rerun: true }) # 3. Fallback default (hardcoded in the application) # Check language-specific defaults first if @language_defaults[language] && @language_defaults[language].key?(option_name) return @language_defaults[language][option_name] end # Check global defaults if @defaults.key?(option_name) return @defaults[option_name] end # Return fallback default fallback_default end |
#language_resolver ⇒ Object
17 18 19 |
# File 'lib/frontmatter_parser.rb', line 17 def language_resolver @language_resolver end |
#parse_frontmatter(file_enum, output_lines) ⇒ Object
21 22 23 24 25 26 27 |
# File 'lib/frontmatter_parser.rb', line 21 def parse_frontmatter(file_enum, output_lines) first_line = peek_next_line(file_enum) return unless first_line&.strip == "---" frontmatter_lines = collect_frontmatter_lines(file_enum, output_lines) process_frontmatter_content(frontmatter_lines) unless frontmatter_lines.empty? end |
#resolve_language(lang) ⇒ Object
29 30 31 |
# File 'lib/frontmatter_parser.rb', line 29 def resolve_language(lang) @language_resolver.resolve_language(lang) end |