whatsa 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/whatsa/article.rb +12 -2
- data/lib/whatsa/section.rb +5 -0
- data/lib/whatsa/version.rb +1 -1
- data/spec.md +6 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aef97bd6c6bbcfbff00e5fe88ab1e6715de035cb
|
4
|
+
data.tar.gz: 4816a33391219a2d92081be925269db130733096
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9661681f7cde6a9b5b17807a2a908e18c0eab23a0b053a3a4c4f7cecfcd77ef2401bb3341af3840cc70b6ebf831f7ce5bbc89709b319cbca4514f91cc2e629f5
|
7
|
+
data.tar.gz: 87d9ba1a98bb9347d8aef6d369009f0303c096d3d4b31bcfcb2387c56c0f77021aad0f61ff3aaa1e89a5c0d20ae1b75da9d5e23f3f43694868e6f489cd9b6a2e
|
data/lib/whatsa/article.rb
CHANGED
@@ -6,6 +6,10 @@ class Whatsa::Article
|
|
6
6
|
@title = noko_doc.css('h1').text
|
7
7
|
@contents = noko_doc.css('#mw-content-text').children
|
8
8
|
@sections = make_sections
|
9
|
+
|
10
|
+
# comment out the next line if you want sections with non-<p> and non-<ul>
|
11
|
+
# content to display as "[no displayable information]"
|
12
|
+
remove_empty_sections
|
9
13
|
end
|
10
14
|
|
11
15
|
def summary
|
@@ -50,8 +54,10 @@ class Whatsa::Article
|
|
50
54
|
secs = [Whatsa::Section.new("#{self.title} - Introduction", intro_pars)]
|
51
55
|
indices.each_cons(2) do |i, j|
|
52
56
|
title = self.contents[i].text.gsub('[edit]', '').strip
|
53
|
-
par_nodes = self.contents[i...j].select
|
54
|
-
|
57
|
+
par_nodes = self.contents[i...j].select do |e|
|
58
|
+
e.name == 'p' || e.name == 'ul' && e.text != ""
|
59
|
+
end
|
60
|
+
pars = par_nodes.map { |par| par.text.strip }
|
55
61
|
secs << Whatsa::Section.new(title, pars).tap { |s| s.article = self }
|
56
62
|
end
|
57
63
|
secs
|
@@ -64,4 +70,8 @@ class Whatsa::Article
|
|
64
70
|
end
|
65
71
|
indices
|
66
72
|
end
|
73
|
+
|
74
|
+
def remove_empty_sections
|
75
|
+
self.sections.reject! { |sec| sec.summary == "[no displayable information]" }
|
76
|
+
end
|
67
77
|
end
|
data/lib/whatsa/section.rb
CHANGED
@@ -5,6 +5,7 @@ class Whatsa::Section
|
|
5
5
|
@title = title
|
6
6
|
@paragraphs = paragraphs
|
7
7
|
remove_citations
|
8
|
+
bullet_list_pars
|
8
9
|
end
|
9
10
|
|
10
11
|
def summary
|
@@ -21,4 +22,8 @@ class Whatsa::Section
|
|
21
22
|
self.paragraphs.map! { |par| par.gsub(/\[(\d+|citation needed)\]/, "") }
|
22
23
|
end
|
23
24
|
|
25
|
+
def bullet_list_pars
|
26
|
+
self.paragraphs.map! { |par| par.index("\n") ? par.gsub(/^/, "- ") : par }
|
27
|
+
end
|
28
|
+
|
24
29
|
end
|
data/lib/whatsa/version.rb
CHANGED
data/spec.md
ADDED
@@ -0,0 +1,6 @@
|
|
1
|
+
# Specifications for the CLI Assessment
|
2
|
+
|
3
|
+
Specs:
|
4
|
+
- [x] Have a CLI for interfacing with the application (You can access Whatsa by running the command `whatsa` after installing it, then follow the on-screen instructions in your terminal to interact. The rest is explained in the README.)
|
5
|
+
- [x] Pull data from an external source (This application pulls data from articles, disambiguation pages, and search results pages on Wikipedia.org)
|
6
|
+
- [x] Implement both list and detail views (If you make a query that is ambiguous, the app will present a list to you, from which you can select a choice by number or name. If you wish to read from a specific category/section of an article, you can type `other` and it will present a similarly-selectable list of sections. Once you get to an article or a section, it will display its summary, and if you'd like more, you can ask for that too.)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: whatsa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Keegan Leitz
|
@@ -93,6 +93,7 @@ files:
|
|
93
93
|
- lib/whatsa/scraper.rb
|
94
94
|
- lib/whatsa/section.rb
|
95
95
|
- lib/whatsa/version.rb
|
96
|
+
- spec.md
|
96
97
|
- whatsa.gemspec
|
97
98
|
homepage: https://github.com/kjleitz/whatsa
|
98
99
|
licenses:
|