rumble_bundle 1.0.0 → 1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ab912ac3d3ab1fa15544e0d5dde4421d1a9fb30c
4
- data.tar.gz: '0479427cfff6e9e85a85d04917aaa9718f93c863'
3
+ metadata.gz: 2cbbb97e4f38fa3191342d6d8072875577f7a925
4
+ data.tar.gz: 6dcbe80e6391adbdfe235418b33dd0b93d52fd9d
5
5
  SHA512:
6
- metadata.gz: 9675a0ac23f75668bbf7ec75f61d13635b7d224d4cd240f93240c129f9c3ddb7033bf8eb7d1b6218c75d513a72f8f12bf157b95002d32718262b99918aaa1941
7
- data.tar.gz: 54f374f52c02574af06e8e06ea3649d5dc82173f68e9b8e3213168d8677d6ca6a789c0210e24003a782607a2141c28bbd53cbfee66a7533efa37681a7fec2820
6
+ metadata.gz: f9a0d95f33316f8000b54f7ed33a637b2e42a168b428e169a70346e2c81b6017bc89e22dbbb7de0190656630ebe0a8170c52a5cdeac6f2ee08cc09f77889783c
7
+ data.tar.gz: bff8b3d35d15b9aab216b8793c445a03c8a1125c9ac2946e33065c4abc36ef6c7bd2cf334fcf1330b733cf7e93bf0bd7eb6f6d942c971abd74b9e28ccb67d574
@@ -3,14 +3,10 @@
3
3
  require_relative '../config/environment'
4
4
 
5
5
 
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
-
10
-
11
- # (If you use this, don't forget to add pry to your Gemfile!)
12
6
  require "pry"
13
7
  Pry.start
14
8
 
9
+
10
+
15
11
  # require "irb"
16
12
  # IRB.start(__FILE__)
@@ -2,9 +2,9 @@ class RumbleBundle::CLI
2
2
 
3
3
  # Scrape site and allow user to begin browsing.
4
4
  def start
5
- puts ""
5
+ puts
6
6
  puts "Fetching data from HumbleBundle.com..."
7
- puts ""
7
+ puts
8
8
 
9
9
  RumbleBundle::Scraper.new.crawl_site
10
10
 
@@ -18,10 +18,10 @@ class RumbleBundle::CLI
18
18
 
19
19
  bundles = RumbleBundle::Bundle.all
20
20
 
21
- puts ""
21
+ puts
22
22
  puts "Enter a bundle's number to learn more, or enter 'help' for more commands."
23
23
  puts "Enter 'quit' to leave the program."
24
- puts ""
24
+ puts
25
25
 
26
26
  # List Bundles in numbered order
27
27
  bundles.each.with_index(1) do |bundle, i|
@@ -29,10 +29,10 @@ class RumbleBundle::CLI
29
29
  end
30
30
 
31
31
  # Get user input
32
- puts ""
32
+ puts
33
33
  print " "
34
34
  input = gets.strip.downcase
35
- puts ""
35
+ puts
36
36
 
37
37
  # If input is a valid number, display the corresponding Bundle
38
38
  if input.to_i.between?(1, bundles.length)
@@ -40,7 +40,7 @@ class RumbleBundle::CLI
40
40
 
41
41
  # If input is an invalid number, restart #query
42
42
  elsif input.to_i < 0 || input.to_i > bundles.length
43
- puts ""
43
+ puts
44
44
  puts "Sorry! Please enter a valid number or command."
45
45
  query
46
46
 
@@ -80,30 +80,31 @@ class RumbleBundle::CLI
80
80
  end
81
81
 
82
82
  if filtered.any?
83
- puts ""
83
+ puts
84
84
  puts "Results for: #{valid}"
85
85
  puts "---------------------------------------------------------------"
86
86
  filtered.collect{|p| p.bundle }.uniq.each do |bundle|
87
87
  puts "#{bundle.name} (#{bundle.url})"
88
- puts ""
88
+ puts
89
89
  bundle.tiers.each do |tier|
90
90
  if filtered.detect{|p| p.tier == tier}
91
- puts " #{tier.description}", ""
91
+ puts " #{tier.description}"
92
+ puts
92
93
  filtered.each{|p| display_product(p) if p.tier == tier}
93
- puts ""
94
+ puts
94
95
  end
95
96
  end
96
97
  end
97
98
  puts "---------------------------------------------------------------"
98
99
  else
99
- puts ""
100
+ puts
100
101
  puts "Sorry! No results for: #{valid}"
101
102
  puts "---------------------------------------------------------------"
102
103
  puts "---------------------------------------------------------------"
103
104
  end
104
105
 
105
106
  else
106
- puts ""
107
+ puts
107
108
  puts "Sorry! Please enter a valid number or command."
108
109
  query
109
110
 
@@ -119,19 +120,17 @@ class RumbleBundle::CLI
119
120
  def display_bundle(bundle)
120
121
  puts "---------------------------------------------------------------"
121
122
  puts "#{bundle.name} (#{bundle.url})"
123
+ puts
122
124
  puts "#{bundle.total_msrp}!"
123
- puts ""
124
- puts " Supports:"
125
- bundle.charities.each do |c|
126
- print " #{c}"
127
- puts ","
128
- end
129
- puts " or a Charity of Your Choice"
130
- puts "", ""
125
+ puts
126
+ puts bundle.charities
127
+ puts
128
+ puts
131
129
  bundle.tiers.each do |tier|
132
- puts " #{tier.description}", ""
130
+ puts " #{tier.description}"
131
+ puts
133
132
  tier.products.each{|p| display_product(p)}
134
- puts ""
133
+ puts
135
134
  end
136
135
  puts "---------------------------------------------------------------"
137
136
 
@@ -143,9 +142,9 @@ class RumbleBundle::CLI
143
142
  print " (#{product.platforms.join(", ")})" if product.platforms.any?
144
143
  print " (DRM-Free!)" if product.drm_free
145
144
  print " (w/Steam Key!)" if product.steam_key
146
- puts ""
145
+ puts
147
146
  puts " #{product.subtitle}" if product.subtitle
148
- puts ""
147
+ puts
149
148
  end
150
149
 
151
150
  # Display help
@@ -4,7 +4,7 @@ class RumbleBundle::Scraper
4
4
  # Set URLs used as starting points for scraping
5
5
  @base_url = 'https://www.humblebundle.com'
6
6
  @main_pages = [
7
- 'https://www.humblebundle.com/',
7
+ 'https://www.humblebundle.com/software-bundle/',
8
8
  'https://www.humblebundle.com/books/',
9
9
  'https://www.humblebundle.com/mobile/']
10
10
  end
@@ -44,7 +44,7 @@ class RumbleBundle::Scraper
44
44
 
45
45
  bundle.name = html.css("title").text.chomp("(pay what you want and help charity)").strip
46
46
 
47
- bundle.charities = html.css(".charity-image-wrapper img").collect{|img| img.attr("alt")}
47
+ bundle.charities = html.css(".hb-giftbox ~ div > .hr-tagline-popup").text.strip
48
48
 
49
49
  bundle.total_msrp = html.css('.hr-tagline-text').detect{|e| e.text.include?("worth")}.text.strip
50
50
 
@@ -77,7 +77,8 @@ class RumbleBundle::Scraper
77
77
 
78
78
  end
79
79
 
80
- end
80
+ end unless html.at('button:contains("This Bundle is Over!")')
81
+
81
82
  end
82
83
 
83
84
 
@@ -1,3 +1,3 @@
1
1
  module RumbleBundle
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rumble_bundle
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Noah Summers
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-01 00:00:00.000000000 Z
11
+ date: 2017-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler