diff --git a/src/meta_plugin/text.rs b/src/meta_plugin/text.rs index 3b8277b..047cb75 100644 --- a/src/meta_plugin/text.rs +++ b/src/meta_plugin/text.rs @@ -239,6 +239,7 @@ impl TextMetaPlugin { // Output line length statistics if tracked if self.track_line_lengths { if let Some(lengths) = &self.line_lengths { + log::debug!("TEXT: Line lengths: {:?} (count: {})", lengths, lengths.len()); if !lengths.is_empty() { // Calculate max, mean, median let max_len = lengths.iter().max().unwrap(); @@ -253,30 +254,63 @@ impl TextMetaPlugin { sorted_lengths[lengths.len() / 2] as f64 }; - // Add each statistic if its corresponding option is enabled - if let Some(meta_data) = crate::meta_plugin::process_metadata_outputs( - "text_line_max_len", - max_len.to_string(), - self.base.outputs() - ) { - metadata.push(meta_data); + log::debug!("TEXT: Line stats - max: {}, mean: {}, median: {}", max_len, mean_len, median_len); + + // Check if each statistic should be output based on options + // Default to true if option is not present + let output_max = self.base.options.get("text_line_max_len") + .and_then(|v| v.as_bool()) + .unwrap_or(true); + let output_mean = self.base.options.get("text_line_mean_len") + .and_then(|v| v.as_bool()) + .unwrap_or(true); + let output_median = self.base.options.get("text_line_median_len") + .and_then(|v| v.as_bool()) + .unwrap_or(true); + + log::debug!("TEXT: Output flags - max: {}, mean: {}, median: {}", output_max, output_mean, output_median); + + // Add each statistic if enabled + if output_max { + if let Some(meta_data) = crate::meta_plugin::process_metadata_outputs( + "text_line_max_len", + max_len.to_string(), + self.base.outputs() + ) { + log::debug!("TEXT: Adding max line length metadata: {:?}", meta_data); + metadata.push(meta_data); + } } - if let Some(meta_data) = crate::meta_plugin::process_metadata_outputs( - "text_line_mean_len", - mean_len.to_string(), - self.base.outputs() - ) { - metadata.push(meta_data); + + if output_mean { + if let Some(meta_data) = crate::meta_plugin::process_metadata_outputs( + "text_line_mean_len", + mean_len.to_string(), + self.base.outputs() + ) { + log::debug!("TEXT: Adding mean line length metadata: {:?}", meta_data); + metadata.push(meta_data); + } } - if let Some(meta_data) = crate::meta_plugin::process_metadata_outputs( - "text_line_median_len", - median_len.to_string(), - self.base.outputs() - ) { - metadata.push(meta_data); + + if output_median { + if let Some(meta_data) = crate::meta_plugin::process_metadata_outputs( + "text_line_median_len", + median_len.to_string(), + self.base.outputs() + ) { + log::debug!("TEXT: Adding median line length metadata: {:?}", meta_data); + metadata.push(meta_data); + } } + } else { + log::debug!("TEXT: No line lengths recorded"); } + } else { + log::debug!("TEXT: Line lengths tracking is None"); } + } else { + log::debug!("TEXT: Line lengths tracking is disabled"); } metadata