Merge pull request #905 from jonathandturner/add_to_insert

Rename add to insert
This commit is contained in:
Jonathan Turner 2019-11-02 15:07:41 +13:00 committed by GitHub
commit 2fe7d105b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 20 additions and 16 deletions

View File

@ -130,8 +130,8 @@ name = "nu_plugin_embed"
path = "src/plugins/embed.rs" path = "src/plugins/embed.rs"
[[bin]] [[bin]]
name = "nu_plugin_add" name = "nu_plugin_insert"
path = "src/plugins/add.rs" path = "src/plugins/insert.rs"
[[bin]] [[bin]]
name = "nu_plugin_edit" name = "nu_plugin_edit"

View File

@ -248,7 +248,6 @@ Nu adheres closely to a set of goals that make up its design philosophy. As feat
## Filters on tables (structured data) ## Filters on tables (structured data)
| command | description | | command | description |
| ------------- | ------------- | | ------------- | ------------- |
| add column-or-column-path value | Add a new column to the table |
| append row-data | Append a row to the end of the table | | append row-data | Append a row to the end of the table |
| count | Show the total number of rows | | count | Show the total number of rows |
| edit column-or-column-path value | Edit an existing column to have a new value | | edit column-or-column-path value | Edit an existing column to have a new value |
@ -257,6 +256,7 @@ Nu adheres closely to a set of goals that make up its design philosophy. As feat
| get column-or-column-path | Open column and get data from the corresponding cells | | get column-or-column-path | Open column and get data from the corresponding cells |
| group-by column | Creates a new table with the data from the table rows grouped by the column given | | group-by column | Creates a new table with the data from the table rows grouped by the column given |
| inc (column-or-column-path) | Increment a value or version. Optionally use the column of a table | | inc (column-or-column-path) | Increment a value or version. Optionally use the column of a table |
| insert column-or-column-path value | Insert a new column to the table |
| last amount | Show only the last number of rows | | last amount | Show only the last number of rows |
| nth row-number | Return only the selected row | | nth row-number | Return only the selected row |
| pick ...columns | Down-select table to only these columns | | pick ...columns | Down-select table to only these columns |

View File

@ -6,19 +6,19 @@ use nu::{
pub type ColumnPath = Vec<Tagged<String>>; pub type ColumnPath = Vec<Tagged<String>>;
struct Add { struct Insert {
field: Option<ColumnPath>, field: Option<ColumnPath>,
value: Option<Value>, value: Option<Value>,
} }
impl Add { impl Insert {
fn new() -> Add { fn new() -> Insert {
Add { Insert {
field: None, field: None,
value: None, value: None,
} }
} }
fn add(&self, value: Tagged<Value>) -> Result<Tagged<Value>, ShellError> { fn insert(&self, value: Tagged<Value>) -> Result<Tagged<Value>, ShellError> {
let value_tag = value.tag(); let value_tag = value.tag();
match (value.item, self.value.clone()) { match (value.item, self.value.clone()) {
(obj @ Value::Row(_), Some(v)) => match &self.field { (obj @ Value::Row(_), Some(v)) => match &self.field {
@ -50,11 +50,15 @@ impl Add {
} }
} }
impl Plugin for Add { impl Plugin for Insert {
fn config(&mut self) -> Result<Signature, ShellError> { fn config(&mut self) -> Result<Signature, ShellError> {
Ok(Signature::build("add") Ok(Signature::build("insert")
.desc("Add a new column to the table.") .desc("Insert a new column to the table.")
.required("column", SyntaxShape::ColumnPath, "the column name to add") .required(
"column",
SyntaxShape::ColumnPath,
"the column name to insert",
)
.required( .required(
"value", "value",
SyntaxShape::String, SyntaxShape::String,
@ -86,10 +90,10 @@ impl Plugin for Add {
} }
fn filter(&mut self, input: Tagged<Value>) -> Result<Vec<ReturnValue>, ShellError> { fn filter(&mut self, input: Tagged<Value>) -> Result<Vec<ReturnValue>, ShellError> {
Ok(vec![ReturnSuccess::value(self.add(input)?)]) Ok(vec![ReturnSuccess::value(self.insert(input)?)])
} }
} }
fn main() { fn main() {
serve_plugin(&mut Add::new()); serve_plugin(&mut Insert::new());
} }

View File

@ -42,12 +42,12 @@ fn external_has_correct_quotes() {
} }
#[test] #[test]
fn add_plugin() { fn insert_plugin() {
let actual = nu!( let actual = nu!(
cwd: "tests/fixtures/formats", h::pipeline( cwd: "tests/fixtures/formats", h::pipeline(
r#" r#"
open cargo_sample.toml open cargo_sample.toml
| add dev-dependencies.newdep "1" | insert dev-dependencies.newdep "1"
| get dev-dependencies.newdep | get dev-dependencies.newdep
| echo $it | echo $it
"# "#