mirror of
https://github.com/nushell/nushell.git
synced 2025-08-09 19:07:42 +02:00
Remove Span::unknown (#525)
This commit is contained in:
@ -52,7 +52,7 @@ impl Command for SubCommand {
|
||||
example: "date format '%Y-%m-%d'",
|
||||
result: Some(Value::String {
|
||||
val: Local::now().format("%Y-%m-%d").to_string(),
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
}),
|
||||
},
|
||||
Example {
|
||||
@ -60,7 +60,7 @@ impl Command for SubCommand {
|
||||
example: r#"date format "%Y-%m-%d %H:%M:%S""#,
|
||||
result: Some(Value::String {
|
||||
val: Local::now().format("%Y-%m-%d %H:%M:%S").to_string(),
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
}),
|
||||
},
|
||||
Example {
|
||||
@ -68,7 +68,7 @@ impl Command for SubCommand {
|
||||
example: r#""2021-10-22 20:00:12 +01:00" | date format "%Y-%m-%d""#,
|
||||
result: Some(Value::String {
|
||||
val: "2021-10-22".into(),
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
}),
|
||||
},
|
||||
]
|
||||
@ -81,8 +81,11 @@ fn format_helper(value: Value, formatter: &Spanned<String>, span: Span) -> Value
|
||||
val: val.format(formatter.item.as_str()).to_string(),
|
||||
span,
|
||||
},
|
||||
Value::String { val, span: _ } => {
|
||||
let dt = parse_date_from_string(val);
|
||||
Value::String {
|
||||
val,
|
||||
span: val_span,
|
||||
} => {
|
||||
let dt = parse_date_from_string(val, val_span);
|
||||
match dt {
|
||||
Ok(x) => Value::String {
|
||||
val: x.format(formatter.item.as_str()).to_string(),
|
||||
@ -101,7 +104,7 @@ fn format_helper(value: Value, formatter: &Spanned<String>, span: Span) -> Value
|
||||
span,
|
||||
}
|
||||
}
|
||||
_ => unsupported_input_error(),
|
||||
_ => unsupported_input_error(span),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -38,7 +38,7 @@ impl Command for SubCommand {
|
||||
example: "date humanize",
|
||||
result: Some(Value::String {
|
||||
val: "now".to_string(),
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
}),
|
||||
},
|
||||
Example {
|
||||
@ -59,8 +59,11 @@ fn helper(value: Value, head: Span) -> Value {
|
||||
span: head,
|
||||
}
|
||||
}
|
||||
Value::String { val, span: _ } => {
|
||||
let dt = parse_date_from_string(val);
|
||||
Value::String {
|
||||
val,
|
||||
span: val_span,
|
||||
} => {
|
||||
let dt = parse_date_from_string(val, val_span);
|
||||
match dt {
|
||||
Ok(x) => Value::String {
|
||||
val: humanize_date(x),
|
||||
@ -76,7 +79,7 @@ fn helper(value: Value, head: Span) -> Value {
|
||||
_ => Value::Error {
|
||||
error: ShellError::UnsupportedInput(
|
||||
String::from("Date cannot be parsed / date format is not supported"),
|
||||
Span::unknown(),
|
||||
head,
|
||||
),
|
||||
},
|
||||
}
|
||||
|
@ -47,7 +47,7 @@ impl Command for SubCommand {
|
||||
description: "Print the date in a structured table.",
|
||||
example: " '2020-04-12 22:10:57 +0200' | date to-table",
|
||||
result: {
|
||||
let span = Span::unknown();
|
||||
let span = Span::test_data();
|
||||
let cols = vec![
|
||||
"year".into(),
|
||||
"month".into(),
|
||||
@ -136,8 +136,11 @@ fn parse_date_into_table(date: Result<DateTime<FixedOffset>, Value>, head: Span)
|
||||
|
||||
fn helper(val: Value, head: Span) -> Value {
|
||||
match val {
|
||||
Value::String { val, span: _ } => {
|
||||
let date = parse_date_from_string(val);
|
||||
Value::String {
|
||||
val,
|
||||
span: val_span,
|
||||
} => {
|
||||
let date = parse_date_from_string(val, val_span);
|
||||
parse_date_into_table(date, head)
|
||||
}
|
||||
Value::Nothing { span: _ } => {
|
||||
@ -146,7 +149,7 @@ fn helper(val: Value, head: Span) -> Value {
|
||||
parse_date_into_table(Ok(n), head)
|
||||
}
|
||||
Value::Date { val, span: _ } => parse_date_into_table(Ok(val), head),
|
||||
_ => unsupported_input_error(),
|
||||
_ => unsupported_input_error(head),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -78,7 +78,7 @@ impl Command for SubCommand {
|
||||
|
||||
Some(Value::Date {
|
||||
val: dt,
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
})
|
||||
},
|
||||
},
|
||||
@ -89,8 +89,11 @@ impl Command for SubCommand {
|
||||
fn helper(value: Value, head: Span, timezone: &Spanned<String>) -> Value {
|
||||
match value {
|
||||
Value::Date { val, span: _ } => _to_timezone(val, timezone, head),
|
||||
Value::String { val, span: _ } => {
|
||||
let time = parse_date_from_string(val);
|
||||
Value::String {
|
||||
val,
|
||||
span: val_span,
|
||||
} => {
|
||||
let time = parse_date_from_string(val, val_span);
|
||||
match time {
|
||||
Ok(dt) => _to_timezone(dt, timezone, head),
|
||||
Err(e) => e,
|
||||
@ -101,7 +104,7 @@ fn helper(value: Value, head: Span, timezone: &Spanned<String>) -> Value {
|
||||
let dt = Local::now();
|
||||
_to_timezone(dt.with_timezone(dt.offset()), timezone, head)
|
||||
}
|
||||
_ => unsupported_input_error(),
|
||||
_ => unsupported_input_error(head),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
use chrono::{DateTime, FixedOffset};
|
||||
use nu_protocol::{ShellError, Span, Value};
|
||||
|
||||
pub fn unsupported_input_error() -> Value {
|
||||
pub fn unsupported_input_error(span: Span) -> Value {
|
||||
Value::Error {
|
||||
error: ShellError::UnsupportedInput(
|
||||
String::from(
|
||||
@ -11,12 +11,12 @@ pub fn unsupported_input_error() -> Value {
|
||||
* rfc3339 -- 2020-04-12T22:10:57+02:00 \n
|
||||
* rfc2822 -- Tue, 1 Jul 2003 10:52:37 +0200",
|
||||
),
|
||||
Span::unknown(),
|
||||
span,
|
||||
),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn parse_date_from_string(input: String) -> Result<DateTime<FixedOffset>, Value> {
|
||||
pub fn parse_date_from_string(input: String, span: Span) -> Result<DateTime<FixedOffset>, Value> {
|
||||
let datetime = DateTime::parse_from_str(&input, "%Y-%m-%d %H:%M:%S %z"); // "2020-04-12 22:10:57 +02:00";
|
||||
match datetime {
|
||||
Ok(x) => Ok(x),
|
||||
@ -32,7 +32,7 @@ pub fn parse_date_from_string(input: String) -> Result<DateTime<FixedOffset>, Va
|
||||
let datetime = DateTime::parse_from_rfc2822(&input); // "Tue, 1 Jul 2003 10:52:37 +0200";
|
||||
match datetime {
|
||||
Ok(x) => Ok(x),
|
||||
Err(_) => Err(unsupported_input_error()),
|
||||
Err(_) => Err(unsupported_input_error(span)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user