LaptopHunt 0.1
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 +7 -0
- data/bin/LaptopHunt +3 -0
- data/config/environment.rb +7 -0
- data/lib/LaptopHunt/Laptop.rb +30 -0
- data/lib/LaptopHunt/LaptopHunt.rb +75 -0
- data/lib/LaptopHunt/scraper.rb +19 -0
- metadata +132 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: fe56e16b7637d47e77fe71a0e0bdb33f5ce02294a98a14786606ade4033b5587
|
4
|
+
data.tar.gz: 762f24b9885c6534dc04366b8501dc0c92a2a2e5b1b86f3f35f33f0e68c1ff9c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2d01482851af9fb7e4e8f5ee720ae01da2579d80db6580753d35147dbe8ee001ef7f0db924e2640096a0aea76ed4c45a11ed02718ea1bfde87cb1b4119546bbb
|
7
|
+
data.tar.gz: 7d5b50cc136d3803dd46f73c923f3a377451ab161567b61c6ffd7c2377d96bdcd86118947d1f61d167fe8d5c232ed9e483a7f10a7b4cd6993f5c35f14dd45f76
|
data/bin/LaptopHunt
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
|
2
|
+
class LaptopHunt::Laptop
|
3
|
+
|
4
|
+
@@all = []
|
5
|
+
|
6
|
+
attr_accessor :name, :model, :price
|
7
|
+
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
|
11
|
+
@name = name
|
12
|
+
@model = model
|
13
|
+
@price = price
|
14
|
+
@@all << self
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.all
|
19
|
+
@@all
|
20
|
+
end
|
21
|
+
|
22
|
+
def model
|
23
|
+
@model = page.css("ul.filterItem").text
|
24
|
+
end
|
25
|
+
|
26
|
+
#def cost
|
27
|
+
# @price = page.css(".salePrice").text
|
28
|
+
#end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
|
2
|
+
class LaptopHunt::CLI
|
3
|
+
|
4
|
+
#min = gets.input.to_i
|
5
|
+
#max = gets.chomp.to_i
|
6
|
+
|
7
|
+
#html = Nokogiri::HTML(open("http://www.tigerdirect.com/applications/category/category_slc.asp?Lprice=0.01&Hprice=#{max}&CatId=17"))
|
8
|
+
|
9
|
+
|
10
|
+
#html.css('.itemName .salePrice').each do |div|
|
11
|
+
#LaptopHunt::Laptop.new_from_index_page(div)
|
12
|
+
#end
|
13
|
+
|
14
|
+
|
15
|
+
|
16
|
+
def newLaptop
|
17
|
+
Nokogiri::HTML(open("http://www.tigerdirect.com/applications/category/category_slc.asp?CatId=4935"))
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
def initialize
|
22
|
+
@model = model
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
def model
|
27
|
+
@model = page.css("ul.filterItem").text
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
def run
|
33
|
+
#LaptopHunt::Scraper.new.display_laptops
|
34
|
+
puts "Welcome to LaptopHunt. Let's help you find a laptop!"
|
35
|
+
sleep(2)
|
36
|
+
search
|
37
|
+
end
|
38
|
+
|
39
|
+
def search
|
40
|
+
|
41
|
+
puts "What is your price range?"
|
42
|
+
sleep(1)
|
43
|
+
puts "#{model}"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
#def self.selection
|
49
|
+
#puts "Select from the list below to see more information"
|
50
|
+
#details
|
51
|
+
#end
|
52
|
+
|
53
|
+
def details
|
54
|
+
puts "#{laptop.model}-----#{laptop.cost}"
|
55
|
+
end
|
56
|
+
|
57
|
+
def more
|
58
|
+
puts "Would you like to see more laptops (Y/N)?"
|
59
|
+
answer = gets.chomp
|
60
|
+
|
61
|
+
loop do
|
62
|
+
if answer.include?("Y") || answer.include?("y")
|
63
|
+
search
|
64
|
+
break
|
65
|
+
elsif answer.include?("N") || answer.include?("n")
|
66
|
+
puts "Thank you and have a nice day!"
|
67
|
+
break
|
68
|
+
else
|
69
|
+
puts "Please select Y or N"
|
70
|
+
answer = gets.chomp
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class LaptopHunt::Scraper
|
2
|
+
|
3
|
+
|
4
|
+
def initialize
|
5
|
+
url = "http://www.tigerdirect.com/applications/category/category_tlc.asp?CatId=17"
|
6
|
+
page = Nokogiri::HTML(open(url))
|
7
|
+
@laptops = []
|
8
|
+
end
|
9
|
+
|
10
|
+
def scrape_laptop
|
11
|
+
price = page.css(".oldPrice")
|
12
|
+
model = page.css(".itemName")
|
13
|
+
|
14
|
+
@laptops.each do |laptops|
|
15
|
+
i = @laptops.index(model)
|
16
|
+
puts "#{price}-----#{model}"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
metadata
ADDED
@@ -0,0 +1,132 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: LaptopHunt
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '0.1'
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Sarah Williams
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-06-15 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: nokogiri
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: httparty
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: pry
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
description: Helps search for a laptop via the TigerDirect Website
|
98
|
+
email: srwilliams8678@gmail.com
|
99
|
+
executables:
|
100
|
+
- LaptopHunt
|
101
|
+
extensions: []
|
102
|
+
extra_rdoc_files: []
|
103
|
+
files:
|
104
|
+
- bin/LaptopHunt
|
105
|
+
- config/environment.rb
|
106
|
+
- lib/LaptopHunt/Laptop.rb
|
107
|
+
- lib/LaptopHunt/LaptopHunt.rb
|
108
|
+
- lib/LaptopHunt/scraper.rb
|
109
|
+
homepage: https://rubygems.org/gems/LaptopHunt
|
110
|
+
licenses:
|
111
|
+
- MIT
|
112
|
+
metadata: {}
|
113
|
+
post_install_message:
|
114
|
+
rdoc_options: []
|
115
|
+
require_paths:
|
116
|
+
- lib
|
117
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
118
|
+
requirements:
|
119
|
+
- - ">="
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '0'
|
122
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - ">="
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
127
|
+
requirements: []
|
128
|
+
rubygems_version: 3.0.3
|
129
|
+
signing_key:
|
130
|
+
specification_version: 4
|
131
|
+
summary: Help you search for a laptop
|
132
|
+
test_files: []
|