🦺 Modifica tipos para atributos HTML a minúsculas
This commit is contained in:
parent
8b06b1752a
commit
97581659bf
3 changed files with 10 additions and 7 deletions
|
@ -25,6 +25,7 @@ pub enum ClassesOp {
|
||||||
///
|
///
|
||||||
/// - El [orden de las clases no es relevante](https://stackoverflow.com/a/1321712) en CSS.
|
/// - El [orden de las clases no es relevante](https://stackoverflow.com/a/1321712) en CSS.
|
||||||
/// - No se permiten clases duplicadas.
|
/// - No se permiten clases duplicadas.
|
||||||
|
/// - Las clases se convierten a minúsculas.
|
||||||
/// - Las clases vacías se ignoran.
|
/// - Las clases vacías se ignoran.
|
||||||
///
|
///
|
||||||
/// # Ejemplo
|
/// # Ejemplo
|
||||||
|
@ -32,8 +33,8 @@ pub enum ClassesOp {
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use pagetop::prelude::*;
|
/// use pagetop::prelude::*;
|
||||||
///
|
///
|
||||||
/// let classes = OptionClasses::new("btn btn-primary")
|
/// let classes = OptionClasses::new("Btn btn-primary")
|
||||||
/// .with_value(ClassesOp::Add, "active")
|
/// .with_value(ClassesOp::Add, "Active")
|
||||||
/// .with_value(ClassesOp::Remove, "btn-primary");
|
/// .with_value(ClassesOp::Remove, "btn-primary");
|
||||||
///
|
///
|
||||||
/// assert_eq!(classes.get(), Some(String::from("btn active")));
|
/// assert_eq!(classes.get(), Some(String::from("btn active")));
|
||||||
|
@ -51,7 +52,7 @@ impl OptionClasses {
|
||||||
|
|
||||||
#[builder_fn]
|
#[builder_fn]
|
||||||
pub fn with_value(mut self, op: ClassesOp, classes: impl AsRef<str>) -> Self {
|
pub fn with_value(mut self, op: ClassesOp, classes: impl AsRef<str>) -> Self {
|
||||||
let classes: &str = classes.as_ref();
|
let classes = classes.as_ref().to_ascii_lowercase();
|
||||||
let classes: Vec<&str> = classes.split_ascii_whitespace().collect();
|
let classes: Vec<&str> = classes.split_ascii_whitespace().collect();
|
||||||
|
|
||||||
if classes.is_empty() {
|
if classes.is_empty() {
|
||||||
|
|
|
@ -7,6 +7,7 @@ use crate::{builder_fn, AutoDefault};
|
||||||
/// # Normalización
|
/// # Normalización
|
||||||
///
|
///
|
||||||
/// - Se eliminan los espacios al principio y al final.
|
/// - Se eliminan los espacios al principio y al final.
|
||||||
|
/// - Se convierte a minúsculas.
|
||||||
/// - Se sustituyen los espacios intermedios por guiones bajos (`_`).
|
/// - Se sustituyen los espacios intermedios por guiones bajos (`_`).
|
||||||
/// - Si el resultado es una cadena vacía, se guarda `None`.
|
/// - Si el resultado es una cadena vacía, se guarda `None`.
|
||||||
///
|
///
|
||||||
|
@ -15,7 +16,7 @@ use crate::{builder_fn, AutoDefault};
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use pagetop::prelude::*;
|
/// use pagetop::prelude::*;
|
||||||
///
|
///
|
||||||
/// let id = OptionId::new("main section");
|
/// let id = OptionId::new(" main Section ");
|
||||||
/// assert_eq!(id.get(), Some(String::from("main_section")));
|
/// assert_eq!(id.get(), Some(String::from("main_section")));
|
||||||
///
|
///
|
||||||
/// let empty = OptionId::default();
|
/// let empty = OptionId::default();
|
||||||
|
@ -39,7 +40,7 @@ impl OptionId {
|
||||||
/// El valor se normaliza automáticamente.
|
/// El valor se normaliza automáticamente.
|
||||||
#[builder_fn]
|
#[builder_fn]
|
||||||
pub fn with_value(mut self, value: impl AsRef<str>) -> Self {
|
pub fn with_value(mut self, value: impl AsRef<str>) -> Self {
|
||||||
let value = value.as_ref().trim().replace(' ', "_");
|
let value = value.as_ref().trim().to_ascii_lowercase().replace(' ', "_");
|
||||||
self.0 = (!value.is_empty()).then_some(value);
|
self.0 = (!value.is_empty()).then_some(value);
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ use crate::{builder_fn, AutoDefault};
|
||||||
/// # Normalización
|
/// # Normalización
|
||||||
///
|
///
|
||||||
/// - Se eliminan los espacios al principio y al final.
|
/// - Se eliminan los espacios al principio y al final.
|
||||||
|
/// - Se convierte a minúsculas.
|
||||||
/// - Se sustituyen los espacios intermedios por guiones bajos (`_`).
|
/// - Se sustituyen los espacios intermedios por guiones bajos (`_`).
|
||||||
/// - Si el resultado es una cadena vacía, se guarda `None`.
|
/// - Si el resultado es una cadena vacía, se guarda `None`.
|
||||||
///
|
///
|
||||||
|
@ -15,7 +16,7 @@ use crate::{builder_fn, AutoDefault};
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use pagetop::prelude::*;
|
/// use pagetop::prelude::*;
|
||||||
///
|
///
|
||||||
/// let name = OptionName::new(" display name ");
|
/// let name = OptionName::new(" DISplay name ");
|
||||||
/// assert_eq!(name.get(), Some(String::from("display_name")));
|
/// assert_eq!(name.get(), Some(String::from("display_name")));
|
||||||
///
|
///
|
||||||
/// let empty = OptionName::default();
|
/// let empty = OptionName::default();
|
||||||
|
@ -39,7 +40,7 @@ impl OptionName {
|
||||||
/// El valor se normaliza automáticamente.
|
/// El valor se normaliza automáticamente.
|
||||||
#[builder_fn]
|
#[builder_fn]
|
||||||
pub fn with_value(mut self, value: impl AsRef<str>) -> Self {
|
pub fn with_value(mut self, value: impl AsRef<str>) -> Self {
|
||||||
let value = value.as_ref().trim().replace(' ', "_");
|
let value = value.as_ref().trim().to_ascii_lowercase().replace(' ', "_");
|
||||||
self.0 = (!value.is_empty()).then_some(value);
|
self.0 = (!value.is_empty()).then_some(value);
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue