backpack_tf 0.8.1 → 0.8.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/backpack_tf.gemspec +4 -4
- data/lib/backpack_tf/assets/attribute_controlled_attached_particles.json +667 -0
- data/lib/backpack_tf/client.rb +5 -5
- data/lib/backpack_tf/item.rb +29 -19
- data/lib/backpack_tf/item_price.rb +100 -16
- data/lib/backpack_tf/response.rb +3 -0
- data/lib/backpack_tf/version.rb +1 -1
- data/spec/backpack_tf/client_spec.rb +7 -0
- data/spec/backpack_tf/currency_spec.rb +62 -58
- data/spec/backpack_tf/inherited_class_methods_spec.rb +100 -0
- data/spec/backpack_tf/item_price_spec.rb +106 -42
- data/spec/backpack_tf/item_spec.rb +89 -128
- data/spec/backpack_tf/price_spec.rb +7 -22
- data/spec/backpack_tf/response_spec.rb +16 -3
- data/spec/backpack_tf/special_item_spec.rb +34 -29
- data/spec/backpack_tf/user_listing_spec.rb +22 -24
- data/spec/backpack_tf/user_spec.rb +28 -30
- data/spec/fixtures/item_crate.json +65 -0
- data/spec/fixtures/item_typical.json +1 -1
- data/spec/fixtures/item_unusual.json +1 -1
- data/spec/fixtures/item_with_unconventional_structure.json +1 -1
- data/spec/fixtures/item_without_defindex.json +1 -1
- data/spec/spec_helper.rb +47 -0
- metadata +9 -24
@@ -11,10 +11,6 @@ module BackpackTF
|
|
11
11
|
Response.hash_keys_to_sym(fixture)
|
12
12
|
}
|
13
13
|
|
14
|
-
it 'responds to these inherited class methods' do
|
15
|
-
expect(described_class).to respond_to :responses, :to_sym, :interface, :hash_keys_to_sym
|
16
|
-
end
|
17
|
-
|
18
14
|
it 'has these default attributes' do
|
19
15
|
expect(described_class.interface).to eq :IGetPrices
|
20
16
|
end
|
@@ -23,37 +19,24 @@ module BackpackTF
|
|
23
19
|
expect{described_class.new}.to raise_error RuntimeError
|
24
20
|
end
|
25
21
|
|
26
|
-
describe '::
|
27
|
-
|
28
|
-
|
29
|
-
fetched_prices = bp.fetch(:prices)
|
30
|
-
Response.responses(described_class.to_sym => fetched_prices)
|
31
|
-
expect(Response.responses[described_class.to_sym]).to eq json_obj
|
22
|
+
describe '::response' do
|
23
|
+
before :all do
|
24
|
+
expect(described_class.response).to be_nil
|
32
25
|
end
|
33
|
-
end
|
34
26
|
|
35
|
-
describe '::response' do
|
36
27
|
before :each do
|
37
28
|
stub_http_response_with('prices.json')
|
38
29
|
fetched_prices = bp.fetch(:prices)
|
39
|
-
|
30
|
+
bp.update(described_class, fetched_prices)
|
40
31
|
end
|
41
32
|
|
42
33
|
after :all do
|
43
34
|
Response.responses(:reset => :confirm)
|
44
35
|
expect(Response.responses).to be_empty
|
45
36
|
expect(described_class.response).to be_nil
|
37
|
+
expect(described_class.items).to be_nil
|
46
38
|
end
|
47
39
|
|
48
|
-
it 'can access response information' do
|
49
|
-
expect(described_class.response).to eq json_obj
|
50
|
-
end
|
51
|
-
it "returns same info as the Response class calling Price key" do
|
52
|
-
expect(described_class.response).to eq Response.responses[described_class.to_sym]
|
53
|
-
end
|
54
|
-
it 'the response attribute should have these keys' do
|
55
|
-
expect(described_class.response.keys).to match_array [:success, :current_time, :raw_usd_value, :usd_currency, :usd_currency_index, :items]
|
56
|
-
end
|
57
40
|
it 'the keys of the response attribute should have these values' do
|
58
41
|
response = described_class.response
|
59
42
|
expect(response[:success]).to eq 1
|
@@ -75,6 +58,7 @@ module BackpackTF
|
|
75
58
|
after :all do
|
76
59
|
Response.responses(:reset => :confirm)
|
77
60
|
expect(Response.responses).to be_empty
|
61
|
+
described_class.class_eval { @items = nil }
|
78
62
|
end
|
79
63
|
|
80
64
|
it 'each key of hash is a String' do
|
@@ -99,6 +83,7 @@ module BackpackTF
|
|
99
83
|
after :all do
|
100
84
|
Response.responses(:reset => :confirm)
|
101
85
|
expect(Response.responses).to be_empty
|
86
|
+
described_class.class_eval { @items = nil }
|
102
87
|
end
|
103
88
|
|
104
89
|
it 'returns the fixture and sets to @@items variable' do
|
@@ -8,13 +8,13 @@ module BackpackTF
|
|
8
8
|
let(:json_obj) {
|
9
9
|
fixture = file_fixture('currencies.json')
|
10
10
|
fixture = JSON.parse(fixture)['response']
|
11
|
-
|
11
|
+
described_class.hash_keys_to_sym(fixture)
|
12
12
|
}
|
13
13
|
|
14
14
|
let(:more_json) {
|
15
15
|
fixture = file_fixture('currencies_updated.json')
|
16
16
|
fixture = JSON.parse(fixture)['response']
|
17
|
-
|
17
|
+
described_class.hash_keys_to_sym(fixture)
|
18
18
|
}
|
19
19
|
|
20
20
|
describe '::interface' do
|
@@ -32,6 +32,12 @@ module BackpackTF
|
|
32
32
|
describe '::responses' do
|
33
33
|
let (:faked_class_sym) { :'BackpackTF::FakedClass' }
|
34
34
|
|
35
|
+
after :all do
|
36
|
+
Response.responses(:reset => :confirm)
|
37
|
+
expect(Response.responses).to be_empty
|
38
|
+
expect(described_class.response).to be_nil
|
39
|
+
end
|
40
|
+
|
35
41
|
it 'returns a Hash object' do
|
36
42
|
expect(Response.responses).to be_instance_of Hash
|
37
43
|
end
|
@@ -43,7 +49,7 @@ module BackpackTF
|
|
43
49
|
end
|
44
50
|
end
|
45
51
|
|
46
|
-
context '
|
52
|
+
context 'resetting' do
|
47
53
|
before :each do
|
48
54
|
Response.responses(faked_class_sym => json_obj)
|
49
55
|
expect(Response.responses[faked_class_sym]).to eq json_obj
|
@@ -96,6 +102,13 @@ module BackpackTF
|
|
96
102
|
expect(Response.responses).not_to be_nil
|
97
103
|
end
|
98
104
|
end
|
105
|
+
|
106
|
+
end
|
107
|
+
|
108
|
+
describe '::response' do
|
109
|
+
it "returns nil when called by #{described_class}" do
|
110
|
+
expect(described_class.response).to be_nil
|
111
|
+
end
|
99
112
|
end
|
100
113
|
|
101
114
|
describe '::hash_keys_to_sym' do
|
@@ -10,64 +10,69 @@ module BackpackTF
|
|
10
10
|
Response.hash_keys_to_sym(fixture)
|
11
11
|
}
|
12
12
|
|
13
|
-
it 'responds to these methods' do
|
14
|
-
expect(described_class).to respond_to :responses, :interface, :hash_keys_to_sym
|
15
|
-
end
|
16
|
-
|
17
13
|
it 'has these default attributes' do
|
18
14
|
expect(described_class.interface).to eq :IGetSpecialItems
|
19
15
|
end
|
20
16
|
|
21
|
-
describe '::
|
22
|
-
before :
|
23
|
-
|
24
|
-
fetched_special_items = bp.fetch(:special_items, {:app_id=>440, :compress=>1})
|
25
|
-
Response.responses(described_class.to_sym => fetched_special_items)
|
26
|
-
end
|
27
|
-
it "SpecialItem can be accessed by calling the key, SpecialItem" do
|
28
|
-
expect(Response.responses[described_class.to_sym]).to eq json_obj
|
17
|
+
describe '::response' do
|
18
|
+
before :all do
|
19
|
+
expect(described_class.response).to be_nil
|
29
20
|
end
|
30
|
-
end
|
31
21
|
|
32
|
-
describe '::response' do
|
33
22
|
before :each do
|
34
23
|
stub_http_response_with('special_items.json')
|
35
|
-
fetched_special_items = bp.fetch(:special_items
|
36
|
-
|
37
|
-
end
|
38
|
-
it 'can access response information via the class method, ::response' do
|
39
|
-
expect(described_class.response).to eq json_obj
|
40
|
-
end
|
41
|
-
it "returns same results as calling Response.responses[:'BackpackTF::SpecialItem']" do
|
42
|
-
expect(described_class.response).to eq Response.responses[described_class.to_sym]
|
24
|
+
fetched_special_items = bp.fetch(:special_items)
|
25
|
+
bp.update(described_class, fetched_special_items)
|
43
26
|
end
|
44
|
-
|
45
|
-
|
27
|
+
|
28
|
+
after :all do
|
29
|
+
Response.responses(:reset => :confirm)
|
30
|
+
expect(Response.responses).to be_empty
|
31
|
+
expect(described_class.response).to be_nil
|
32
|
+
expect(described_class.items).to be_nil
|
46
33
|
end
|
34
|
+
|
47
35
|
it 'the keys of the response attribute should have these values' do
|
48
|
-
|
49
|
-
expect(
|
50
|
-
expect(
|
36
|
+
response = described_class.response
|
37
|
+
expect(response[:success]).to eq 1
|
38
|
+
expect(response[:message]).to eq nil
|
39
|
+
expect(response[:current_time]).to eq 1431108270
|
51
40
|
end
|
52
41
|
end
|
53
42
|
|
54
43
|
describe '::items' do
|
44
|
+
before :all do
|
45
|
+
expect(described_class.response).to be_nil
|
46
|
+
expect(described_class.items).to be_nil
|
47
|
+
end
|
48
|
+
|
55
49
|
before :each do
|
56
50
|
Response.responses(:reset => :confirm)
|
57
51
|
expect(Response.responses).to be_empty
|
52
|
+
|
58
53
|
stub_http_response_with('special_items.json')
|
59
|
-
fetched_special_items = bp.fetch(:special_items
|
60
|
-
|
54
|
+
fetched_special_items = bp.fetch(:special_items)
|
55
|
+
bp.update(described_class, fetched_special_items)
|
56
|
+
end
|
57
|
+
|
58
|
+
after :all do
|
59
|
+
Response.responses(:reset => :confirm)
|
60
|
+
expect(Response.responses).to be_empty
|
61
|
+
described_class.class_eval { @items = nil }
|
61
62
|
end
|
63
|
+
|
62
64
|
it 'returns the fixture and sets to @@items variable' do
|
63
65
|
expect(described_class.items).not_to be_nil
|
64
66
|
end
|
67
|
+
|
65
68
|
it 'is a Hash object' do
|
66
69
|
expect(described_class.items).to be_instance_of Hash
|
67
70
|
end
|
71
|
+
|
68
72
|
it 'has these 2 keys' do
|
69
73
|
expect(described_class.items.keys).to match_array [':weed:', 'Random Craft Hat']
|
70
74
|
end
|
75
|
+
|
71
76
|
it 'each key points to an instance of SpecialItem' do
|
72
77
|
expect(described_class.items.values).to all be_a BackpackTF::SpecialItem
|
73
78
|
end
|
@@ -10,10 +10,6 @@ module BackpackTF
|
|
10
10
|
Response.hash_keys_to_sym(fixture)
|
11
11
|
}
|
12
12
|
|
13
|
-
it 'responds to these methods' do
|
14
|
-
expect(described_class).to respond_to :responses, :interface, :hash_keys_to_sym, :response, :listings
|
15
|
-
end
|
16
|
-
|
17
13
|
it 'has these default attributes' do
|
18
14
|
expect(described_class.interface).to eq :IGetUserListings
|
19
15
|
end
|
@@ -34,35 +30,25 @@ module BackpackTF
|
|
34
30
|
)
|
35
31
|
end
|
36
32
|
|
37
|
-
describe '::
|
38
|
-
|
39
|
-
|
40
|
-
stub_http_response_with('user_listing.json')
|
41
|
-
opts = { :compress => 1, :steamid => 76561197978210095 }
|
42
|
-
fetched_listings = bp.fetch(:user_listings, opts)
|
43
|
-
Response.responses(described_class.to_sym => fetched_listings)
|
44
|
-
end
|
45
|
-
it "can access response by calling the key, UserListing" do
|
46
|
-
expect(Response.responses[described_class.to_sym]).to eq json_obj
|
33
|
+
describe '::response' do
|
34
|
+
before :all do
|
35
|
+
expect(described_class.response).to be_nil
|
47
36
|
end
|
48
|
-
end
|
49
37
|
|
50
|
-
describe '::response' do
|
51
38
|
before :each do
|
52
39
|
stub_http_response_with('user_listing.json')
|
53
40
|
opts = { :compress => 1, :steamid => 76561197978210095 }
|
54
41
|
fetched_listings = bp.fetch(:user_listings, opts)
|
55
42
|
Response.responses(described_class.to_sym => fetched_listings)
|
56
43
|
end
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
expect(described_class.response).to
|
62
|
-
|
63
|
-
it 'the response attribute should have these keys' do
|
64
|
-
expect(described_class.response.keys).to match_array [:success, :current_time, :listings]
|
44
|
+
|
45
|
+
after :all do
|
46
|
+
Response.responses(:reset => :confirm)
|
47
|
+
expect(Response.responses).to be_empty
|
48
|
+
expect(described_class.response).to be_nil
|
49
|
+
expect(described_class.listings).to be_nil
|
65
50
|
end
|
51
|
+
|
66
52
|
it 'the keys of the response attribute should have these values' do
|
67
53
|
expect(described_class.response[:success]).to eq 1
|
68
54
|
expect(described_class.response[:message]).to eq nil
|
@@ -71,12 +57,24 @@ module BackpackTF
|
|
71
57
|
end
|
72
58
|
|
73
59
|
describe '::listings' do
|
60
|
+
before :all do
|
61
|
+
expect(described_class.response).to be_nil
|
62
|
+
expect(described_class.listings).to be_nil
|
63
|
+
end
|
64
|
+
|
74
65
|
before :each do
|
75
66
|
stub_http_response_with('user_listing.json')
|
76
67
|
opts = { :compress => 1, :steamid => 76561197978210095 }
|
77
68
|
fetched_listings = bp.fetch(:user_listings, opts)
|
78
69
|
Response.responses(described_class.to_sym => fetched_listings)
|
79
70
|
end
|
71
|
+
|
72
|
+
after :all do
|
73
|
+
Response.responses(:reset => :confirm)
|
74
|
+
expect(Response.responses).to be_empty
|
75
|
+
described_class.class_eval { @listings = nil }
|
76
|
+
end
|
77
|
+
|
80
78
|
it 'returns the fixture and sets to @@listings variable' do
|
81
79
|
expect(described_class.listings).not_to be_nil
|
82
80
|
end
|
@@ -10,10 +10,6 @@ module BackpackTF
|
|
10
10
|
Response.hash_keys_to_sym(fixture)
|
11
11
|
}
|
12
12
|
|
13
|
-
it 'responds to these methods' do
|
14
|
-
expect(described_class).to respond_to :responses, :interface, :hash_keys_to_sym
|
15
|
-
end
|
16
|
-
|
17
13
|
it 'has these default attributes' do
|
18
14
|
expect(described_class.interface).to eq :IGetUsers
|
19
15
|
end
|
@@ -33,35 +29,25 @@ module BackpackTF
|
|
33
29
|
)
|
34
30
|
end
|
35
31
|
|
36
|
-
describe '::
|
37
|
-
|
38
|
-
|
39
|
-
stub_http_response_with('users.json')
|
40
|
-
opts = {:compress => 1, :steamids => [76561198012598620,76561198045802942]}
|
41
|
-
fetched_users = bp.fetch(:special_items, opts)
|
42
|
-
Response.responses(described_class.to_sym => fetched_users)
|
43
|
-
end
|
44
|
-
it "User can be accessed by calling the key, User" do
|
45
|
-
expect(Response.responses[described_class.to_sym]).to eq json_obj
|
32
|
+
describe '::response' do
|
33
|
+
before :all do
|
34
|
+
expect(described_class.response).to be_nil
|
46
35
|
end
|
47
|
-
end
|
48
36
|
|
49
|
-
describe '::response' do
|
50
37
|
before :each do
|
51
38
|
stub_http_response_with('users.json')
|
52
|
-
opts = {:
|
53
|
-
fetched_users = bp.fetch(:
|
54
|
-
|
39
|
+
opts = {:steamids => [76561198012598620,76561198045802942]}
|
40
|
+
fetched_users = bp.fetch(:users, opts)
|
41
|
+
bp.update(described_class, fetched_users)
|
55
42
|
end
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
expect(described_class.response).to
|
61
|
-
|
62
|
-
it 'the response attribute should have these keys' do
|
63
|
-
expect(described_class.response.keys).to match_array [:success, :current_time, :players]
|
43
|
+
|
44
|
+
after :all do
|
45
|
+
Response.responses(:reset => :confirm)
|
46
|
+
expect(Response.responses).to be_empty
|
47
|
+
expect(described_class.response).to be_nil
|
48
|
+
expect(described_class.players).to be_nil
|
64
49
|
end
|
50
|
+
|
65
51
|
it 'the keys of the response attribute should have these values' do
|
66
52
|
expect(described_class.response[:success]).to eq 1
|
67
53
|
expect(described_class.response[:message]).to eq nil
|
@@ -70,12 +56,24 @@ module BackpackTF
|
|
70
56
|
end
|
71
57
|
|
72
58
|
describe '::players' do
|
59
|
+
before :all do
|
60
|
+
expect(described_class.response).to be_nil
|
61
|
+
expect(described_class.players).to be_nil
|
62
|
+
end
|
63
|
+
|
73
64
|
before :each do
|
74
65
|
stub_http_response_with('users.json')
|
75
|
-
opts = {:
|
76
|
-
fetched_users = bp.fetch(:
|
77
|
-
|
66
|
+
opts = {:steamids => [76561198012598620,76561198045802942]}
|
67
|
+
fetched_users = bp.fetch(:users, opts)
|
68
|
+
bp.update(described_class, fetched_users)
|
69
|
+
end
|
70
|
+
|
71
|
+
after :all do
|
72
|
+
Response.responses(:reset => :confirm)
|
73
|
+
expect(Response.responses).to be_empty
|
74
|
+
described_class.class_eval { @players = nil }
|
78
75
|
end
|
76
|
+
|
79
77
|
it 'returns the fixture and sets to @@players variable' do
|
80
78
|
expect(described_class.players).not_to be_nil
|
81
79
|
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
{
|
2
|
+
"Mann Co. Supply Munition": {
|
3
|
+
"defindex": [
|
4
|
+
5734,
|
5
|
+
5735,
|
6
|
+
5742,
|
7
|
+
5752,
|
8
|
+
5781,
|
9
|
+
5802,
|
10
|
+
5803
|
11
|
+
],
|
12
|
+
"prices": {
|
13
|
+
"6": {
|
14
|
+
"Tradable": {
|
15
|
+
"Craftable": {
|
16
|
+
"82": {
|
17
|
+
"currency": "metal",
|
18
|
+
"value": 0.01,
|
19
|
+
"last_update": 1417567564,
|
20
|
+
"difference": -0.03,
|
21
|
+
"value_high": 0.03
|
22
|
+
},
|
23
|
+
"83": {
|
24
|
+
"currency": "metal",
|
25
|
+
"value": 0.05,
|
26
|
+
"last_update": 1422061240,
|
27
|
+
"difference": 0.02
|
28
|
+
},
|
29
|
+
"84": {
|
30
|
+
"currency": "metal",
|
31
|
+
"value": 0.01,
|
32
|
+
"last_update": 1423702834,
|
33
|
+
"difference": -0.06,
|
34
|
+
"value_high": 0.03
|
35
|
+
},
|
36
|
+
"85": {
|
37
|
+
"currency": "metal",
|
38
|
+
"value": 0.01,
|
39
|
+
"last_update": 1417904407,
|
40
|
+
"difference": -0.01
|
41
|
+
},
|
42
|
+
"90": {
|
43
|
+
"currency": "metal",
|
44
|
+
"value": 0.05,
|
45
|
+
"last_update": 1429293267,
|
46
|
+
"difference": -0.06
|
47
|
+
},
|
48
|
+
"91": {
|
49
|
+
"currency": "metal",
|
50
|
+
"value": 0.05,
|
51
|
+
"last_update": 1424623531,
|
52
|
+
"difference": -0.03
|
53
|
+
},
|
54
|
+
"92": {
|
55
|
+
"currency": "metal",
|
56
|
+
"value": 0.05,
|
57
|
+
"last_update": 1430304436,
|
58
|
+
"difference": -0.06
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
63
|
+
}
|
64
|
+
}
|
65
|
+
}
|