NEWS.md
box_save()
, setting default environment for evaluating dots (#255)update with internal helper for Box ids. (#90)
update minimum version of rio package to reflect newer treatment of JSON files. (#261)
remove unused internal function, removing dependency on httpuv package. (#259)
update superseded function-calls from gargle, used in testing. (#251)
default branch switched from master
to main
. (#252)
refactor to use withr functions to handle temp files. (#183)
activate tests for box_save()
, box_load()
(#255)
update documentation to reflect updates to rio package. (#242, @chainsawriot)
update maintainer’s email address. (#248)
update to use inherits()
(vs. string-comparison) to determine class-membership. (#246)
harmonizes the default location for tokens. Now, ~
resolves to the home directory for all platforms. A patch is applied offering to move tokens from “old” locations. (#219 w/@danielruss)
adds and updates GitHub Actions for testing and coverage. (#206, #247, #256)
adds vignette("design")
to sketch out the different design philosohies that appear in boxr functions. (#170)
deprecates the x
argument to box_write()
in favor of object
. (#187)
some return objects can be printed as tibble (vs. data-frame). To enable this behavior, set options(boxr.print_tibble = TRUE)
(perhaps in your .Rprofile
).
new tools to manage collaborations:
box_dir_invite()
is deprecated in favor of box_collab_create()
.box_collab_create()
, which supports file and group based collaborations.box_collab_get()
to check existing collaborations, and box_collab_delete()
to delete.box_collab_create()
and box_collab_get()
each return the (list-based) response from the Box API. If you prefer to work with data frames, these return-objects each have as.data.frame()
and as_tibble()
methods.box_previous_versions()
is superseded in favor of box_version_history()
:
version_no
(numeric) and version_id
, rather than version
(character) and file_version_id
.box_version_api()
, if you are interested in the unparsed content of the response from the API.new function box_version_number()
returns the current version of a file; this number is consistent with the version_no
argument used by functions such as box_dl()
.
new functions box_read_rds()
and box_save_rds()
to work with RDS
files directly on Box.
new function box_browse()
to open a browser window directly to a given folder or file on Box’s web app.
new functions box_comment_create()
and box_comment_get()
to create or get comments on Box files. These functions return specially classed lists
of the API response, on which you can use as.data.frame()
or as_tibble()
.
uses httr::RETRY()
for API requests to handle momentary issues with network connectivity. Thanks @jameslamb and @chircollab!
box_ls()
provides the current version_id
by default. (#185, @alexbrodersen)
box_file_delete()
and box_folder_delete()
each now return invisible(NULL)
. (#197)
box_auth_service()
more resilient to bad-request failures. (#166)
box_auth()
longer throws error if {usethis} not installed. (#168, @malcombarret)
...
is now passed to write_fun
in box_write()
. (#144)
box_ls()
is more robust for remote folders that contain links. (#140)
box_previous_versions()
fixed for “no-previous-versions” case. (#139)
adds automatic-retry to authentication functions, box_auth()
and box_auth_service()
. (#131)
adds box_auth_service()
to support OAuth2.0 using JWT, also adds box_dir_invite()
to invite a collaboration on a Box folder. This makes it easier to authenticate to box.com from remote computers (e.g. RStudio Cloud, RStudio Server) (#23)
modifies box_source()
: adds ...
argument to pass other arguments to source()
.
modifies box_write()
, box_dl()
:
filename
argument in favor of file_name
.modifies box_auth()
(#96):
write.Renv
argument.Renviron
fileinvisible(NULL)
upon successdeprecates box_auth_on_attach()
(#96)
adds a logo (#92, @nathancday)
converts pagination method from offset to marker-based paging (#79, @awong234)
adds option to return specified fields
in box_ls()
(#72, @awong234)
adds updated screen shots (pngs in images/
) and description for creating a Box App with the new Box Developer Console UI. Also added reference for box_auth_on_attach
in step 4 ‘And you’re done’. (#57, @nathancday)
box_pagination()
refactored to employ marker-based paging instead of offset-based paging, avoiding a hard limit of 300,000 offset (#74, @awong234)
fixes bug in Deprecated, pagination now uses marker-based paging.box_pagination()
to enforce integer for offset (#71, @awong234)
fixes bug in box_search_files()
(#61, @j450h1)
box_ls()
now has an upper limit of 1,000, as opposed to 100box_search
(and convenience functions box_search_files
, box_search_folders
, box_search_trash
) allow use of box.com’s superb searching facilities to find files and folders. Various parameters can be set to search filenames, file contents, and to limit searches to certain file types. Results are summarised by default, can be coerced via as.data.frame
. They can also be passed in place of a file_id to other boxr functions (e.g. box_dl
) to perform an operation on the first result.
box_read_excel
Finally support for everyone else’s favorite way to store data!
box_write
A convenience function to convert R objects to common file types (e.g. .json, .csv, .tsv, .xlsx, etc.), and upload to box. Using the default write function (rio::export), the file type can be determined automatically from the filename provided.
box_add_description
A simple way to add a description to a file on box.com. These are a useful way to describe the contents of a file, and can also be used like commit messages on GitHub, to describe recent changes made.
box_fresh_auth
A convenience function for users having trouble authenticating – it will delete existing tokens (which are by default hidden files) for a fresh authentication process
S3 classes for files, folders, and object lists
Objects of class boxr_object_list
can be passed directly to functions in place of a file_id string
Objects of class boxr_object_list
now have an as.data.frame
method
Example of usage with magrittr
pipes is added to the README.
box file/folder id’s are now validated locally before requests are sent
Filenames are now validated locally, with helpful/informative error messages
box_read
now accepts a user specified read function, which is now by default rio::import
box_read
will now try and do the right thing for files without an extension by considering the MIME type of the API response
S3 classes and methods have been consolidated into three basic types, and functions now use them in a consistent manner. Now documented for those interested (?boxr_S3_classes
)
Print methods: Prettier and more informative
box_getwd
no longer logs an uninformative message
Documentation / collaboration improvements (improved function documentation, variable naming conventions (R/README.md
), and a code of conduct)
Improved tests
This release contains small changes to help new users get started (especially those who don’t get to see the GitHub README).
The package vignette (vignette("boxr")
) is now more oriented towards getting new users up and running (fc931cd), providing much of the same information as at ?box_auth
, but with screenshots and friendlier formatting
Upon loading boxr, users are now provided with the GitHub issues URL for bug reports. If it looks like the user hasn’t used boxr before (!file.exists("~/.boxr_oauth")
), the code to generate the Getting Started vignette is presented (e18864d)
R help ‘homepage’: ?boxr
now takes the user to a summary of the package, which links back to the Getting Started vignette (#31)
Continuous integration now covers Windows via appveyor (08925e5), and for useRs coming from GitHub, there’s a few more visual aids in the README to help them evaluate/grok the package (1c574c2, 593101d, 670487b)
json is now parsed consistently by box_read()
and box_read_json()
box_getwd()
and box_setwd()
now write to the correct options vars (e.g., work properly again) (#27)