commit - fa3ca37ff9b9e995cf8dd43e6c2aea9d3c7c0f34
commit + 4563b43dc46cf12d4ea4e82321a75a037e81d5c9
blob - 2b17d016d325384df22aeedde464d4682028a58c
blob + de9cd82ed7dea22d3523df97e9c74e45021c1c24
--- eur-lex-scraper/src/models/articles.rs
+++ eur-lex-scraper/src/models/articles.rs
#[derive(Clone, Debug, Default, PartialEq, Eq)]
pub struct Article {
- pub title: String,
- pub number: u32,
- pub text: String,
+ title: String,
+ number: u32,
+ text: String,
}
impl Into<Item> for Article {
Item::Article(self)
}
}
+
+impl Article {
+ pub fn set_title(&mut self, title: String) {
+ self.title = title
+ }
+ pub fn get_title(&self) -> &str {
+ &self.title
+ }
+ pub fn set_number(&mut self, number: u32) {
+ self.number = number
+ }
+ pub fn get_number(&self) -> u32 {
+ self.number
+ }
+ pub fn set_text(&mut self, text: String) {
+ self.text = text
+ }
+ pub fn get_text(&self) -> &str {
+ &self.text
+ }
+}
blob - d433b9cd088a8ce5c945d648a1da87d176b28850
blob + f88578d44278fb36d2970b50c7bf419fa2786329
--- eur-lex-scraper/src/parsers/article.rs
+++ eur-lex-scraper/src/parsers/article.rs
None => return Err(ArticleParserError::TitleError),
};
let text = html2text(&element.inner_html());
- let article = Article {
- title,
- number,
- text,
- };
+ let mut article = Article::default();
+ article.set_title(title);
+ article.set_number(number);
+ article.set_text(text);
Ok(article)
}
}
let selector = Selector::parse("[id^=art_]").unwrap();
let element_ref = html.select(&selector).next().unwrap();
let article_left = ArticleParser::parse(element_ref).unwrap();
- let article_right = Article {
- title: "AI literacy".to_string(),
- number: 4,
- text: html2text(&element_ref.inner_html()),
- };
+ let mut article_right = Article::default();
+ article_right.set_title("AI literacy".to_string());
+ article_right.set_number(4);
+ article_right.set_text(html2text(&element_ref.inner_html()));
assert_eq!(article_left, article_right)
}
#[test]
#[test]
fn parsing_article_no_id_return_no_id_attribute_error() {
let html = Html::parse_fragment(&get_test_article_4());
- // Change the selector for tests pruposes since we cannot
- // use id
+ // Change the selector for test pruposes since we cannot use id
let selector = Selector::parse(".eli-subdivision").unwrap();
let element_ref = html.select(&selector).next().unwrap();
let article_left = ArticleParser::parse(element_ref).unwrap_err();
blob - 1c7c1d21b0adfecb2a355453f4306ac9ba4ebea0
blob + 25e44521de570bdb68bc955a0b7f188a2b149e4c
--- eur-lex-scraper/src/parsers/section.rs
+++ eur-lex-scraper/src/parsers/section.rs
let element_ref = html.select(&selector).next().unwrap();
let section_left = SectionParser::parse(element_ref).unwrap();
assert_eq!(section_left.items.len(), 2);
- assert_eq!(section_left.items.get(0).unwrap().number, 6);
+ assert_eq!(section_left.items.get(0).unwrap().get_number(), 6);
assert_eq!(
- section_left.items.get(0).unwrap().title,
- "Classification rules for high-risk AI systems".to_string()
+ section_left.items.get(0).unwrap().get_title(),
+ "Classification rules for high-risk AI systems"
);
- assert_eq!(section_left.items.get(1).unwrap().number, 7);
+ assert_eq!(section_left.items.get(1).unwrap().get_number(), 7);
assert_eq!(
- section_left.items.get(1).unwrap().title,
- "Amendments to Annex III".to_string()
+ section_left.items.get(1).unwrap().get_title(),
+ "Amendments to Annex III"
);
}
}