fender_guitar_catalogue 0.1.0 → 0.2.1

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
  SHA256:
3
- metadata.gz: 22bf1facc1bccf8ad98b16d83197d37b081bd8ca8466ae3f6c2a275b0b136138
4
- data.tar.gz: 132def13d3ab1824f882786b19337697de97e9f0f1d8687fedebb25fc9e3e2ec
3
+ metadata.gz: 3ab854fa683b6d7667074525772251b088a944501a4ef55f0247a7ba8b4adc59
4
+ data.tar.gz: daa714308ce8020b6b02f49cfe93386082d4362871381f90412530a717b7e283
5
5
  SHA512:
6
- metadata.gz: 2daec96601ac7a813cd4e6b54e6909f6a2f408caad11b11de7e67a8e7e2f9342c807b639b0d164f2827d41ce8e18b441b50a182290638d6e27221d027293ffef
7
- data.tar.gz: bf3ef5e6412eaf9d0831791c8ea7159df176e2cd8ada2a3ebdd1529634a5a16379c7d8ca3b35490d4522883d9932c34ee0430382ce33e784cb0e705521832b1d
6
+ metadata.gz: c86f00ad7b97fccfdab3393700033aa246d2996ef540ef8a7016f2e8bdacf562d6993a84a7db1e82e368328805b416e8aba0ac47d1e96a4094a6137f44fb1a73
7
+ data.tar.gz: 72359903f10f3cf2d2432a6df697d2ffe3f354ee1343d9b9d35d8496bc7278e7bcb9057e08ec12c4bab0d9870c7902046dac93bac66c0cc6ffeb309d7dca1d90
File without changes
@@ -30,7 +30,7 @@ class CLI
30
30
  puts ""
31
31
  show_details
32
32
  elsif input == "4"
33
- puts "Goodbye"
33
+ puts "Goodbye!"
34
34
  else
35
35
  puts "Invalid selection."
36
36
  menu
@@ -41,7 +41,7 @@ class CLI
41
41
  puts "Which guitar would you like information on?"
42
42
  input = gets.chomp.to_i
43
43
  puts ""
44
- if input > 149 || input < 1
44
+ if input < 1 || input > Guitar.all.count
45
45
  puts "!Invalid selection - Please choose a different model!"
46
46
  puts ""
47
47
  show_details
@@ -56,16 +56,16 @@ class CLI
56
56
  input = gets.chomp
57
57
  puts ""
58
58
  if input.downcase == "y"
59
- system("clear")
60
59
  Guitar.all.clear
60
+ system("clear")
61
61
  menu
62
62
  elsif input.downcase == "n"
63
63
  puts "Goodbye"
64
+ system("clear")
64
65
  else
65
66
  puts "Invalid selection."
66
67
  anything_else
67
68
  end
68
69
  end
69
-
70
70
 
71
71
  end
@@ -1,54 +1,40 @@
1
1
  class Scraper
2
-
3
- BASE_URL = "https://www.fender.com/en-AU/"
4
-
5
- def get_page(url = BASE_URL)
6
- Nokogiri::HTML(open(url))
7
- end
8
2
 
9
- def scrape_test
10
- doc = get_page(url = "#{BASE_URL}electric-guitars/?start=0&sz=200")
11
-
12
- doc.css(".product-tile").each.with_index(1).map do |guitar, i|
13
- model = guitar.css(".pdp-link").text.strip
14
- price = guitar.css(".price").text.strip
15
- url = guitar.css("a.product-tile-image").attr("href").value
3
+ GUITAR_TYPE = {
4
+ "bass" => "electric-basses/?start=0&sz=200",
5
+ "electric" => "electric-guitars/?start=0&sz=200",
6
+ "acoustic" => "acoustic-guitars/?start=0&sz=200"
7
+ }
8
+
9
+ BASE_URL = "https://www.fender.com/en-AU/"
16
10
 
17
- puts "#{i}. #{model}"
18
- Guitar.new(model: model, price: price, url: url)
11
+ def get_page(url = BASE_URL)
12
+ Nokogiri::HTML(URI.open(url))
19
13
  end
20
- end
21
14
 
22
- def scrape(type)
23
-
24
- if type == "bass"
25
- doc = get_page(url = "#{BASE_URL}electric-basses/?start=0&sz=200")
26
- elsif type == "electric"
27
- doc = get_page(url = "#{BASE_URL}electric-guitars/?start=0&sz=200")
28
- elsif type == "acoustic"
29
- doc = get_page(url = "#{BASE_URL}acoustic-guitars/?start=0&sz=200")
15
+ def scrape(type)
16
+ doc = get_page(url = "#{BASE_URL}#{GUITAR_TYPE[type]}")
17
+
18
+ doc.css(".product-tile").each.with_index(1).map do |guitar, i|
19
+ model = guitar.css(".pdp-link").text.strip
20
+ price = guitar.css(".price").text.strip
21
+ url = guitar.css("a.product-tile-image").attr("href").value
22
+
23
+ puts "#{i}. #{model}"
24
+ Guitar.new(model: model, price: price, url: url)
25
+ end
30
26
  end
31
27
 
32
- doc.css(".product-tile").each.with_index(1).map do |guitar, i|
33
- model = guitar.css(".pdp-link").text.strip
34
- price = guitar.css(".price").text.strip
35
- url = guitar.css("a.product-tile-image").attr("href").value
28
+ def scrape_content(url)
29
+ page_url = "#{BASE_URL}#{url}"
30
+ doc = get_page(page_url)
36
31
 
37
- puts "#{i}. #{model}"
38
- Guitar.new(model: model, price: price, url: url)
32
+ puts "#{doc.css(".row.long-description p").text.strip.gsub("Click here to learn more about this artist model.", "")}"
33
+ puts ""
34
+ puts "~Features~"
35
+ puts ""
36
+ li = "#{doc.css(".js-feature-bullets li")}"
37
+ puts li.gsub("<li>","* ").gsub("</li>","")
39
38
  end
40
- end
41
-
42
- def scrape_content(url)
43
- page_url = "#{BASE_URL}#{url}"
44
- doc = get_page(page_url)
45
-
46
- puts "#{doc.css(".row.long-description p").text.strip.gsub("Click here to learn more about this artist model.", "")}"
47
- puts ""
48
- puts "~Features~"
49
- puts ""
50
- li = "#{doc.css(".js-feature-bullets li")}"
51
- puts li.gsub("<li>","* ").gsub("</li>","")
52
- end
53
39
 
54
40
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fender_guitar_catalogue
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew McAleer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-03 00:00:00.000000000 Z
11
+ date: 2022-10-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '2.2'
33
+ version: 1.13.8
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '2.2'
40
+ version: 1.13.8
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: open-uri
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -65,11 +65,11 @@ files:
65
65
  - lib/fender_guitar_catalogue/cli.rb
66
66
  - lib/fender_guitar_catalogue/guitar.rb
67
67
  - lib/fender_guitar_catalogue/scraper.rb
68
- homepage: http://rubygems.org/gems/
68
+ homepage: https://rubygems.org/gems/fender_guitar_catalogue
69
69
  licenses:
70
70
  - MIT
71
71
  metadata:
72
- homepage_uri: http://rubygems.org/gems/
72
+ homepage_uri: https://rubygems.org/gems/fender_guitar_catalogue
73
73
  post_install_message:
74
74
  rdoc_options: []
75
75
  require_paths:
@@ -85,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
85
85
  - !ruby/object:Gem::Version
86
86
  version: '0'
87
87
  requirements: []
88
- rubygems_version: 3.3.6
88
+ rubygems_version: 3.3.22
89
89
  signing_key:
90
90
  specification_version: 4
91
91
  summary: Fender Guitar Catalogue