whatsa 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9af060bbf71de26b4ead13edd883d9000ddf4b4a
4
- data.tar.gz: 99867e5ed581e21a914b9de22b68f9b6f89683f4
3
+ metadata.gz: 7ac4a4382455cb767f687b48ee577cfbea776f34
4
+ data.tar.gz: ee220697878ad879a70bac12da3eb7dd84f54a2c
5
5
  SHA512:
6
- metadata.gz: 86cead7f90f162db69e272da8b9effba956c7e73d07e95e98835348a19a61e104164cc899b1868a9f40c39f14f53a9b036fc5fca18fc45ace9c54965699de769
7
- data.tar.gz: f1d404aafd2c7468b72362d322e9afcf7c8c8d0f15455f2bdc9e770276ac071a25483a73c3ff45742cd074c1d06fd095e085914201f0ccf0c63cfa9949b292b8
6
+ metadata.gz: 02c69d6cc696b0e5d8b185de1b0634a335bf154660ed6d31790b03a4e891b5fe8cc3e9959743581c570d1a8206856f6c220348b921d08b5334586126ee12989f
7
+ data.tar.gz: 372691d81e21c453a06c37c5cc6365641cdc3922f3375c2e908cabda78d215e7a85afa9fe369877f903cbba13c79e5847a12accac1e4f09db7ac7a333febf2c4
data/README.md CHANGED
@@ -8,7 +8,7 @@ Whatsa is a CLI app that allows you to search a word or phrase and receive a qui
8
8
 
9
9
  ### How does it do that?
10
10
 
11
- It searches your query on Wikipedia and finds the page you're most likely looking for. If you've been somewhat vague, or your search term could refer to multiple things, it will ask you to select from a disambiguation of topics. Usually, however, your term will go straight to an article. Whatsa then gives you the first paragraph of that article (usually a surprisingly decent summary).
11
+ It searches your query on Wikipedia and finds the page you're most likely looking for. If you've been somewhat vague, or your search term could refer to multiple things, it will ask you to select from a disambiguation of topics. Usually, however, your term will go straight to an article. Whatsa then gives you the first paragraph of that article (often a surprisingly decent summary).
12
12
 
13
13
  If you're not super satisfied with that bit of information (and you need to know a little more) you can type `more` to get a better picture of that subject. If you're _still_ not satisfied, and you want to know something _specific_ about the thing you've searched, type `other`, and it will list the categories of information Wikipedia knows about the subject (its "History", "Early Life", "Uses", etc.). You can select one of those sections, if you'd like, and it will give you the first paragraph of that section, too (which you can extend similarly with another `more` command). You can make a new query with `new`, ask for help at any time with `help`, or exit the application with `exit`.
14
14
 
@@ -18,7 +18,7 @@ Simple!
18
18
 
19
19
  ### No, but like, _how_ does it do that?
20
20
 
21
- You can find a little more information in a blog post I made [here](http://cogsandcurves.com/2016/11/28/so_you_made_a_cli_data_gem_eh/)!
21
+ You can find a little more information in a [blog post I made](http://cogsandcurves.com/2016/11/28/so_you_made_a_cli_data_gem_eh/)!
22
22
 
23
23
  ## Installing Whatsa
24
24
 
data/lib/whatsa/cli.rb CHANGED
@@ -1,7 +1,12 @@
1
1
  class Whatsa::CLI
2
2
 
3
- def welcome
3
+ def clear_screen
4
+ 50.times { puts "\n" }
4
5
  system('clear')
6
+ end
7
+
8
+ def welcome
9
+ clear_screen
5
10
  puts "Whatsa is a quick-and-dirty lookup utility, powered by Wikipedia!"
6
11
  puts "-----------------------------------------------------------------"
7
12
  end
@@ -39,14 +44,15 @@ class Whatsa::CLI
39
44
  input
40
45
  end
41
46
 
42
- def word_wrap(text)
47
+ # setting an indent will indent the lines AFTER the first line of a paragraph
48
+ def word_wrap(text, indent=0)
43
49
  count = 0
44
50
  words = text.split(/ /)
45
51
  words.each_with_index do |word, index|
46
52
  count += word.length + 1
47
53
  if count > 80
48
- words.insert(index, "\n")
49
- count = 0
54
+ words.insert(index, "\n#{' ' * indent}")
55
+ count = indent
50
56
  elsif word.index("\n")
51
57
  count = word.length
52
58
  end
@@ -56,21 +62,25 @@ class Whatsa::CLI
56
62
 
57
63
  def display_dmb(dmb)
58
64
  raise TypeError unless dmb.is_a?(Whatsa::Disambig)
59
- system("clear")
65
+ clear_screen
60
66
  stripped_title = dmb.title.gsub("(disambiguation)", "").strip
61
- puts "Hmmm... #{stripped_title} could mean a few different things:\n"
67
+ puts word_wrap("Hmmm... #{stripped_title} could mean a few different things:\n")
62
68
  dmb.descriptions.each_with_index do |kvp, i|
69
+ num = "#{i + 1}. "
70
+ item = "#{kvp[0].to_s}"
63
71
  desc = kvp[1].empty? ? "" : " - #{kvp[1]}"
64
- puts "#{i + 1}. #{kvp[0].to_s}" + desc
72
+ puts word_wrap(num + item + desc, num.length)
65
73
  end
66
74
  puts "\nPlease select a choice, either by name or number."
67
75
  end
68
76
 
69
77
  def display_sections(text)
70
78
  text = text.article if text.is_a?(Whatsa::Section)
71
- system("clear")
72
- puts "Here are some specific subjects about '#{text.title}':\n"
73
- text.section_titles.each_with_index {|title, i| puts "#{i + 1}. #{title}"}
79
+ clear_screen
80
+ puts word_wrap("Here are some specific subjects about '#{text.title}':\n")
81
+ text.section_titles.each_with_index do |title, i|
82
+ puts word_wrap("#{i + 1}. #{title}", "#{i + 1}. ".length)
83
+ end
74
84
  puts "\nPlease select a choice, either by name or number."
75
85
  end
76
86
 
@@ -105,7 +115,7 @@ class Whatsa::CLI
105
115
  end
106
116
 
107
117
  def summarize(text)
108
- system("clear")
118
+ clear_screen
109
119
  return full(text) if text.summary == text.full_text
110
120
  puts word_wrap(text.summary)
111
121
  summary_helpline
@@ -114,7 +124,7 @@ class Whatsa::CLI
114
124
  end
115
125
 
116
126
  def full(text)
117
- system("clear")
127
+ clear_screen
118
128
  puts word_wrap(text.full_text)
119
129
  full_text_helpline
120
130
  gets_command
@@ -148,7 +158,7 @@ class Whatsa::CLI
148
158
 
149
159
  # get an article from the search, or restart the loop if it can't be found
150
160
  if scraper.not_found?
151
- print "Hmmm... I don't know what '#{input}' means!\nPress 'enter' to try something else."
161
+ print word_wrap("Hmmm... I don't know what '#{input}' means!\nPress 'enter' to try something else.")
152
162
  gets
153
163
  run
154
164
  elsif scraper.disambig?
@@ -32,7 +32,7 @@ class Whatsa::Disambig
32
32
  all_link = key.match("All pages with titles")
33
33
  unless toc_link || dmb_link || all_link
34
34
  desc = item.text.split("\n").first.strip
35
- memo[key] = desc.gsub(key, "").gsub(/\A[^\w"]/, "").strip
35
+ memo[key] = desc.gsub(/^#{Regexp.escape(key)}[^\w"]/, "").strip
36
36
  end
37
37
  end
38
38
  memo
@@ -18,7 +18,7 @@ class Whatsa::Section
18
18
  private
19
19
 
20
20
  def remove_citations
21
- self.paragraphs.map! { |par| par.gsub(/\[\d+\]/, "") }
21
+ self.paragraphs.map! { |par| par.gsub(/\[(\d+|citation needed)\]/, "") }
22
22
  end
23
23
 
24
24
  end
@@ -1,3 +1,3 @@
1
1
  module Whatsa
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
data/whatsa.gemspec CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["kjleitz@gmail.com"]
11
11
 
12
12
  spec.summary = %q{What is that? Okay, okay, I don't need a lecture... just gimme the short 'n sweet!}
13
- spec.description = %q{Whatsa is a CLI app that allows you to search a word or phrase and receive a quick summary about that subject. It searches your query on Wikipedia and finds the page you're most likely looking for. If you've been somewhat vague, or your search term could refer to multiple things, it will ask you to select from a disambiguation of topics. Usually, however, your term will go straight to an article. Whatsa then gives you the first paragraph of that article (usually a surprisingly decent summary).
13
+ spec.description = %q{Whatsa is a CLI app that allows you to search a word or phrase and receive a quick summary about that subject. It searches your query on Wikipedia and finds the page you're most likely looking for. If you've been somewhat vague, or your search term could refer to multiple things, it will ask you to select from a disambiguation of topics. Usually, however, your term will go straight to an article. Whatsa then gives you the first paragraph of that article (often a surprisingly decent summary).
14
14
 
15
15
  If you're not super satisfied with that bit of information (and you need to know a little more) you can type `more` to get a better picture of that subject. If you're _still_ not satisfied, and you want to know something _specific_ about the thing you've searched, type `other`, and it will list the categories of information Wikipedia knows about the subject (its "History", "Early Life", "Uses", etc.). You can select one of those sections, if you'd like, and it will give you the first paragraph of that section, too (which you can extend similarly with another `more` command). You can make a new query with `new`, ask for help at any time with `help`, or exit the application with `exit`.}
16
16
  spec.homepage = "https://github.com/kjleitz/whatsa"
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.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keegan Leitz
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  description: |-
70
- Whatsa is a CLI app that allows you to search a word or phrase and receive a quick summary about that subject. It searches your query on Wikipedia and finds the page you're most likely looking for. If you've been somewhat vague, or your search term could refer to multiple things, it will ask you to select from a disambiguation of topics. Usually, however, your term will go straight to an article. Whatsa then gives you the first paragraph of that article (usually a surprisingly decent summary).
70
+ Whatsa is a CLI app that allows you to search a word or phrase and receive a quick summary about that subject. It searches your query on Wikipedia and finds the page you're most likely looking for. If you've been somewhat vague, or your search term could refer to multiple things, it will ask you to select from a disambiguation of topics. Usually, however, your term will go straight to an article. Whatsa then gives you the first paragraph of that article (often a surprisingly decent summary).
71
71
 
72
72
  If you're not super satisfied with that bit of information (and you need to know a little more) you can type `more` to get a better picture of that subject. If you're _still_ not satisfied, and you want to know something _specific_ about the thing you've searched, type `other`, and it will list the categories of information Wikipedia knows about the subject (its "History", "Early Life", "Uses", etc.). You can select one of those sections, if you'd like, and it will give you the first paragraph of that section, too (which you can extend similarly with another `more` command). You can make a new query with `new`, ask for help at any time with `help`, or exit the application with `exit`.
73
73
  email: