fender_guitar_catalogue 0.1.0 → 0.2.0

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: 933a4357596afcc7acf5626d8737a82c013a98ba8810ac9ae38cae30b67feb03
4
+ data.tar.gz: bf14ac5dd1e497f29b960fc87a0e669073975f3e1ed342dc51e7845d070065a0
5
5
  SHA512:
6
- metadata.gz: 2daec96601ac7a813cd4e6b54e6909f6a2f408caad11b11de7e67a8e7e2f9342c807b639b0d164f2827d41ce8e18b441b50a182290638d6e27221d027293ffef
7
- data.tar.gz: bf3ef5e6412eaf9d0831791c8ea7159df176e2cd8ada2a3ebdd1529634a5a16379c7d8ca3b35490d4522883d9932c34ee0430382ce33e784cb0e705521832b1d
6
+ metadata.gz: a89dfe3f2848b95c27d04de95d98bad6e649cef1e2f4cf06e0c51e1e7e45d42897e7841d096d717c63a68568ff0cc14f0a1d6e633ec397d441bfdba49756f9a3
7
+ data.tar.gz: 667ea46fca1a02716b4793513b3141128e11a6cf2163ad51556580b114294c198d990d82267b17fb24695d8ad8288ab6b9e259b336ad3af9d912777e8a1e136f
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(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.0
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
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: nokogiri
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '2.2'
33
+ version: '0'
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: '0'
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: