Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ S3method(format,pillar_rif_title)
S3method(format,pillar_rif_type)
S3method(format,pillar_shaft)
S3method(format,pillar_shaft_decimal)
S3method(format,pillar_shaft_posixt)
S3method(format,pillar_shaft_simple)
S3method(format,pillar_squeezed_colonnade)
S3method(format,pillar_tbl_format_setup)
Expand Down
25 changes: 23 additions & 2 deletions R/shaft-.R
Original file line number Diff line number Diff line change
Expand Up @@ -276,19 +276,40 @@ pillar_shaft.POSIXt <- function(x, ...) {

date <- format(x, format = "%Y-%m-%d")
time <- format(x, format = "%H:%M:%OS")
time_short <- format(x, format = "%H:%M")
time_styled <- paste0(" ", style_subtle(time))
time_short_styled <- paste0(" ", style_subtle(time_short))

# R < 4.3 don't support is.finite() for POSIXlt
time_styled <- paste0(" ", style_subtle(time))
if (inherits(x, "POSIXct")) {
time_styled[!is.finite(x)] <- ""
time_short_styled[!is.finite(x)] <- ""
}

datetime <- paste0(date, time_styled)
datetime_short <- paste0(date, time_short_styled)
datetime[is.na(x)] <- NA
datetime_short[is.na(x)] <- NA

new_pillar_shaft_simple(datetime, width = width, align = "left")
new_pillar_shaft(
list(datetime = datetime, datetime_min = datetime_short),
#align = "left",
width = get_max_extent(datetime_short),
min_width = get_max_extent(datetime),
class = "pillar_shaft_posixt"
)
}

#' @export
format.pillar_shaft_posixt <- function(x, width, ...) {
if (get_max_extent(x$datetime_min) <= width) {
ornament <- x$datetime_min
} else {
ornament <- x$datetime
}

new_ornament(ornament, align = "left")
}

#' @export
#' @rdname pillar_shaft
Expand Down
105 changes: 50 additions & 55 deletions tests/testthat/_snaps/ctl_colonnade.md
Original file line number Diff line number Diff line change
Expand Up @@ -210,16 +210,11 @@
ctl_colonnade(df_all, width = 300)
Output
$body
a b c d e f g h
<dbl> <int> <lgl> <chr> <fct> <date> <dttm> <list>
1 1 1 TRUE a a 2015-12-10 2015-12-09 10:51:35 <int [1]>
2 2.5 2 FALSE b b 2015-12-11 2015-12-09 10:51:36 <int [1]>
3 NA NA NA <NA> <NA> NA NA <int [1]>
i
<list>
1 <list [2]>
2 <list [1]>
3 <list [1]>
a b c d e f g h i
<dbl> <int> <lgl> <chr> <fct> <date> <dttm> <list> <list>
1 1 1 TRUE a a 2015-12-10 2015-12-09 10:51 <int [1]> <list [2]>
2 2.5 2 FALSE b b 2015-12-11 2015-12-09 10:51 <int [1]> <list [1]>
3 NA NA NA <NA> <NA> NA NA <int [1]> <list [1]>

$extra_cols
list()
Expand All @@ -235,16 +230,16 @@
ctl_colonnade(df_all, width = 300)
Output
$body
a b c d e f g
<dbl> <int> <lgl> <chr> <fct> <date> <dttm>
1 1 1 TRUE a a 2015-12-10 2015-12-09 10:51:35
2 2.5 2 FALSE b b 2015-12-11 2015-12-09 10:51:36
3 NA NA NA <NA> <NA> NA NA
h i
<list> <list>
1 <int [1]> <list [2]>
2 <int [1]> <list [1]>
3 <int [1]> <list [1]>
a b c d e f g h
<dbl> <int> <lgl> <chr> <fct> <date> <dttm> <list>
1 1 1 TRUE a a 2015-12-10 2015-12-09 10:51 <int [1]>
2 2.5 2 FALSE b b 2015-12-11 2015-12-09 10:51 <int [1]>
3 NA NA NA <NA> <NA> NA NA <int [1]>
i
<list>
1 <list [2]>
2 <list [1]>
3 <list [1]>

$extra_cols
list()
Expand All @@ -260,16 +255,16 @@
ctl_colonnade(df_all, width = 300)
Output
$body
a b c d e f
<dbl> <int> <lgl> <chr> <fct> <date>
1 1 1 TRUE a a 2015-12-10
2 2.5 2 FALSE b b 2015-12-11
3 NA NA NA <NA> <NA> NA
g h i
<dttm> <list> <list>
1 2015-12-09 10:51:35 <int [1]> <list [2]>
2 2015-12-09 10:51:36 <int [1]> <list [1]>
3 NA <int [1]> <list [1]>
a b c d e f g
<dbl> <int> <lgl> <chr> <fct> <date> <dttm>
1 1 1 TRUE a a 2015-12-10 2015-12-09 10:51
2 2.5 2 FALSE b b 2015-12-11 2015-12-09 10:51
3 NA NA NA <NA> <NA> NA NA
h i
<list> <list>
1 <int [1]> <list [2]>
2 <int [1]> <list [1]>
3 <int [1]> <list [1]>

$extra_cols
list()
Expand All @@ -290,11 +285,11 @@
1 1 1 TRUE a a 2015-12-10
2 2.5 2 FALSE b b 2015-12-11
3 NA NA NA <NA> <NA> NA
g h i
<dttm> <list> <list>
1 2015-12-09 10:51:35 <int [1]> <list [2]>
2 2015-12-09 10:51:36 <int [1]> <list [1]>
3 NA <int [1]> <list [1]>
g h i
<dttm> <list> <list>
1 2015-12-09 10:51 <int [1]> <list [2]>
2 2015-12-09 10:51 <int [1]> <list [1]>
3 NA <int [1]> <list [1]>

$extra_cols
list()
Expand All @@ -315,16 +310,16 @@
1 1 1 TRUE a a
2 2.5 2 FALSE b b
3 NA NA NA <NA> <NA>
f g
<date> <dttm>
1 2015-12-10 2015-12-09 10:51:35
2 2015-12-11 2015-12-09 10:51:36
3 NA NA
h i
<list> <list>
1 <int [1]> <list [2]>
2 <int [1]> <list [1]>
3 <int [1]> <list [1]>
f g h
<date> <dttm> <list>
1 2015-12-10 2015-12-09 10:51 <int [1]>
2 2015-12-11 2015-12-09 10:51 <int [1]>
3 NA NA <int [1]>
i
<list>
1 <list [2]>
2 <list [1]>
3 <list [1]>

$extra_cols
list()
Expand All @@ -350,16 +345,16 @@
1 a 2015-12-10
2 b 2015-12-11
3 <NA> NA
g
<dttm>
1 2015-12-09 10:51:35
2 2015-12-09 10:51:36
3 NA
h i
<list> <list>
1 <int [1]> <list [2]>
2 <int [1]> <list [1]>
3 <int [1]> <list [1]>
g h
<dttm> <list>
1 2015-12-09 10:51 <int [1]>
2 2015-12-09 10:51 <int [1]>
3 NA <int [1]>
i
<list>
1 <list [2]>
2 <list [1]>
3 <list [1]>

$extra_cols
list()
Expand Down
18 changes: 9 additions & 9 deletions tests/testthat/_snaps/format_time.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,26 @@
pillar(add_special(as.POSIXct("2017-07-28 18:04:35 +0200")))
Output
<pillar>
<dttm>
2017-07-28 18:04:35
NA
<dttm>
2017-07-28 18:04
NA
Code
pillar(add_special(as.POSIXlt("2017-07-28 18:04:35 +0200")))
Output
<pillar>
<dttm>
2017-07-28 18:04:35
NA
<dttm>
2017-07-28 18:04
NA

---

Code
pillar(add_special(as.POSIXlt("2017-07-28 18:04:35 +0200")))
Output
<pillar>
<dttm>
2017-07-28 18:04:35.0000
NA
<dttm>
2017-07-28 18:04
NA

---

Expand Down
43 changes: 19 additions & 24 deletions tests/testthat/_snaps/tbl-format-body.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,37 +14,32 @@
tbl_format_body(tbl_format_setup(df_all, width = 300))
Output
<tbl_format_body(setup)>
a b c d e f g h
<dbl> <int> <lgl> <chr> <fct> <date> <dttm> <list>
1 1 1 TRUE a a 2015-12-10 2015-12-09 10:51:35 <int [1]>
2 2.5 2 FALSE b b 2015-12-11 2015-12-09 10:51:36 <int [1]>
3 NA NA NA <NA> <NA> NA NA <int [1]>
i
<list>
1 <list [2]>
2 <list [1]>
3 <list [1]>
a b c d e f g h i
<dbl> <int> <lgl> <chr> <fct> <date> <dttm> <list> <list>
1 1 1 TRUE a a 2015-12-10 2015-12-09 10:51 <int [1]> <list [2]>
2 2.5 2 FALSE b b 2015-12-11 2015-12-09 10:51 <int [1]> <list [1]>
3 NA NA NA <NA> <NA> NA NA <int [1]> <list [1]>
Code
# POSIXct and POSIXlt
df <- new_tbl(list(x = as.POSIXct("2016-01-01 12:34:56 GMT") + 1:12))
df$y <- as.POSIXlt(df$x)
tbl_format_body(tbl_format_setup(df, width = 60L))
Output
<tbl_format_body(setup)>
x y
<dttm> <dttm>
1 2016-01-01 12:34:57 2016-01-01 12:34:57
2 2016-01-01 12:34:58 2016-01-01 12:34:58
3 2016-01-01 12:34:59 2016-01-01 12:34:59
4 2016-01-01 12:35:00 2016-01-01 12:35:00
5 2016-01-01 12:35:01 2016-01-01 12:35:01
6 2016-01-01 12:35:02 2016-01-01 12:35:02
7 2016-01-01 12:35:03 2016-01-01 12:35:03
8 2016-01-01 12:35:04 2016-01-01 12:35:04
9 2016-01-01 12:35:05 2016-01-01 12:35:05
10 2016-01-01 12:35:06 2016-01-01 12:35:06
11 2016-01-01 12:35:07 2016-01-01 12:35:07
12 2016-01-01 12:35:08 2016-01-01 12:35:08
x y
<dttm> <dttm>
1 2016-01-01 12:34 2016-01-01 12:34
2 2016-01-01 12:34 2016-01-01 12:34
3 2016-01-01 12:34 2016-01-01 12:34
4 2016-01-01 12:35 2016-01-01 12:35
5 2016-01-01 12:35 2016-01-01 12:35
6 2016-01-01 12:35 2016-01-01 12:35
7 2016-01-01 12:35 2016-01-01 12:35
8 2016-01-01 12:35 2016-01-01 12:35
9 2016-01-01 12:35 2016-01-01 12:35
10 2016-01-01 12:35 2016-01-01 12:35
11 2016-01-01 12:35 2016-01-01 12:35
12 2016-01-01 12:35 2016-01-01 12:35
Code
# Colonnade
ctl_colonnade(list(a = 1:3), has_row_id = FALSE)
Expand Down
Loading