backpack_tf 0.8.0 → 0.8.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 +4 -4
- data/backpack_tf.gemspec +1 -1
- data/lib/backpack_tf/price.rb +9 -22
- data/lib/backpack_tf/version.rb +1 -1
- data/spec/backpack_tf/item_spec.rb +0 -11
- data/spec/backpack_tf/price_spec.rb +25 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 894fee12bdb11e498b1750d9cd15e15300bee47e
|
4
|
+
data.tar.gz: f88a49340b5a9bf425de6aab3b86f1b2da469e94
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ba9b68c317aaba8bcdcf54ea1f69df3fd9b109483fe26da50ea736376362b9b0454704b402c76daf5faaa3e2d8400a53eef2cb8e3e62fd1cea0ef4ed602bb8af
|
7
|
+
data.tar.gz: 5fc88aa3beffbacb080ceed00acccd9de6108eec9ea5730305a3d03fa5baf850b9e50e50bb11bd10c933b41cf76201c0a178a720b09dd16e944a0be2aa497006
|
data/backpack_tf.gemspec
CHANGED
@@ -2,7 +2,7 @@ require_relative './lib/backpack_tf/version.rb'
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'backpack_tf'
|
5
|
-
s.date = '2015-05-
|
5
|
+
s.date = '2015-05-09'
|
6
6
|
s.summary = 'a wrapper for the backpack.tf API'
|
7
7
|
s.author = 'Rafael Espinoza'
|
8
8
|
s.email = 'rafael@rafaelespinoza.com'
|
data/lib/backpack_tf/price.rb
CHANGED
@@ -17,16 +17,16 @@ module BackpackTF
|
|
17
17
|
@response = superclass.responses[to_sym]
|
18
18
|
end
|
19
19
|
|
20
|
-
def self.items
|
20
|
+
def self.items opt = nil
|
21
21
|
if @items.nil?
|
22
|
-
generate_items
|
22
|
+
@items = generate_items
|
23
23
|
else
|
24
24
|
@items
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
28
|
def self.generate_items
|
29
|
-
@
|
29
|
+
@response[:items].inject({}) do |items, (name)|
|
30
30
|
defindex = @response[:items][name]['defindex'][0]
|
31
31
|
|
32
32
|
if defindex.nil? || defindex < 0
|
@@ -39,6 +39,9 @@ module BackpackTF
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def self.find_item_by_name item_name, opt = nil
|
42
|
+
|
43
|
+
items if @items.nil?
|
44
|
+
|
42
45
|
if @items[item_name].nil?
|
43
46
|
raise KeyError, "item with the name #{item_name} was not found"
|
44
47
|
else
|
@@ -53,6 +56,9 @@ module BackpackTF
|
|
53
56
|
end
|
54
57
|
|
55
58
|
def self.random_item opt = nil
|
59
|
+
|
60
|
+
items if @items.nil?
|
61
|
+
|
56
62
|
case opt
|
57
63
|
when :prices, :price
|
58
64
|
@items[@items.keys.sample].prices
|
@@ -61,25 +67,6 @@ module BackpackTF
|
|
61
67
|
end
|
62
68
|
end
|
63
69
|
|
64
|
-
def self.generate_price_keys item_hash
|
65
|
-
raise TypeError unless item_hash.class == Hash
|
66
|
-
prices = item_hash['prices']
|
67
|
-
|
68
|
-
prices.each_pair.inject([]) do |gen_keys, (key, val)|
|
69
|
-
quality = BackpackTF::ItemPrice.qualities[key.to_i]
|
70
|
-
new_key = [quality.to_s]
|
71
|
-
|
72
|
-
tradability = val.keys.first
|
73
|
-
new_key << tradability
|
74
|
-
|
75
|
-
craftability = prices[key][tradability].keys.first
|
76
|
-
new_key << craftability
|
77
|
-
|
78
|
-
gen_keys << new_key.join('_')
|
79
|
-
end
|
80
|
-
|
81
|
-
end
|
82
|
-
|
83
70
|
############################
|
84
71
|
# INSTANCE METHODS
|
85
72
|
############################
|
data/lib/backpack_tf/version.rb
CHANGED
@@ -6,17 +6,6 @@ module BackpackTF
|
|
6
6
|
["Strange_Tradable_Craftable", "Collector's_Tradable_Craftable", "Vintage_Tradable_Craftable", "Unique_Tradable_Craftable", "Unique_Tradable_Non-Craftable"]
|
7
7
|
end
|
8
8
|
|
9
|
-
xdescribe '::generate_price_keys' do
|
10
|
-
it 'includes these keys' do
|
11
|
-
keys = Item.generate_price_keys(stub)
|
12
|
-
keys.each{ |key| expect(expected_keys).to include(key) }
|
13
|
-
end
|
14
|
-
it 'produces all of these keys' do
|
15
|
-
keys = Item.generate_price_keys(stub['prices'])
|
16
|
-
expect(keys).to match_array expected_keys
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
9
|
describe 'instance of Item' do
|
21
10
|
context 'a typical game item, which does not have any item qualities of Unusual' do
|
22
11
|
let(:item_name) { 'Kritzkrieg' }
|
@@ -66,6 +66,27 @@ module BackpackTF
|
|
66
66
|
end
|
67
67
|
|
68
68
|
describe '::generate_items' do
|
69
|
+
before :each do
|
70
|
+
stub_http_response_with('prices.json')
|
71
|
+
fetched_prices = bp.fetch(:prices)
|
72
|
+
bp.update(described_class, fetched_prices)
|
73
|
+
end
|
74
|
+
|
75
|
+
after :all do
|
76
|
+
Response.responses(:reset => :confirm)
|
77
|
+
expect(Response.responses).to be_empty
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'each key of hash is a String' do
|
81
|
+
expect(described_class.generate_items.keys).to all be_a String
|
82
|
+
end
|
83
|
+
it 'each value of hash is an Item object' do
|
84
|
+
expect(described_class.generate_items.values).to all be_an Item
|
85
|
+
end
|
86
|
+
it 'if an item does not have a valid `defindex`, then it is ignored' do
|
87
|
+
expect(described_class.generate_items['Random Craft Hat']).to be_nil
|
88
|
+
expect(described_class.generate_items[':weed:']).to be_nil
|
89
|
+
end
|
69
90
|
end
|
70
91
|
|
71
92
|
describe '::items' do
|
@@ -124,14 +145,13 @@ module BackpackTF
|
|
124
145
|
before :each do
|
125
146
|
stub_http_response_with('prices.json')
|
126
147
|
fetched_prices = bp.fetch(:prices)
|
127
|
-
|
128
148
|
bp.update(described_class, fetched_prices)
|
129
|
-
expect(described_class.items.values).to all be_an Item
|
130
149
|
end
|
131
150
|
|
132
151
|
after :each do
|
133
152
|
Response.responses(:reset => :confirm)
|
134
153
|
expect(Response.responses).to be_empty
|
154
|
+
described_class.class_eval { @items = nil }
|
135
155
|
end
|
136
156
|
|
137
157
|
it 'returns Item object for the item matching the name' do
|
@@ -149,24 +169,24 @@ module BackpackTF
|
|
149
169
|
before :each do
|
150
170
|
stub_http_response_with('prices.json')
|
151
171
|
fetched_prices = bp.fetch(:prices)
|
152
|
-
|
153
172
|
bp.update(described_class, fetched_prices)
|
154
|
-
expect(described_class.items.values).to all be_an Item
|
155
173
|
end
|
156
174
|
|
157
175
|
after :each do
|
158
176
|
Response.responses(:reset => :confirm)
|
159
177
|
expect(Response.responses).to be_empty
|
178
|
+
described_class.class_eval { @items = nil }
|
160
179
|
end
|
161
180
|
|
162
181
|
it 'returns a name of an Item object' do
|
163
182
|
item = described_class.random_item
|
164
183
|
expect(described_class.items.keys.include? item).to be_truthy
|
165
184
|
end
|
185
|
+
|
166
186
|
context 'asking for prices property' do
|
167
187
|
let(:item_prices) { described_class.random_item :price }
|
168
188
|
|
169
|
-
it 'returns a Hash object where
|
189
|
+
it 'returns a Hash object where keys are String objects' do
|
170
190
|
expect(item_prices.keys).to all be_a String
|
171
191
|
end
|
172
192
|
it 'returns a Hash object where values are ItemPrice objects' do
|
@@ -175,8 +195,5 @@ module BackpackTF
|
|
175
195
|
end
|
176
196
|
end
|
177
197
|
|
178
|
-
describe '::generate_price_keys' do
|
179
|
-
end
|
180
|
-
|
181
198
|
end
|
182
199
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: backpack_tf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rafael Espinoza
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|