backpack_tf 0.8.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
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