project_euler_cli 1.1.3 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 44d8074a02474483217dd5fe84dbc2097e4c74eddefd9f1e5f15963bdccd8e56
4
- data.tar.gz: 6bf1bb9012bf4513e88d3c5a879cc632e26ef965c5219729d0d5e7d7fedb739c
3
+ metadata.gz: d24479bc8b7da8a9224cd9fbed31f5719d55f8470631661ef1854aa4f72456c7
4
+ data.tar.gz: 1c2019b22c5b6f7dbac1f4831b51ffc1d16961a4294f20bf70965307e238ace7
5
5
  SHA512:
6
- metadata.gz: 20d4c42262c68b6ab3b2d8448fef4d6985fadb3462bcbb162e89735ba8363ade9142e4fcce4eb5dfce63e30d551de23939c3c39a65a47a9dbc39de13407f8bec
7
- data.tar.gz: 1cc985f77f2406ce7a7a48d9e28030336eea05bc8d228882ac20418315b5fad8ee673983cf3deff16bfde45f3ddfd6f53cf6b92291f6fc36f82491e5773f7591
6
+ metadata.gz: 9b407f362003ada505414c27c933abd6d92a2e60569e97eac901349a9d09a5751401f6ec8d936391a36b389b8019725638d190ff64b0fe9d0d59c84ddc93d7c7
7
+ data.tar.gz: 3f920320f2902c8e232c79fef65a3a03c90050600d3815e8c7c354740d44b066fa36ac7c47a70ac1d55f35339eff74f3074d6ee5434989a0102037789b93f50e
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- project_euler_cli (1.1.3)
4
+ project_euler_cli (1.2.0)
5
5
  nokogiri (~> 1.8)
6
6
 
7
7
  GEM
@@ -18,26 +18,30 @@ class ArchiveSearcher
18
18
  end
19
19
 
20
20
  # Loads the problem numbers and titles for every page that is not loaded.
21
- def load_terms
21
+ def load_keywords
22
22
  puts "updating keywords..."
23
23
 
24
24
  0.upto(Page.total) { |page| load_page(page, @problems) }
25
25
  end
26
26
 
27
- # Performs a simple search of the problems. It accepts multiple terms. Results
28
- # will contain *all* of the search terms.
27
+ # Performs a simple search of the problems. It accepts multiple terms and
28
+ # recognizes quoted phrases. Results will contain *all* of the search terms.
29
29
  #
30
30
  # * +terms+ - String of search terms
31
- def search(terms)
32
- load_terms if Page.visited != (0..Page.total).to_a
31
+ def search(terms_string)
32
+ load_keywords if Page.visited != (0..Page.total).to_a
33
33
 
34
34
  puts "searching..."
35
35
  @searching = true
36
36
 
37
+ terms_string.downcase!
38
+ terms = terms_string.scan(/"[^"]*"/)
39
+ terms.each { |term| terms_string.slice!(term) }
40
+ terms.collect! { |term| term.gsub("\"", '') }
41
+ terms += terms_string.split(' ')
42
+
37
43
  @results = (1..Problem.total).select do |i|
38
- terms.downcase.split(' ').all? do |term|
39
- @problems[i].title.downcase.include?(term)
40
- end
44
+ terms.all? { |term| @problems[i].title.downcase.include?(term) }
41
45
  end
42
46
  end
43
47
 
@@ -1,3 +1,3 @@
1
1
  module ProjectEulerCli
2
- VERSION = "1.1.3"
2
+ VERSION = "1.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: project_euler_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ecssiah