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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bcb589dbd6d876a5691b061847e9a3a349a034c3
4
- data.tar.gz: 6418bd7b7a7c3b6f4fc55577c1ef414208ce3ad5
3
+ metadata.gz: 894fee12bdb11e498b1750d9cd15e15300bee47e
4
+ data.tar.gz: f88a49340b5a9bf425de6aab3b86f1b2da469e94
5
5
  SHA512:
6
- metadata.gz: 90d18da71c8c9504088b6a3a53956272430b512b72761143ad39669e7000054282f0c698eb455861ff3534e9a3b5c7c1563e27a7d81fe859ace62635025ba014
7
- data.tar.gz: a0bdd6b0b0394126d92cf5f55cab2b7f70f19f88afe6d3de41101e7990ddd2c4c2d4fc42ff81c52d4d044e536e5d749dcb9e8ef350ea23d6c43771eb4b305614
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-07'
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'
@@ -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
- @items = @response[:items].inject({}) do |items, (name)|
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
  ############################
@@ -1,3 +1,3 @@
1
1
  module BackpackTF
2
- VERSION = "0.8.0"
2
+ VERSION = "0.8.1"
3
3
  end
@@ -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 the keys are Strings' do
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.0
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-07 00:00:00.000000000 Z
11
+ date: 2015-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty