Browse Source

Remove pub visibility from Config::translations hash (#796)

The access to translations is not straightforward and requires checks if
language and key exists. It is better to forbit direct access to
attribute and provide method - `get_translation()` - that will handle
all details of key translations.

Remove unit tests that use direct access and test only public method.
index-subcmd
Zdenek Crha Vincent Prouillet 4 years ago
parent
commit
096fefe7ed
1 changed files with 4 additions and 10 deletions
  1. +4
    -10
      components/config/src/config.rs

+ 4
- 10
components/config/src/config.rs View File

@@ -110,7 +110,10 @@ pub struct Config {
///
/// The `String` key of `HashMap` is a language name, the value should be toml crate `Table`
/// with String key representing term and value another `String` representing its translation.
pub translations: HashMap<String, TranslateTerm>,
///
/// The attribute is intentionally not public, use `get_translation()` method for translating
/// key into different language.
translations: HashMap<String, TranslateTerm>,

/// Whether to highlight all code blocks found in markdown files. Defaults to false
pub highlight_code: bool,
@@ -478,15 +481,6 @@ title = "Un titre"
title = "A title"
"#;

#[test]
fn can_use_language_configuration() {
let config = Config::parse(CONFIG_TRANSLATION);
assert!(config.is_ok());
let translations = config.unwrap().translations;
assert_eq!(translations["fr"]["title"].as_str(), "Un titre");
assert_eq!(translations["en"]["title"].as_str(), "A title");
}

#[test]
fn can_use_present_translation() {
let config = Config::parse(CONFIG_TRANSLATION).unwrap();


Loading…
Cancel
Save