stew 0.5.2 → 0.5.3
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/README.md +13 -1
- data/lib/stew.rb +5 -2
- data/lib/stew/store/app.rb +31 -5
- data/lib/stew/store/app_offer.rb +5 -1
- data/lib/stew/store/sale.rb +33 -0
- data/lib/stew/store/sales.rb +18 -0
- data/lib/stew/store/sales_client.rb +16 -0
- data/lib/stew/store/store_client.rb +1 -1
- data/lib/stew/version.rb +1 -1
- data/spec/fixtures/store/sales/broken_sale.txt +19 -0
- data/spec/fixtures/store/sales/broken_sales.txt +1598 -0
- data/spec/fixtures/store/sales/sale.txt +37 -0
- data/spec/fixtures/store/sales/sales.txt +1210 -0
- data/spec/integration/broken_sales_integration_spec.rb +19 -0
- data/spec/integration/sales_integration_spec.rb +32 -0
- data/spec/integration/store_integration_spec.rb +13 -1
- data/spec/lib/stew/store/app_spec.rb +53 -3
- data/spec/lib/stew/store/sale_spec.rb +51 -0
- data/spec/lib/stew/store/sales_client_spec.rb +28 -0
- data/spec/lib/stew/store/sales_spec.rb +8 -0
- data/spec/lib/stew/store/store_client_spec.rb +4 -4
- data/spec/lib/stew/store/web_client_spec.rb +1 -1
- data/spec/spec_helper.rb +2 -1
- metadata +26 -47
@@ -0,0 +1,19 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe "Parsing of broken sales", :vcr do
|
6
|
+
before(:each) do
|
7
|
+
raw_response_file = File.new("spec/fixtures/store/sales/broken_sales.txt")
|
8
|
+
stub_request(:get, "http://store.steampowered.com/search/tab?cc=us&l=english&tab=Discounts&start=0&count=10000").to_return(raw_response_file)
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "parsing of the sales" do
|
12
|
+
let(:subject){Stew::Store::SalesClient.new}
|
13
|
+
let(:sales){subject.sales}
|
14
|
+
|
15
|
+
it "handles responses with no original price" do
|
16
|
+
sales.each(&:original_price)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe "Sales" do
|
6
|
+
before(:each) do
|
7
|
+
raw_response_file = File.new("spec/fixtures/store/sales/sales.txt")
|
8
|
+
stub_request(:get, "http://store.steampowered.com/search/tab?cc=us&l=english&tab=Discounts&start=0&count=10000").to_return(raw_response_file)
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "parsing of the sales" do
|
12
|
+
let(:subject){Stew::Store::SalesClient.new}
|
13
|
+
let(:sales){subject.sales}
|
14
|
+
|
15
|
+
it "has the correct names" do
|
16
|
+
sales.entries[0].name.should eq "Call of Duty®: Black Ops II"
|
17
|
+
sales.entries[1].name.should eq "Tomb Raider"
|
18
|
+
end
|
19
|
+
|
20
|
+
it "has the correct price" do
|
21
|
+
sales.first.price.should eq Money.new('4019', :eur)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "has the correct original price" do
|
25
|
+
sales.first.original_price.should eq Money.new('5999', :usd)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "has an app id" do
|
29
|
+
sales.first.app_id.should eq 202970
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
describe "Store", :vcr do
|
5
|
+
describe "Store", :vcr => {:cassette_name => 'store_integration'} do
|
6
6
|
|
7
7
|
let(:store_client){Stew::Store::StoreClient.new}
|
8
8
|
subject{store_client.app(id)}
|
@@ -41,6 +41,14 @@ describe "Store", :vcr do
|
|
41
41
|
it "is not indie" do
|
42
42
|
subject.indie?.should be_false
|
43
43
|
end
|
44
|
+
|
45
|
+
it "sets the header image" do
|
46
|
+
subject.header_image.should match /http:\/\/cdn.\.?steampowered.com\/v\/gfx\/apps\/211420\/header_292x136\.jpg/
|
47
|
+
end
|
48
|
+
|
49
|
+
it "sets the capsule image" do
|
50
|
+
subject.capsule_image.should match /http:\/\/cdn.\.?steampowered.com\/v\/gfx\/apps\/211420\/capsule_sm_120\.jpg/
|
51
|
+
end
|
44
52
|
end
|
45
53
|
|
46
54
|
describe "Creation of a store DLC app with data" do
|
@@ -51,6 +59,10 @@ describe "Store", :vcr do
|
|
51
59
|
it "sets dlc flag" do
|
52
60
|
subject.dlc?.should be_true
|
53
61
|
end
|
62
|
+
|
63
|
+
it "sets the dlc_app_id" do
|
64
|
+
subject.dlc_app_id.should eq 8930
|
65
|
+
end
|
54
66
|
end
|
55
67
|
|
56
68
|
describe "Creation of a store App with multiple offers" do
|
@@ -4,9 +4,8 @@ require 'spec_helper'
|
|
4
4
|
|
5
5
|
describe Stew::Store::App do
|
6
6
|
let(:response){open("spec/fixtures/store/apps/#{id}.txt")}
|
7
|
-
#let(:document){Nokogiri.HTML(response)}
|
8
7
|
|
9
|
-
subject{Stew::Store::App.new(response)}
|
8
|
+
subject{Stew::Store::App.new(response, id)}
|
10
9
|
|
11
10
|
describe "attributes" do
|
12
11
|
context "when the parse is successful" do
|
@@ -56,6 +55,22 @@ describe Stew::Store::App do
|
|
56
55
|
end
|
57
56
|
end
|
58
57
|
|
58
|
+
describe ".dlc_app_id" do
|
59
|
+
context "when the app is not DLC" do
|
60
|
+
it "returns nil" do
|
61
|
+
subject.dlc_app_id.should be_nil
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
context "when the app is DLC" do
|
66
|
+
let(:id){16870}
|
67
|
+
|
68
|
+
it "returns true" do
|
69
|
+
subject.dlc_app_id.should eq 8930
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
59
74
|
describe ".developer" do
|
60
75
|
it "returns the developer" do
|
61
76
|
subject.developer.should eq 'FromSoftware'
|
@@ -90,12 +105,41 @@ describe Stew::Store::App do
|
|
90
105
|
end
|
91
106
|
end
|
92
107
|
|
108
|
+
describe ".regular_price" do
|
109
|
+
context "when the app is not on sale" do
|
110
|
+
it "returns the price" do
|
111
|
+
subject.regular_price.should eq Money.new(3999, 'EUR')
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
context "when the app is on sale" do
|
116
|
+
let(:id){211400}
|
117
|
+
let(:response){open("spec/fixtures/store/apps/#{id}_sale.txt")}
|
118
|
+
|
119
|
+
it "returns the price of the app when it is not on sale" do
|
120
|
+
subject.regular_price.should eq Money.new(1199, 'EUR')
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
93
125
|
describe ".free?" do
|
94
126
|
it "returns true if the the app is free" do
|
95
127
|
subject.free?.should be_false
|
96
128
|
end
|
97
129
|
end
|
98
130
|
|
131
|
+
describe ".header_image" do
|
132
|
+
it "return the URL of the header image" do
|
133
|
+
subject.header_image.should eq 'http://cdn.steampowered.com/v/gfx/apps/211420/header_292x136.jpg'
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
describe ".capsule_image" do
|
138
|
+
it "return the URL of the capsule image" do
|
139
|
+
subject.capsule_image.should eq 'http://cdn2.steampowered.com/v/gfx/apps/211420/capsule_sm_120.jpg'
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
99
143
|
describe "offers" do
|
100
144
|
it "creates an AppOffers instance with the offer node" do
|
101
145
|
subject.offers.count.should eq 1
|
@@ -122,7 +166,7 @@ describe Stew::Store::App do
|
|
122
166
|
|
123
167
|
describe ".dlc?" do
|
124
168
|
it "should be nil" do
|
125
|
-
subject.dlc?.should
|
169
|
+
subject.dlc?.should be_false
|
126
170
|
end
|
127
171
|
end
|
128
172
|
|
@@ -137,6 +181,12 @@ describe Stew::Store::App do
|
|
137
181
|
subject.price.should be_nil
|
138
182
|
end
|
139
183
|
end
|
184
|
+
|
185
|
+
describe ".header_image" do
|
186
|
+
it "should be nil" do
|
187
|
+
subject.header_image.should be_nil
|
188
|
+
end
|
189
|
+
end
|
140
190
|
end
|
141
191
|
end
|
142
192
|
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Stew::Store::Sale do
|
6
|
+
subject{Stew::Store::Sale.new(Nokogiri::HTML(response))}
|
7
|
+
|
8
|
+
context "a broken sale with no original price" do
|
9
|
+
let(:response){File.new("spec/fixtures/store/sales/broken_sale.txt").read}
|
10
|
+
|
11
|
+
it "sets the original price to the discounted price" do
|
12
|
+
subject.original_price.should eq subject.price
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context "a proper sale" do
|
17
|
+
let(:response){File.new("spec/fixtures/store/sales/sale.txt").read}
|
18
|
+
|
19
|
+
describe "#name" do
|
20
|
+
let(:expected_name){"Tomb Raider"}
|
21
|
+
|
22
|
+
it "returns the name" do
|
23
|
+
subject.name.should eq expected_name
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "#price" do
|
28
|
+
let(:expected_price){Money.new("4499", :usd)}
|
29
|
+
|
30
|
+
it "returns the price" do
|
31
|
+
subject.price.should eq expected_price
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe "#original_price" do
|
36
|
+
let(:expected_original_price){Money.new("4999", :usd)}
|
37
|
+
|
38
|
+
it "returns the original price" do
|
39
|
+
subject.original_price.should eq expected_original_price
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "#app_id" do
|
44
|
+
let(:expected_app_id){203160}
|
45
|
+
|
46
|
+
it "returns the app id" do
|
47
|
+
subject.app_id.should eq expected_app_id
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Stew::Store::SalesClient" do
|
4
|
+
let(:client){double('sales_client')}
|
5
|
+
let(:response){open("spec/fixtures/store/sales/sales.txt")}
|
6
|
+
let(:region){:se}
|
7
|
+
subject{Stew::Store::SalesClient.new({:client => client})}
|
8
|
+
|
9
|
+
describe "sales" do
|
10
|
+
context "when no specific region is selected" do
|
11
|
+
it "sends the correct message to it's client" do
|
12
|
+
expected_options = {:cc => Stew.config[:default_region], :l => 'english', :tab => 'Discounts', :start => 0, :count => 10000}
|
13
|
+
client.should_receive(:get).with("/search/tab", expected_options).and_return(response)
|
14
|
+
Stew::Store::Sales.should_receive(:new).with(response)
|
15
|
+
subject.sales
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context "when a region is given" do
|
20
|
+
it "sends the correct message to it's client" do
|
21
|
+
expected_options = {:cc => region, :l => 'english', :tab => 'Discounts', :start => 0, :count => 10000}
|
22
|
+
client.should_receive(:get).with("/search/tab", expected_options).and_return(response)
|
23
|
+
Stew::Store::Sales.should_receive(:new).with(response)
|
24
|
+
subject.sales(region)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -10,7 +10,7 @@ describe "Stew::Store::StoreClient" do
|
|
10
10
|
let(:id) {211420}
|
11
11
|
it "sends the correct message to its client" do
|
12
12
|
client.should_receive(:get).with("/app/#{id}", {:cc => region}).and_return(response)
|
13
|
-
Stew::Store::App.should_receive(:new).with(response)
|
13
|
+
Stew::Store::App.should_receive(:new).with(response, id)
|
14
14
|
subject.app(id)
|
15
15
|
end
|
16
16
|
end
|
@@ -21,7 +21,7 @@ describe "Stew::Store::StoreClient" do
|
|
21
21
|
context "when given an integer" do
|
22
22
|
it "creates an app with the given integer as id" do
|
23
23
|
client.stub(:get).with("/app/#{id}", {:cc => :us}).and_return(response)
|
24
|
-
Stew::Store::App.should_receive(:new).with(response)
|
24
|
+
Stew::Store::App.should_receive(:new).with(response, id)
|
25
25
|
subject.create_app(id)
|
26
26
|
end
|
27
27
|
end
|
@@ -32,7 +32,7 @@ describe "Stew::Store::StoreClient" do
|
|
32
32
|
|
33
33
|
it "creates an app" do
|
34
34
|
client.stub(:get).with("/app/#{id}", {:cc => region}).and_return(response)
|
35
|
-
Stew::Store::App.should_receive(:new).with(response)
|
35
|
+
Stew::Store::App.should_receive(:new).with(response, id)
|
36
36
|
subject.create_app(url)
|
37
37
|
end
|
38
38
|
end
|
@@ -42,7 +42,7 @@ describe "Stew::Store::StoreClient" do
|
|
42
42
|
|
43
43
|
it "creates an app" do
|
44
44
|
client.stub(:get).with("/app/#{id}", {:cc => :us}).and_return(response)
|
45
|
-
Stew::Store::App.should_receive(:new).with(response)
|
45
|
+
Stew::Store::App.should_receive(:new).with(response, id)
|
46
46
|
subject.create_app(url)
|
47
47
|
end
|
48
48
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -13,11 +13,12 @@ RSpec.configure do |config|
|
|
13
13
|
config.run_all_when_everything_filtered = true
|
14
14
|
config.filter_run :focus
|
15
15
|
config.order = 'random'
|
16
|
+
config.fail_fast = true
|
16
17
|
end
|
17
18
|
|
18
19
|
VCR.configure do |c|
|
19
20
|
c.cassette_library_dir = 'spec/fixtures/cassette_library'
|
20
21
|
c.hook_into :webmock
|
21
22
|
c.configure_rspec_metadata!
|
22
|
-
c.default_cassette_options = {:re_record_interval => 3600*24}
|
23
|
+
c.default_cassette_options = {:re_record_interval => 3600*24, :record => :new_episodes}
|
23
24
|
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stew
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
5
|
-
prerelease:
|
4
|
+
version: 0.5.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Magnus Skog
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-04-08 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rspec
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ! '>='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: guard
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ! '>='
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ! '>='
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: guard-rspec
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ! '>='
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ! '>='
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: vcr
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ! '>='
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ! '>='
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: webmock
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ! '>='
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ! '>='
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,7 +83,6 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: ci_reporter
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - ! '>='
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,7 +90,6 @@ dependencies:
|
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - ! '>='
|
108
95
|
- !ruby/object:Gem::Version
|
@@ -110,7 +97,6 @@ dependencies:
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: rake
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
101
|
- - ! '>='
|
116
102
|
- !ruby/object:Gem::Version
|
@@ -118,7 +104,6 @@ dependencies:
|
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
108
|
- - ! '>='
|
124
109
|
- !ruby/object:Gem::Version
|
@@ -126,7 +111,6 @@ dependencies:
|
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: simplecov
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
115
|
- - ! '>='
|
132
116
|
- !ruby/object:Gem::Version
|
@@ -134,7 +118,6 @@ dependencies:
|
|
134
118
|
type: :development
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
122
|
- - ! '>='
|
140
123
|
- !ruby/object:Gem::Version
|
@@ -142,7 +125,6 @@ dependencies:
|
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
126
|
name: simplecov-rcov
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
129
|
- - ! '>='
|
148
130
|
- !ruby/object:Gem::Version
|
@@ -150,7 +132,6 @@ dependencies:
|
|
150
132
|
type: :development
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
136
|
- - ! '>='
|
156
137
|
- !ruby/object:Gem::Version
|
@@ -158,7 +139,6 @@ dependencies:
|
|
158
139
|
- !ruby/object:Gem::Dependency
|
159
140
|
name: rb-inotify
|
160
141
|
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
142
|
requirements:
|
163
143
|
- - ! '>='
|
164
144
|
- !ruby/object:Gem::Version
|
@@ -166,7 +146,6 @@ dependencies:
|
|
166
146
|
type: :development
|
167
147
|
prerelease: false
|
168
148
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
149
|
requirements:
|
171
150
|
- - ! '>='
|
172
151
|
- !ruby/object:Gem::Version
|
@@ -174,7 +153,6 @@ dependencies:
|
|
174
153
|
- !ruby/object:Gem::Dependency
|
175
154
|
name: yard
|
176
155
|
requirement: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
156
|
requirements:
|
179
157
|
- - ! '>='
|
180
158
|
- !ruby/object:Gem::Version
|
@@ -182,7 +160,6 @@ dependencies:
|
|
182
160
|
type: :development
|
183
161
|
prerelease: false
|
184
162
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
-
none: false
|
186
163
|
requirements:
|
187
164
|
- - ! '>='
|
188
165
|
- !ruby/object:Gem::Version
|
@@ -190,7 +167,6 @@ dependencies:
|
|
190
167
|
- !ruby/object:Gem::Dependency
|
191
168
|
name: rdiscount
|
192
169
|
requirement: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
170
|
requirements:
|
195
171
|
- - ! '>='
|
196
172
|
- !ruby/object:Gem::Version
|
@@ -198,7 +174,6 @@ dependencies:
|
|
198
174
|
type: :development
|
199
175
|
prerelease: false
|
200
176
|
version_requirements: !ruby/object:Gem::Requirement
|
201
|
-
none: false
|
202
177
|
requirements:
|
203
178
|
- - ! '>='
|
204
179
|
- !ruby/object:Gem::Version
|
@@ -206,7 +181,6 @@ dependencies:
|
|
206
181
|
- !ruby/object:Gem::Dependency
|
207
182
|
name: multi_xml
|
208
183
|
requirement: !ruby/object:Gem::Requirement
|
209
|
-
none: false
|
210
184
|
requirements:
|
211
185
|
- - ! '>='
|
212
186
|
- !ruby/object:Gem::Version
|
@@ -214,7 +188,6 @@ dependencies:
|
|
214
188
|
type: :runtime
|
215
189
|
prerelease: false
|
216
190
|
version_requirements: !ruby/object:Gem::Requirement
|
217
|
-
none: false
|
218
191
|
requirements:
|
219
192
|
- - ! '>='
|
220
193
|
- !ruby/object:Gem::Version
|
@@ -222,7 +195,6 @@ dependencies:
|
|
222
195
|
- !ruby/object:Gem::Dependency
|
223
196
|
name: nokogiri
|
224
197
|
requirement: !ruby/object:Gem::Requirement
|
225
|
-
none: false
|
226
198
|
requirements:
|
227
199
|
- - ! '>='
|
228
200
|
- !ruby/object:Gem::Version
|
@@ -230,7 +202,6 @@ dependencies:
|
|
230
202
|
type: :runtime
|
231
203
|
prerelease: false
|
232
204
|
version_requirements: !ruby/object:Gem::Requirement
|
233
|
-
none: false
|
234
205
|
requirements:
|
235
206
|
- - ! '>='
|
236
207
|
- !ruby/object:Gem::Version
|
@@ -238,7 +209,6 @@ dependencies:
|
|
238
209
|
- !ruby/object:Gem::Dependency
|
239
210
|
name: faraday
|
240
211
|
requirement: !ruby/object:Gem::Requirement
|
241
|
-
none: false
|
242
212
|
requirements:
|
243
213
|
- - ! '>='
|
244
214
|
- !ruby/object:Gem::Version
|
@@ -246,7 +216,6 @@ dependencies:
|
|
246
216
|
type: :runtime
|
247
217
|
prerelease: false
|
248
218
|
version_requirements: !ruby/object:Gem::Requirement
|
249
|
-
none: false
|
250
219
|
requirements:
|
251
220
|
- - ! '>='
|
252
221
|
- !ruby/object:Gem::Version
|
@@ -254,7 +223,6 @@ dependencies:
|
|
254
223
|
- !ruby/object:Gem::Dependency
|
255
224
|
name: faraday_middleware
|
256
225
|
requirement: !ruby/object:Gem::Requirement
|
257
|
-
none: false
|
258
226
|
requirements:
|
259
227
|
- - ! '>='
|
260
228
|
- !ruby/object:Gem::Version
|
@@ -262,7 +230,6 @@ dependencies:
|
|
262
230
|
type: :runtime
|
263
231
|
prerelease: false
|
264
232
|
version_requirements: !ruby/object:Gem::Requirement
|
265
|
-
none: false
|
266
233
|
requirements:
|
267
234
|
- - ! '>='
|
268
235
|
- !ruby/object:Gem::Version
|
@@ -270,7 +237,6 @@ dependencies:
|
|
270
237
|
- !ruby/object:Gem::Dependency
|
271
238
|
name: money
|
272
239
|
requirement: !ruby/object:Gem::Requirement
|
273
|
-
none: false
|
274
240
|
requirements:
|
275
241
|
- - ! '>='
|
276
242
|
- !ruby/object:Gem::Version
|
@@ -278,7 +244,6 @@ dependencies:
|
|
278
244
|
type: :runtime
|
279
245
|
prerelease: false
|
280
246
|
version_requirements: !ruby/object:Gem::Requirement
|
281
|
-
none: false
|
282
247
|
requirements:
|
283
248
|
- - ! '>='
|
284
249
|
- !ruby/object:Gem::Version
|
@@ -313,6 +278,9 @@ files:
|
|
313
278
|
- lib/stew/store/app_offer.rb
|
314
279
|
- lib/stew/store/app_offer_sale.rb
|
315
280
|
- lib/stew/store/app_offers.rb
|
281
|
+
- lib/stew/store/sale.rb
|
282
|
+
- lib/stew/store/sales.rb
|
283
|
+
- lib/stew/store/sales_client.rb
|
316
284
|
- lib/stew/store/store_client.rb
|
317
285
|
- lib/stew/store/web_client.rb
|
318
286
|
- lib/stew/version.rb
|
@@ -333,7 +301,13 @@ files:
|
|
333
301
|
- spec/fixtures/store/apps/49520.txt
|
334
302
|
- spec/fixtures/store/apps/49520_offers.txt
|
335
303
|
- spec/fixtures/store/apps/no_app.txt
|
304
|
+
- spec/fixtures/store/sales/broken_sale.txt
|
305
|
+
- spec/fixtures/store/sales/broken_sales.txt
|
306
|
+
- spec/fixtures/store/sales/sale.txt
|
307
|
+
- spec/fixtures/store/sales/sales.txt
|
308
|
+
- spec/integration/broken_sales_integration_spec.rb
|
336
309
|
- spec/integration/community_integration_spec.rb
|
310
|
+
- spec/integration/sales_integration_spec.rb
|
337
311
|
- spec/integration/store_integration_spec.rb
|
338
312
|
- spec/lib/stew/community/community_client_spec.rb
|
339
313
|
- spec/lib/stew/community/profile_friends_spec.rb
|
@@ -346,6 +320,9 @@ files:
|
|
346
320
|
- spec/lib/stew/store/app_offer_spec.rb
|
347
321
|
- spec/lib/stew/store/app_offers_spec.rb
|
348
322
|
- spec/lib/stew/store/app_spec.rb
|
323
|
+
- spec/lib/stew/store/sale_spec.rb
|
324
|
+
- spec/lib/stew/store/sales_client_spec.rb
|
325
|
+
- spec/lib/stew/store/sales_spec.rb
|
349
326
|
- spec/lib/stew/store/store_client_spec.rb
|
350
327
|
- spec/lib/stew/store/web_client_spec.rb
|
351
328
|
- spec/lib/stew_spec.rb
|
@@ -353,33 +330,26 @@ files:
|
|
353
330
|
- stew.gemspec
|
354
331
|
homepage: https://github.com/mskog/stew
|
355
332
|
licenses: []
|
333
|
+
metadata: {}
|
356
334
|
post_install_message:
|
357
335
|
rdoc_options: []
|
358
336
|
require_paths:
|
359
337
|
- lib
|
360
338
|
required_ruby_version: !ruby/object:Gem::Requirement
|
361
|
-
none: false
|
362
339
|
requirements:
|
363
340
|
- - ! '>='
|
364
341
|
- !ruby/object:Gem::Version
|
365
342
|
version: '0'
|
366
|
-
segments:
|
367
|
-
- 0
|
368
|
-
hash: -5319004060931315
|
369
343
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
370
|
-
none: false
|
371
344
|
requirements:
|
372
345
|
- - ! '>='
|
373
346
|
- !ruby/object:Gem::Version
|
374
347
|
version: '0'
|
375
|
-
segments:
|
376
|
-
- 0
|
377
|
-
hash: -5319004060931315
|
378
348
|
requirements: []
|
379
349
|
rubyforge_project:
|
380
|
-
rubygems_version:
|
350
|
+
rubygems_version: 2.0.0.rc.2
|
381
351
|
signing_key:
|
382
|
-
specification_version:
|
352
|
+
specification_version: 4
|
383
353
|
summary: A client for the Steam Gaming service.
|
384
354
|
test_files:
|
385
355
|
- spec/fixtures/profiles/4d.txt
|
@@ -399,7 +369,13 @@ test_files:
|
|
399
369
|
- spec/fixtures/store/apps/49520.txt
|
400
370
|
- spec/fixtures/store/apps/49520_offers.txt
|
401
371
|
- spec/fixtures/store/apps/no_app.txt
|
372
|
+
- spec/fixtures/store/sales/broken_sale.txt
|
373
|
+
- spec/fixtures/store/sales/broken_sales.txt
|
374
|
+
- spec/fixtures/store/sales/sale.txt
|
375
|
+
- spec/fixtures/store/sales/sales.txt
|
376
|
+
- spec/integration/broken_sales_integration_spec.rb
|
402
377
|
- spec/integration/community_integration_spec.rb
|
378
|
+
- spec/integration/sales_integration_spec.rb
|
403
379
|
- spec/integration/store_integration_spec.rb
|
404
380
|
- spec/lib/stew/community/community_client_spec.rb
|
405
381
|
- spec/lib/stew/community/profile_friends_spec.rb
|
@@ -412,6 +388,9 @@ test_files:
|
|
412
388
|
- spec/lib/stew/store/app_offer_spec.rb
|
413
389
|
- spec/lib/stew/store/app_offers_spec.rb
|
414
390
|
- spec/lib/stew/store/app_spec.rb
|
391
|
+
- spec/lib/stew/store/sale_spec.rb
|
392
|
+
- spec/lib/stew/store/sales_client_spec.rb
|
393
|
+
- spec/lib/stew/store/sales_spec.rb
|
415
394
|
- spec/lib/stew/store/store_client_spec.rb
|
416
395
|
- spec/lib/stew/store/web_client_spec.rb
|
417
396
|
- spec/lib/stew_spec.rb
|