Skip to content

Commit 618fe1b

Browse files
committed
Migrate to GitQL SDK 25
1 parent 49b1bb5 commit 618fe1b

3 files changed

Lines changed: 19 additions & 62 deletions

File tree

Cargo.lock

Lines changed: 10 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ exclude = [".github/**", "docs/**", "media/**", "scripts/**"]
1414

1515
[dependencies]
1616
gitql-core = "0.2.0"
17-
gitql-std = "0.2.0"
18-
gitql-cli = "0.23.0"
19-
gitql-ast = "0.20.0"
20-
gitql-parser = "0.22.0"
21-
gitql-engine = "0.23.0"
17+
gitql-std = "0.3.0"
18+
gitql-cli = "0.25.0"
19+
gitql-ast = "0.22.0"
20+
gitql-parser = "0.24.0"
21+
gitql-engine = "0.25.0"
2222
atty = "0.2.14"

src/data_provider.rs

Lines changed: 4 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,8 @@
11
use std::path::Path;
22

3-
use gitql_ast::expression::Expression;
4-
use gitql_ast::expression::SymbolExpression;
5-
use gitql_core::environment::Environment;
6-
use gitql_core::object::GitQLObject;
7-
use gitql_core::object::Group;
83
use gitql_core::object::Row;
94
use gitql_core::value::Value;
10-
use gitql_engine::data_provider::select_values;
115
use gitql_engine::data_provider::DataProvider;
12-
use gitql_engine::engine_evaluator::evaluate_expression;
136

147
pub struct FileDataProvider {
158
pub paths: Vec<String>,
@@ -23,26 +16,7 @@ impl FileDataProvider {
2316
}
2417

2518
impl DataProvider for FileDataProvider {
26-
fn provide(
27-
&self,
28-
env: &mut Environment,
29-
table: &str,
30-
fields_names: &[String],
31-
titles: &[String],
32-
fields_values: &[Box<dyn Expression>],
33-
hidden_selection_count: i64,
34-
) -> Result<GitQLObject, String> {
35-
let mut groups: Vec<Group> = vec![];
36-
if table.is_empty() {
37-
let group = select_values(env, titles, fields_values)?;
38-
groups.push(group);
39-
40-
return Ok(GitQLObject {
41-
titles: titles.to_vec(),
42-
groups,
43-
});
44-
}
45-
19+
fn provide(&self, _table: &str, selected_columns: &[String]) -> Result<Vec<Row>, String> {
4620
let mut files: Vec<String> = vec![];
4721
for path in self.paths.iter() {
4822
let files_tree = traverse_file_tree(path, &self.excludes);
@@ -54,28 +28,15 @@ impl DataProvider for FileDataProvider {
5428
}
5529
}
5630

31+
let names_len = selected_columns.len() as i64;
5732
let mut rows: Vec<Row> = Vec::with_capacity(files.len());
5833

59-
let names_len = fields_names.len() as i64;
60-
let values_len = fields_values.len() as i64;
61-
let padding = names_len - values_len;
62-
6334
for file in files {
6435
let mut values: Vec<Value> = Vec::with_capacity(names_len as usize);
6536
let path = Path::new(&file);
6637

6738
for index in 0..names_len {
68-
if index >= hidden_selection_count && (index - padding) >= 0 {
69-
let value = &fields_values[(index - padding) as usize];
70-
if value.as_any().downcast_ref::<SymbolExpression>().is_none() {
71-
let evaluated = evaluate_expression(env, value, titles, &values)?;
72-
values.push(evaluated);
73-
continue;
74-
}
75-
}
76-
77-
let field_name = &fields_names[index as usize];
78-
39+
let field_name = &selected_columns[index as usize];
7940
if field_name == "path" {
8041
let file_path_string = path.to_str().unwrap_or("");
8142
values.push(Value::Text(file_path_string.to_string()));
@@ -124,11 +85,7 @@ impl DataProvider for FileDataProvider {
12485
rows.push(Row { values });
12586
}
12687

127-
groups.push(Group { rows });
128-
Ok(GitQLObject {
129-
titles: titles.to_vec(),
130-
groups,
131-
})
88+
Ok(rows)
13289
}
13390
}
13491

0 commit comments

Comments
 (0)