Skip to content

Commit

Permalink
Remove pub visibility from Config::translations hash (getzola#796)
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
zdenek-crha authored and Keats committed Sep 4, 2019
1 parent 9db9fc8 commit 096fefe
Showing 1 changed file with 4 additions and 10 deletions.
14 changes: 4 additions & 10 deletions components/config/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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();
Expand Down

0 comments on commit 096fefe

Please sign in to comment.