carddb 0.5.7 → 0.5.8

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
  SHA256:
3
- metadata.gz: 17f9d7d913ed21e536175d07c8afa6ea53d4d7cf42f5a14803d4fa37071283e1
4
- data.tar.gz: 7ac9d30ab0f32dba3708204b62b48574d63ca3419bb1d036a981b8510458a819
3
+ metadata.gz: e96ae705e2f67a17c453bdb57a8b291f42839870807ae5dc882a9a6ebb4b7878
4
+ data.tar.gz: 238def5089c381ad922eeea2a27a8ab1f1887a4a5c488b88647031f4f17b3320
5
5
  SHA512:
6
- metadata.gz: bc9bcebeaf42c0a2cf765e8eaf642c592e1a5905f1b8f3f5003005963e473caa71abcc04e97a37f6499ae45dd1445cafe75e65306bff4fd24f9677f9260e36f7
7
- data.tar.gz: cd85a07b4429462cf62e360687723182cfc7213c6dd1c89d79f8d243cb5f136ab455e4f100edae85712820035d97be903e154bdc4e18137c95b8f09c22f70173
6
+ metadata.gz: 9575709cff9a6271a767b6cd9a5753f055e7a4f313aae5ac9a7d415d420653a444f2c84aaf5c087f0a86b2870243439f5847f968f3aa9e087e0b68ce449f5f1b
7
+ data.tar.gz: 7b062b0426bc721eb2d0e4ecfea71acad4290a517bb8e21bc6191fc96388e55ef1782fbaff80770c08f5cb88a9d5465030a3b7018a70ece4e2eda8f1fd4ac6fa
data/.rspec_status CHANGED
@@ -1,46 +1,47 @@
1
1
  example_id | status | run_time |
2
2
  ---------------------------------------------------------- | ------ | --------------- |
3
- ./spec/carddb/batch_spec.rb[1:1] | passed | 0.00927 seconds |
4
- ./spec/carddb/client_spec.rb[1:1:1] | passed | 0.00006 seconds |
5
- ./spec/carddb/client_spec.rb[1:1:2] | passed | 0.00003 seconds |
6
- ./spec/carddb/client_spec.rb[1:1:3] | passed | 0.00008 seconds |
7
- ./spec/carddb/client_spec.rb[1:1:4] | passed | 0.00004 seconds |
8
- ./spec/carddb/client_spec.rb[1:2:1] | passed | 0.00034 seconds |
9
- ./spec/carddb/client_spec.rb[1:2:2] | passed | 0.00033 seconds |
10
- ./spec/carddb/client_spec.rb[1:3:1] | passed | 0.00004 seconds |
3
+ ./spec/carddb/batch_spec.rb[1:1] | passed | 0.01141 seconds |
4
+ ./spec/carddb/batch_spec.rb[1:2] | passed | 0.00525 seconds |
5
+ ./spec/carddb/client_spec.rb[1:1:1] | passed | 0.0001 seconds |
6
+ ./spec/carddb/client_spec.rb[1:1:2] | passed | 0.00006 seconds |
7
+ ./spec/carddb/client_spec.rb[1:1:3] | passed | 0.00006 seconds |
8
+ ./spec/carddb/client_spec.rb[1:1:4] | passed | 0.00003 seconds |
9
+ ./spec/carddb/client_spec.rb[1:2:1] | passed | 0.00005 seconds |
10
+ ./spec/carddb/client_spec.rb[1:2:2] | passed | 0.00027 seconds |
11
+ ./spec/carddb/client_spec.rb[1:3:1] | passed | 0.00005 seconds |
11
12
  ./spec/carddb/client_spec.rb[1:4:1] | passed | 0.00004 seconds |
12
13
  ./spec/carddb/client_spec.rb[1:5:1] | passed | 0.00004 seconds |
13
- ./spec/carddb/client_spec.rb[1:6:1] | passed | 0.00003 seconds |
14
- ./spec/carddb/client_spec.rb[1:7:1] | passed | 0.00003 seconds |
15
- ./spec/carddb/client_spec.rb[1:8:1] | passed | 0.00003 seconds |
16
- ./spec/carddb/client_spec.rb[1:9:1] | passed | 0.00003 seconds |
17
- ./spec/carddb/client_spec.rb[1:10:1] | passed | 0.00003 seconds |
18
- ./spec/carddb/client_spec.rb[1:11:1] | passed | 0.00003 seconds |
14
+ ./spec/carddb/client_spec.rb[1:6:1] | passed | 0.00004 seconds |
15
+ ./spec/carddb/client_spec.rb[1:7:1] | passed | 0.00005 seconds |
16
+ ./spec/carddb/client_spec.rb[1:8:1] | passed | 0.00004 seconds |
17
+ ./spec/carddb/client_spec.rb[1:9:1] | passed | 0.00006 seconds |
18
+ ./spec/carddb/client_spec.rb[1:10:1] | passed | 0.00005 seconds |
19
+ ./spec/carddb/client_spec.rb[1:11:1] | passed | 0.00004 seconds |
19
20
  ./spec/carddb/client_spec.rb[1:12:1] | passed | 0.00004 seconds |
20
- ./spec/carddb/client_spec.rb[1:13:1] | passed | 0.00003 seconds |
21
- ./spec/carddb/client_spec.rb[1:14:1] | passed | 0.00043 seconds |
22
- ./spec/carddb/client_spec.rb[1:14:2] | passed | 0.00404 seconds |
23
- ./spec/carddb/collection_spec.rb[1:1:1] | passed | 0.00005 seconds |
21
+ ./spec/carddb/client_spec.rb[1:13:1] | passed | 0.00004 seconds |
22
+ ./spec/carddb/client_spec.rb[1:14:1] | passed | 0.00037 seconds |
23
+ ./spec/carddb/client_spec.rb[1:14:2] | passed | 0.00472 seconds |
24
+ ./spec/carddb/collection_spec.rb[1:1:1] | passed | 0.00007 seconds |
24
25
  ./spec/carddb/collection_spec.rb[2:1:1] | passed | 0.00003 seconds |
25
- ./spec/carddb/collection_spec.rb[3:1:1] | passed | 0.00197 seconds |
26
- ./spec/carddb/collection_spec.rb[3:1:2] | passed | 0.00014 seconds |
27
- ./spec/carddb/collection_spec.rb[3:1:3] | passed | 0.00036 seconds |
28
- ./spec/carddb/collection_spec.rb[3:1:4] | passed | 0.00048 seconds |
29
- ./spec/carddb/collection_spec.rb[3:1:5] | passed | 0.00004 seconds |
30
- ./spec/carddb/collection_spec.rb[4:1:1] | passed | 0.00015 seconds |
31
- ./spec/carddb/collection_spec.rb[4:1:2] | passed | 0.00014 seconds |
32
- ./spec/carddb/collection_spec.rb[4:1:3] | passed | 0.00014 seconds |
26
+ ./spec/carddb/collection_spec.rb[3:1:1] | passed | 0.00246 seconds |
27
+ ./spec/carddb/collection_spec.rb[3:1:2] | passed | 0.00019 seconds |
28
+ ./spec/carddb/collection_spec.rb[3:1:3] | passed | 0.00051 seconds |
29
+ ./spec/carddb/collection_spec.rb[3:1:4] | passed | 0.00042 seconds |
30
+ ./spec/carddb/collection_spec.rb[3:1:5] | passed | 0.00005 seconds |
31
+ ./spec/carddb/collection_spec.rb[4:1:1] | passed | 0.0002 seconds |
32
+ ./spec/carddb/collection_spec.rb[4:1:2] | passed | 0.00016 seconds |
33
+ ./spec/carddb/collection_spec.rb[4:1:3] | passed | 0.00016 seconds |
33
34
  ./spec/carddb/collection_spec.rb[4:1:4] | passed | 0.00004 seconds |
34
- ./spec/carddb/configuration_spec.rb[1:1:1] | passed | 0.00003 seconds |
35
+ ./spec/carddb/configuration_spec.rb[1:1:1] | passed | 0.00005 seconds |
35
36
  ./spec/carddb/configuration_spec.rb[1:1:2] | passed | 0.00003 seconds |
36
37
  ./spec/carddb/configuration_spec.rb[1:1:3] | passed | 0.00003 seconds |
37
- ./spec/carddb/configuration_spec.rb[1:1:4] | passed | 0.00003 seconds |
38
- ./spec/carddb/configuration_spec.rb[1:1:5] | passed | 0.00003 seconds |
38
+ ./spec/carddb/configuration_spec.rb[1:1:4] | passed | 0.00004 seconds |
39
+ ./spec/carddb/configuration_spec.rb[1:1:5] | passed | 0.00008 seconds |
39
40
  ./spec/carddb/configuration_spec.rb[1:1:6] | passed | 0.00003 seconds |
40
- ./spec/carddb/configuration_spec.rb[1:2:1:1] | passed | 0.00004 seconds |
41
+ ./spec/carddb/configuration_spec.rb[1:2:1:1] | passed | 0.00005 seconds |
41
42
  ./spec/carddb/configuration_spec.rb[1:2:2:1] | passed | 0.00003 seconds |
42
- ./spec/carddb/configuration_spec.rb[1:2:2:2] | passed | 0.00004 seconds |
43
- ./spec/carddb/configuration_spec.rb[1:3:1:1] | passed | 0.00003 seconds |
43
+ ./spec/carddb/configuration_spec.rb[1:2:2:2] | passed | 0.00006 seconds |
44
+ ./spec/carddb/configuration_spec.rb[1:3:1:1] | passed | 0.00004 seconds |
44
45
  ./spec/carddb/configuration_spec.rb[1:3:2:1] | passed | 0.00003 seconds |
45
46
  ./spec/carddb/configuration_spec.rb[1:3:2:2] | passed | 0.00004 seconds |
46
47
  ./spec/carddb/configuration_spec.rb[1:3:2:3] | passed | 0.00003 seconds |
@@ -49,163 +50,167 @@ example_id | status | run_time
49
50
  ./spec/carddb/configuration_spec.rb[1:5:1] | passed | 0.00003 seconds |
50
51
  ./spec/carddb/configuration_spec.rb[1:6:1] | passed | 0.00003 seconds |
51
52
  ./spec/carddb/configuration_spec.rb[1:6:2] | passed | 0.00003 seconds |
52
- ./spec/carddb/configuration_spec.rb[1:6:3] | passed | 0.00003 seconds |
53
- ./spec/carddb/configuration_spec.rb[1:7:1] | passed | 0.00004 seconds |
53
+ ./spec/carddb/configuration_spec.rb[1:6:3] | passed | 0.00002 seconds |
54
+ ./spec/carddb/configuration_spec.rb[1:7:1] | passed | 0.00003 seconds |
54
55
  ./spec/carddb/configuration_spec.rb[1:7:2] | passed | 0.00003 seconds |
55
56
  ./spec/carddb/configuration_spec.rb[1:7:3] | passed | 0.00004 seconds |
56
- ./spec/carddb/deck_tokens_spec.rb[1:1:1] | passed | 0.00061 seconds |
57
- ./spec/carddb/deck_tokens_spec.rb[1:2:1] | passed | 0.00072 seconds |
58
- ./spec/carddb/deck_tokens_spec.rb[1:2:2] | passed | 0.00024 seconds |
59
- ./spec/carddb/deck_tokens_spec.rb[1:2:3] | passed | 0.00006 seconds |
60
- ./spec/carddb/filter_builder_spec.rb[1:1:1] | passed | 0.00004 seconds |
57
+ ./spec/carddb/deck_tokens_spec.rb[1:1:1] | passed | 0.00078 seconds |
58
+ ./spec/carddb/deck_tokens_spec.rb[1:2:1] | passed | 0.00088 seconds |
59
+ ./spec/carddb/deck_tokens_spec.rb[1:2:2] | passed | 0.00027 seconds |
60
+ ./spec/carddb/deck_tokens_spec.rb[1:2:3] | passed | 0.00015 seconds |
61
+ ./spec/carddb/filter_builder_spec.rb[1:1:1] | passed | 0.00005 seconds |
61
62
  ./spec/carddb/filter_builder_spec.rb[1:1:2] | passed | 0.00003 seconds |
62
- ./spec/carddb/filter_builder_spec.rb[1:1:3] | passed | 0.00003 seconds |
63
- ./spec/carddb/filter_builder_spec.rb[1:1:4] | passed | 0.00003 seconds |
63
+ ./spec/carddb/filter_builder_spec.rb[1:1:3] | passed | 0.00004 seconds |
64
+ ./spec/carddb/filter_builder_spec.rb[1:1:4] | passed | 0.00004 seconds |
64
65
  ./spec/carddb/filter_builder_spec.rb[1:1:5] | passed | 0.00003 seconds |
65
66
  ./spec/carddb/filter_builder_spec.rb[1:1:6] | passed | 0.00003 seconds |
66
67
  ./spec/carddb/filter_builder_spec.rb[1:1:7] | passed | 0.00004 seconds |
67
68
  ./spec/carddb/filter_builder_spec.rb[1:1:8] | passed | 0.00003 seconds |
68
- ./spec/carddb/filter_builder_spec.rb[1:2:1] | passed | 0.00004 seconds |
69
+ ./spec/carddb/filter_builder_spec.rb[1:2:1] | passed | 0.00003 seconds |
69
70
  ./spec/carddb/filter_builder_spec.rb[1:2:2] | passed | 0.00003 seconds |
70
71
  ./spec/carddb/filter_builder_spec.rb[1:2:3] | passed | 0.00003 seconds |
71
- ./spec/carddb/filter_builder_spec.rb[1:2:4] | passed | 0.00002 seconds |
72
+ ./spec/carddb/filter_builder_spec.rb[1:2:4] | passed | 0.00003 seconds |
72
73
  ./spec/carddb/filter_builder_spec.rb[1:2:5] | passed | 0.00003 seconds |
73
- ./spec/carddb/filter_builder_spec.rb[1:2:6] | passed | 0.00002 seconds |
74
+ ./spec/carddb/filter_builder_spec.rb[1:2:6] | passed | 0.00003 seconds |
74
75
  ./spec/carddb/filter_builder_spec.rb[1:2:7] | passed | 0.00003 seconds |
75
76
  ./spec/carddb/filter_builder_spec.rb[1:2:8] | passed | 0.00003 seconds |
76
- ./spec/carddb/filter_builder_spec.rb[1:2:9] | passed | 0.00003 seconds |
77
+ ./spec/carddb/filter_builder_spec.rb[1:2:9] | passed | 0.00004 seconds |
77
78
  ./spec/carddb/filter_builder_spec.rb[1:2:10] | passed | 0.00003 seconds |
78
79
  ./spec/carddb/filter_builder_spec.rb[1:2:11] | passed | 0.00003 seconds |
79
- ./spec/carddb/filter_builder_spec.rb[1:2:12] | passed | 0.00003 seconds |
80
+ ./spec/carddb/filter_builder_spec.rb[1:2:12] | passed | 0.00002 seconds |
80
81
  ./spec/carddb/filter_builder_spec.rb[1:2:13] | passed | 0.00003 seconds |
81
82
  ./spec/carddb/query_builder_spec.rb[1:1:1] | passed | 0.00004 seconds |
82
83
  ./spec/carddb/query_builder_spec.rb[1:1:2] | passed | 0.00004 seconds |
83
- ./spec/carddb/query_builder_spec.rb[1:1:3] | passed | 0.00003 seconds |
84
+ ./spec/carddb/query_builder_spec.rb[1:1:3] | passed | 0.00004 seconds |
84
85
  ./spec/carddb/query_builder_spec.rb[1:2:1:1] | passed | 0.00005 seconds |
85
86
  ./spec/carddb/query_builder_spec.rb[1:2:2:1] | passed | 0.00004 seconds |
86
87
  ./spec/carddb/query_builder_spec.rb[1:3:1] | passed | 0.00005 seconds |
87
88
  ./spec/carddb/query_builder_spec.rb[1:3:2] | passed | 0.00004 seconds |
88
89
  ./spec/carddb/query_builder_spec.rb[1:4:1] | passed | 0.00005 seconds |
89
90
  ./spec/carddb/query_builder_spec.rb[1:4:2] | passed | 0.00004 seconds |
90
- ./spec/carddb/query_builder_spec.rb[1:5:1] | passed | 0.00003 seconds |
91
+ ./spec/carddb/query_builder_spec.rb[1:5:1] | passed | 0.00004 seconds |
91
92
  ./spec/carddb/query_builder_spec.rb[1:5:2] | passed | 0.00004 seconds |
92
- ./spec/carddb/query_builder_spec.rb[1:5:3] | passed | 0.00004 seconds |
93
- ./spec/carddb/query_builder_spec.rb[1:5:4] | passed | 0.00003 seconds |
94
- ./spec/carddb/query_builder_spec.rb[1:5:5] | passed | 0.00006 seconds |
95
- ./spec/carddb/query_builder_spec.rb[1:5:6] | passed | 0.00004 seconds |
96
- ./spec/carddb/query_builder_spec.rb[1:5:7] | passed | 0.00003 seconds |
97
- ./spec/carddb/query_builder_spec.rb[1:5:8] | passed | 0.00003 seconds |
98
- ./spec/carddb/query_builder_spec.rb[1:5:9] | passed | 0.00004 seconds |
99
- ./spec/carddb/query_builder_spec.rb[1:6:1] | passed | 0.00007 seconds |
100
- ./spec/carddb/query_builder_spec.rb[1:6:2] | passed | 0.00004 seconds |
101
- ./spec/carddb/query_builder_spec.rb[1:6:3] | passed | 0.00004 seconds |
102
- ./spec/carddb/query_builder_spec.rb[1:6:4] | passed | 0.00003 seconds |
93
+ ./spec/carddb/query_builder_spec.rb[1:5:3] | passed | 0.00512 seconds |
94
+ ./spec/carddb/query_builder_spec.rb[1:5:4] | passed | 0.00008 seconds |
95
+ ./spec/carddb/query_builder_spec.rb[1:5:5] | passed | 0.00004 seconds |
96
+ ./spec/carddb/query_builder_spec.rb[1:5:6] | passed | 0.00006 seconds |
97
+ ./spec/carddb/query_builder_spec.rb[1:5:7] | passed | 0.00004 seconds |
98
+ ./spec/carddb/query_builder_spec.rb[1:5:8] | passed | 0.00004 seconds |
99
+ ./spec/carddb/query_builder_spec.rb[1:5:9] | passed | 0.00003 seconds |
100
+ ./spec/carddb/query_builder_spec.rb[1:5:10] | passed | 0.00005 seconds |
101
+ ./spec/carddb/query_builder_spec.rb[1:6:1] | passed | 0.00006 seconds |
102
+ ./spec/carddb/query_builder_spec.rb[1:6:2] | passed | 0.00003 seconds |
103
+ ./spec/carddb/query_builder_spec.rb[1:6:3] | passed | 0.00006 seconds |
104
+ ./spec/carddb/query_builder_spec.rb[1:6:4] | passed | 0.00043 seconds |
103
105
  ./spec/carddb/query_builder_spec.rb[1:6:5] | passed | 0.00004 seconds |
104
- ./spec/carddb/query_builder_spec.rb[1:6:6] | passed | 0.00006 seconds |
105
- ./spec/carddb/query_builder_spec.rb[1:6:7] | passed | 0.00006 seconds |
106
- ./spec/carddb/query_builder_spec.rb[1:6:8] | passed | 0.00005 seconds |
106
+ ./spec/carddb/query_builder_spec.rb[1:6:6] | passed | 0.00007 seconds |
107
+ ./spec/carddb/query_builder_spec.rb[1:6:7] | passed | 0.00007 seconds |
108
+ ./spec/carddb/query_builder_spec.rb[1:6:8] | passed | 0.00006 seconds |
107
109
  ./spec/carddb/query_builder_spec.rb[1:6:9] | passed | 0.00003 seconds |
108
110
  ./spec/carddb/query_builder_spec.rb[1:6:10] | passed | 0.00003 seconds |
109
- ./spec/carddb/query_builder_spec.rb[1:6:11] | passed | 0.00003 seconds |
110
- ./spec/carddb/resources/datasets_spec.rb[1:1:1] | passed | 0.00796 seconds |
111
- ./spec/carddb/resources/datasets_spec.rb[1:1:2] | passed | 0.00383 seconds |
112
- ./spec/carddb/resources/datasets_spec.rb[1:2:1] | passed | 0.00414 seconds |
113
- ./spec/carddb/resources/datasets_spec.rb[1:3:1] | passed | 0.00394 seconds |
114
- ./spec/carddb/resources/datasets_spec.rb[1:3:2] | passed | 0.00392 seconds |
115
- ./spec/carddb/resources/decks_spec.rb[1:1:1] | passed | 0.0038 seconds |
116
- ./spec/carddb/resources/decks_spec.rb[1:1:2] | passed | 0.00393 seconds |
117
- ./spec/carddb/resources/decks_spec.rb[1:1:3] | passed | 0.00455 seconds |
118
- ./spec/carddb/resources/decks_spec.rb[1:1:4] | passed | 0.0045 seconds |
119
- ./spec/carddb/resources/decks_spec.rb[1:1:5] | passed | 0.0038 seconds |
120
- ./spec/carddb/resources/decks_spec.rb[1:2:1] | passed | 0.00429 seconds |
121
- ./spec/carddb/resources/decks_spec.rb[1:2:2] | passed | 0.00786 seconds |
122
- ./spec/carddb/resources/decks_spec.rb[1:2:3] | passed | 0.00007 seconds |
123
- ./spec/carddb/resources/decks_spec.rb[1:3:1] | passed | 0.00389 seconds |
124
- ./spec/carddb/resources/decks_spec.rb[1:4:1] | passed | 0.00372 seconds |
125
- ./spec/carddb/resources/decks_spec.rb[1:5:1] | passed | 0.00381 seconds |
126
- ./spec/carddb/resources/decks_spec.rb[1:6:1] | passed | 0.00386 seconds |
127
- ./spec/carddb/resources/decks_spec.rb[1:6:2] | passed | 0.00378 seconds |
128
- ./spec/carddb/resources/decks_spec.rb[1:6:3] | passed | 0.00394 seconds |
129
- ./spec/carddb/resources/decks_spec.rb[1:6:4] | passed | 0.00009 seconds |
130
- ./spec/carddb/resources/decks_spec.rb[1:7:1] | passed | 0.0038 seconds |
131
- ./spec/carddb/resources/decks_spec.rb[1:8:1] | passed | 0.00376 seconds |
132
- ./spec/carddb/resources/decks_spec.rb[1:9:1] | passed | 0.0039 seconds |
133
- ./spec/carddb/resources/decks_spec.rb[1:10:1] | passed | 0.00379 seconds |
134
- ./spec/carddb/resources/decks_spec.rb[1:10:2] | passed | 0.00387 seconds |
135
- ./spec/carddb/resources/decks_spec.rb[1:10:3] | passed | 0.0041 seconds |
136
- ./spec/carddb/resources/decks_spec.rb[1:10:4] | passed | 0.00393 seconds |
137
- ./spec/carddb/resources/decks_spec.rb[1:11:1] | passed | 0.00368 seconds |
138
- ./spec/carddb/resources/decks_spec.rb[1:12:1] | passed | 0.00375 seconds |
139
- ./spec/carddb/resources/decks_spec.rb[1:12:2] | passed | 0.00372 seconds |
140
- ./spec/carddb/resources/decks_spec.rb[1:12:3] | passed | 0.00385 seconds |
141
- ./spec/carddb/resources/decks_spec.rb[1:12:4] | passed | 0.00006 seconds |
142
- ./spec/carddb/resources/decks_spec.rb[1:13:1] | passed | 0.00372 seconds |
143
- ./spec/carddb/resources/decks_spec.rb[1:14:1] | passed | 0.00376 seconds |
144
- ./spec/carddb/resources/decks_spec.rb[1:15:1] | passed | 0.00402 seconds |
145
- ./spec/carddb/resources/decks_spec.rb[1:15:2] | passed | 0.00527 seconds |
146
- ./spec/carddb/resources/decks_spec.rb[1:15:3] | passed | 0.00387 seconds |
147
- ./spec/carddb/resources/decks_spec.rb[1:16:1] | passed | 0.00433 seconds |
148
- ./spec/carddb/resources/decks_spec.rb[1:17:1] | passed | 0.00384 seconds |
149
- ./spec/carddb/resources/decks_spec.rb[1:18:1] | passed | 0.00369 seconds |
150
- ./spec/carddb/resources/decks_spec.rb[1:19:1] | passed | 0.0081 seconds |
151
- ./spec/carddb/resources/decks_spec.rb[1:20:1] | passed | 0.00371 seconds |
152
- ./spec/carddb/resources/decks_spec.rb[1:21:1] | passed | 0.00504 seconds |
153
- ./spec/carddb/resources/games_spec.rb[1:1:1] | passed | 0.00361 seconds |
154
- ./spec/carddb/resources/games_spec.rb[1:1:2] | passed | 0.00006 seconds |
155
- ./spec/carddb/resources/games_spec.rb[1:2:1] | passed | 0.00462 seconds |
156
- ./spec/carddb/resources/games_spec.rb[1:2:2] | passed | 0.00411 seconds |
157
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:1:1] | passed | 0.00588 seconds |
158
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:1:2] | passed | 0.0036 seconds |
159
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:1:3] | passed | 0.005 seconds |
160
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:2:1] | passed | 0.00618 seconds |
161
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:2:2] | passed | 0.00009 seconds |
162
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:3:1] | passed | 0.00513 seconds |
163
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:3:2] | passed | 0.00427 seconds |
164
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:3:3] | passed | 0.00456 seconds |
165
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:4:1] | passed | 0.00575 seconds |
166
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:4:2] | passed | 0.00529 seconds |
167
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:4:3] | passed | 0.004 seconds |
168
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:5:1] | passed | 0.00475 seconds |
169
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:5:2] | passed | 0.00366 seconds |
170
- ./spec/carddb/resources/publishers_spec.rb[1:1:1] | passed | 0.00458 seconds |
171
- ./spec/carddb/resources/publishers_spec.rb[1:2:1] | passed | 0.00357 seconds |
172
- ./spec/carddb/resources/records_spec.rb[1:1:1] | passed | 0.00376 seconds |
173
- ./spec/carddb/resources/records_spec.rb[1:1:2] | passed | 0.0044 seconds |
174
- ./spec/carddb/resources/records_spec.rb[1:1:3] | passed | 0.00011 seconds |
175
- ./spec/carddb/resources/records_spec.rb[1:1:4] | passed | 0.00004 seconds |
176
- ./spec/carddb/resources/records_spec.rb[1:2:1] | passed | 0.00416 seconds |
177
- ./spec/carddb/resources/records_spec.rb[1:2:2] | passed | 0.00378 seconds |
178
- ./spec/carddb/resources/records_spec.rb[1:2:3] | passed | 0.00451 seconds |
179
- ./spec/carddb/resources/records_spec.rb[1:3:1] | passed | 0.0039 seconds |
180
- ./spec/carddb/resources/records_spec.rb[1:3:2] | passed | 0.00052 seconds |
181
- ./spec/carddb/resources/records_spec.rb[1:4:1] | passed | 0.0044 seconds |
111
+ ./spec/carddb/query_builder_spec.rb[1:6:11] | passed | 0.00005 seconds |
112
+ ./spec/carddb/resources/datasets_spec.rb[1:1:1] | passed | 0.0047 seconds |
113
+ ./spec/carddb/resources/datasets_spec.rb[1:1:2] | passed | 0.00492 seconds |
114
+ ./spec/carddb/resources/datasets_spec.rb[1:2:1] | passed | 0.00422 seconds |
115
+ ./spec/carddb/resources/datasets_spec.rb[1:3:1] | passed | 0.0049 seconds |
116
+ ./spec/carddb/resources/datasets_spec.rb[1:3:2] | passed | 0.00483 seconds |
117
+ ./spec/carddb/resources/decks_spec.rb[1:1:1] | passed | 0.00502 seconds |
118
+ ./spec/carddb/resources/decks_spec.rb[1:1:2] | passed | 0.0051 seconds |
119
+ ./spec/carddb/resources/decks_spec.rb[1:1:3] | passed | 0.00594 seconds |
120
+ ./spec/carddb/resources/decks_spec.rb[1:1:4] | passed | 0.00398 seconds |
121
+ ./spec/carddb/resources/decks_spec.rb[1:1:5] | passed | 0.00442 seconds |
122
+ ./spec/carddb/resources/decks_spec.rb[1:2:1] | passed | 0.00444 seconds |
123
+ ./spec/carddb/resources/decks_spec.rb[1:2:2] | passed | 0.00948 seconds |
124
+ ./spec/carddb/resources/decks_spec.rb[1:2:3] | passed | 0.00008 seconds |
125
+ ./spec/carddb/resources/decks_spec.rb[1:3:1] | passed | 0.0047 seconds |
126
+ ./spec/carddb/resources/decks_spec.rb[1:4:1] | passed | 0.00461 seconds |
127
+ ./spec/carddb/resources/decks_spec.rb[1:4:2] | passed | 0.00405 seconds |
128
+ ./spec/carddb/resources/decks_spec.rb[1:4:3] | passed | 0.00454 seconds |
129
+ ./spec/carddb/resources/decks_spec.rb[1:5:1] | passed | 0.0045 seconds |
130
+ ./spec/carddb/resources/decks_spec.rb[1:6:1] | passed | 0.00415 seconds |
131
+ ./spec/carddb/resources/decks_spec.rb[1:7:1] | passed | 0.00473 seconds |
132
+ ./spec/carddb/resources/decks_spec.rb[1:7:2] | passed | 0.00493 seconds |
133
+ ./spec/carddb/resources/decks_spec.rb[1:7:3] | passed | 0.00478 seconds |
134
+ ./spec/carddb/resources/decks_spec.rb[1:7:4] | passed | 0.00016 seconds |
135
+ ./spec/carddb/resources/decks_spec.rb[1:8:1] | passed | 0.00452 seconds |
136
+ ./spec/carddb/resources/decks_spec.rb[1:9:1] | passed | 0.00426 seconds |
137
+ ./spec/carddb/resources/decks_spec.rb[1:10:1] | passed | 0.00395 seconds |
138
+ ./spec/carddb/resources/decks_spec.rb[1:11:1] | passed | 0.00436 seconds |
139
+ ./spec/carddb/resources/decks_spec.rb[1:11:2] | passed | 0.00505 seconds |
140
+ ./spec/carddb/resources/decks_spec.rb[1:11:3] | passed | 0.00527 seconds |
141
+ ./spec/carddb/resources/decks_spec.rb[1:11:4] | passed | 0.00532 seconds |
142
+ ./spec/carddb/resources/decks_spec.rb[1:12:1] | passed | 0.00468 seconds |
143
+ ./spec/carddb/resources/decks_spec.rb[1:13:1] | passed | 0.00438 seconds |
144
+ ./spec/carddb/resources/decks_spec.rb[1:13:2] | passed | 0.00395 seconds |
145
+ ./spec/carddb/resources/decks_spec.rb[1:13:3] | passed | 0.0045 seconds |
146
+ ./spec/carddb/resources/decks_spec.rb[1:13:4] | passed | 0.00008 seconds |
147
+ ./spec/carddb/resources/decks_spec.rb[1:14:1] | passed | 0.00466 seconds |
148
+ ./spec/carddb/resources/decks_spec.rb[1:15:1] | passed | 0.00461 seconds |
149
+ ./spec/carddb/resources/decks_spec.rb[1:16:1] | passed | 0.00488 seconds |
150
+ ./spec/carddb/resources/decks_spec.rb[1:16:2] | passed | 0.00997 seconds |
151
+ ./spec/carddb/resources/decks_spec.rb[1:16:3] | passed | 0.00494 seconds |
152
+ ./spec/carddb/resources/decks_spec.rb[1:17:1] | passed | 0.00682 seconds |
153
+ ./spec/carddb/resources/decks_spec.rb[1:18:1] | passed | 0.00517 seconds |
154
+ ./spec/carddb/resources/decks_spec.rb[1:19:1] | passed | 0.00393 seconds |
155
+ ./spec/carddb/resources/decks_spec.rb[1:20:1] | passed | 0.00387 seconds |
156
+ ./spec/carddb/resources/decks_spec.rb[1:21:1] | passed | 0.00572 seconds |
157
+ ./spec/carddb/resources/decks_spec.rb[1:22:1] | passed | 0.00397 seconds |
158
+ ./spec/carddb/resources/games_spec.rb[1:1:1] | passed | 0.00573 seconds |
159
+ ./spec/carddb/resources/games_spec.rb[1:1:2] | passed | 0.00009 seconds |
160
+ ./spec/carddb/resources/games_spec.rb[1:2:1] | passed | 0.004 seconds |
161
+ ./spec/carddb/resources/games_spec.rb[1:2:2] | passed | 0.00427 seconds |
162
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:1:1] | passed | 0.00435 seconds |
163
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:1:2] | passed | 0.00582 seconds |
164
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:1:3] | passed | 0.00432 seconds |
165
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:2:1] | passed | 0.00567 seconds |
166
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:2:2] | passed | 0.0001 seconds |
167
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:3:1] | passed | 0.00569 seconds |
168
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:3:2] | passed | 0.00455 seconds |
169
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:3:3] | passed | 0.00437 seconds |
170
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:4:1] | passed | 0.00647 seconds |
171
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:4:2] | passed | 0.006 seconds |
172
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:4:3] | passed | 0.00598 seconds |
173
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:5:1] | passed | 0.00481 seconds |
174
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:5:2] | passed | 0.00523 seconds |
175
+ ./spec/carddb/resources/publishers_spec.rb[1:1:1] | passed | 0.005 seconds |
176
+ ./spec/carddb/resources/publishers_spec.rb[1:2:1] | passed | 0.00482 seconds |
177
+ ./spec/carddb/resources/records_spec.rb[1:1:1] | passed | 0.00575 seconds |
178
+ ./spec/carddb/resources/records_spec.rb[1:1:2] | passed | 0.00572 seconds |
179
+ ./spec/carddb/resources/records_spec.rb[1:1:3] | passed | 0.0002 seconds |
180
+ ./spec/carddb/resources/records_spec.rb[1:1:4] | passed | 0.00006 seconds |
181
+ ./spec/carddb/resources/records_spec.rb[1:2:1] | passed | 0.00505 seconds |
182
+ ./spec/carddb/resources/records_spec.rb[1:2:2] | passed | 0.0062 seconds |
183
+ ./spec/carddb/resources/records_spec.rb[1:2:3] | passed | 0.0049 seconds |
184
+ ./spec/carddb/resources/records_spec.rb[1:3:1] | passed | 0.00493 seconds |
185
+ ./spec/carddb/resources/records_spec.rb[1:3:2] | passed | 0.00044 seconds |
186
+ ./spec/carddb/resources/records_spec.rb[1:4:1] | passed | 0.00485 seconds |
182
187
  ./spec/carddb/resources/records_spec.rb[1:4:2] | passed | 0.00005 seconds |
183
- ./spec/carddb/resources/records_spec.rb[1:4:3] | passed | 0.00031 seconds |
184
- ./spec/carddb/resources/rules_spec.rb[1:1:1] | passed | 0.00439 seconds |
185
- ./spec/carddb/resources/rules_spec.rb[1:2:1] | passed | 0.00416 seconds |
186
- ./spec/carddb/resources/rulesets_spec.rb[1:1:1] | passed | 0.00458 seconds |
187
- ./spec/carddb/resources/rulesets_spec.rb[1:1:2] | passed | 0.0057 seconds |
188
- ./spec/carddb/resources/rulesets_spec.rb[1:1:3] | passed | 0.00436 seconds |
189
- ./spec/carddb/resources/rulesets_spec.rb[1:2:1] | passed | 0.00496 seconds |
190
- ./spec/carddb/resources/rulesets_spec.rb[1:2:2] | passed | 0.00442 seconds |
191
- ./spec/carddb/resources/rulesets_spec.rb[1:2:3] | passed | 0.00431 seconds |
192
- ./spec/carddb/resources/rulesets_spec.rb[1:3:1] | passed | 0.00602 seconds |
193
- ./spec/carddb/resources/rulesets_spec.rb[1:3:2] | passed | 0.00007 seconds |
194
- ./spec/carddb/resources/scans_spec.rb[1:1] | passed | 0.00528 seconds |
195
- ./spec/carddb/resources/scans_spec.rb[1:2] | passed | 0.00818 seconds |
196
- ./spec/carddb/resources/scans_spec.rb[1:3] | passed | 0.00457 seconds |
197
- ./spec/carddb/resources/scans_spec.rb[1:4] | passed | 0.00476 seconds |
198
- ./spec/carddb/resources/scans_spec.rb[1:5] | passed | 0.00393 seconds |
199
- ./spec/carddb/resources/scans_spec.rb[1:6] | passed | 0.00447 seconds |
200
- ./spec/carddb/resources/scans_spec.rb[1:7] | passed | 0.00447 seconds |
201
- ./spec/carddb/resources/scans_spec.rb[1:8] | passed | 0.00011 seconds |
188
+ ./spec/carddb/resources/records_spec.rb[1:4:3] | passed | 0.0001 seconds |
189
+ ./spec/carddb/resources/rules_spec.rb[1:1:1] | passed | 0.00495 seconds |
190
+ ./spec/carddb/resources/rules_spec.rb[1:2:1] | passed | 0.00438 seconds |
191
+ ./spec/carddb/resources/rulesets_spec.rb[1:1:1] | passed | 0.00557 seconds |
192
+ ./spec/carddb/resources/rulesets_spec.rb[1:1:2] | passed | 0.00556 seconds |
193
+ ./spec/carddb/resources/rulesets_spec.rb[1:1:3] | passed | 0.00455 seconds |
194
+ ./spec/carddb/resources/rulesets_spec.rb[1:2:1] | passed | 0.00609 seconds |
195
+ ./spec/carddb/resources/rulesets_spec.rb[1:2:2] | passed | 0.00444 seconds |
196
+ ./spec/carddb/resources/rulesets_spec.rb[1:2:3] | passed | 0.00539 seconds |
197
+ ./spec/carddb/resources/rulesets_spec.rb[1:3:1] | passed | 0.00644 seconds |
198
+ ./spec/carddb/resources/rulesets_spec.rb[1:3:2] | passed | 0.00006 seconds |
199
+ ./spec/carddb/resources/scans_spec.rb[1:1] | passed | 0.00466 seconds |
200
+ ./spec/carddb/resources/scans_spec.rb[1:2] | passed | 0.01111 seconds |
201
+ ./spec/carddb/resources/scans_spec.rb[1:3] | passed | 0.00502 seconds |
202
+ ./spec/carddb/resources/scans_spec.rb[1:4] | passed | 0.00529 seconds |
203
+ ./spec/carddb/resources/scans_spec.rb[1:5] | passed | 0.0055 seconds |
204
+ ./spec/carddb/resources/scans_spec.rb[1:6] | passed | 0.00615 seconds |
205
+ ./spec/carddb/resources/scans_spec.rb[1:7] | passed | 0.00495 seconds |
206
+ ./spec/carddb/resources/scans_spec.rb[1:8] | passed | 0.00014 seconds |
202
207
  ./spec/carddb_spec.rb[1:1] | passed | 0.00003 seconds |
203
- ./spec/carddb_spec.rb[1:2:1] | passed | 0.00004 seconds |
208
+ ./spec/carddb_spec.rb[1:2:1] | passed | 0.00003 seconds |
204
209
  ./spec/carddb_spec.rb[1:3:1] | passed | 0.00003 seconds |
205
210
  ./spec/carddb_spec.rb[1:4:1] | passed | 0.00003 seconds |
206
211
  ./spec/carddb_spec.rb[1:5:1] | passed | 0.00003 seconds |
207
212
  ./spec/carddb_spec.rb[1:6:1] | passed | 0.00003 seconds |
208
- ./spec/carddb_spec.rb[1:7:1] | passed | 0.00003 seconds |
213
+ ./spec/carddb_spec.rb[1:7:1] | passed | 0.00004 seconds |
209
214
  ./spec/carddb_spec.rb[1:8:1] | passed | 0.00003 seconds |
210
215
  ./spec/carddb_spec.rb[1:9:1] | passed | 0.00003 seconds |
211
- ./spec/carddb_spec.rb[1:10:1] | passed | 0.00069 seconds |
216
+ ./spec/carddb_spec.rb[1:10:1] | passed | 0.00003 seconds |
data/CHANGELOG.md CHANGED
@@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.5.8] - 2026-07-27
11
+
12
+ ### Added
13
+
14
+ - `CardDB.decks.valuation` with current TCGPlayer totals, section and entry breakdowns, pricing coverage, and missing-price reasons.
15
+ - `CardDB::DeckValuation`, `DeckSectionValuation`, `DeckEntryValuation`, and `Money` response wrappers.
16
+ - Batch support for deck valuation queries.
17
+
10
18
  ## [0.5.7] - 2026-07-24
11
19
 
12
20
  ### Added
data/README.md CHANGED
@@ -576,12 +576,20 @@ entry_payload = CardDB.decks.add_entry(
576
576
  )
577
577
 
578
578
  validation = CardDB.decks.validate(id: updated.id)
579
+ valuation = CardDB.decks.valuation(
580
+ id: updated.id,
581
+ read_state: "DRAFT",
582
+ input: { subTypeName: "Normal" }, # metric defaults to MARKET
583
+ cache: false
584
+ )
579
585
  publish = CardDB.decks.publish(
580
586
  id: updated.id,
581
587
  input: { expectedDraftRevision: entry_payload.deck.draft_revision }
582
588
  )
583
589
 
584
590
  puts publish.blockers.map(&:message) unless publish.blockers.empty?
591
+ puts "#{valuation.priced_total.currency_code} #{valuation.priced_total.amount}"
592
+ puts "Missing prices: #{valuation.missing_quantity}" unless valuation.complete?
585
593
  puts CardDB.decks.export_deck(id: updated.id).text
586
594
 
587
595
  # Import with publisher-configured format auto-detection
@@ -617,6 +625,12 @@ CardDB.decks.import_deck(
617
625
  )
618
626
  ```
619
627
 
628
+ Valuation metrics are `MARKET`, `LOW`, `MID`, `HIGH`, and `DIRECT_LOW`. Money amounts remain decimal
629
+ strings. `priced_total` includes only entries with usable prices, so inspect `status`,
630
+ `priced_quantity`, `missing_quantity`, and entry `missing_reason` values before presenting it as a
631
+ complete deck value. Use `read_state: "PUBLISHED"` with an optional `version:` selector to value an
632
+ immutable snapshot, and `cache: false` for the freshest value allowed by the server-side price cache.
633
+
620
634
  Section definitions come from the deck ruleset and are available on `deck.section_definitions`,
621
635
  `version.section_definitions`, or through `CardDB.decks.section_definitions(...)`. Use `key`,
622
636
  `default?`, `min_cards`, `max_cards`, and `excluded_from_deck_size?` to render sections and
data/lib/carddb/batch.rb CHANGED
@@ -224,6 +224,8 @@ module CardDB
224
224
  end
225
225
  when :get_by_external_ref
226
226
  build_deck_by_external_ref_query(op, index)
227
+ when :valuation
228
+ build_deck_valuation_query(op, index)
227
229
  else
228
230
  raise ArgumentError, "Unsupported batch method for decks: #{op[:method]}"
229
231
  end
@@ -251,6 +253,22 @@ module CardDB
251
253
  ["#{query}) { #{deck_fields} }", variables, types]
252
254
  end
253
255
 
256
+ def build_deck_valuation_query(op, index)
257
+ id_var = "deckValuationId#{index}"
258
+ state_var = "deckValuationReadState#{index}"
259
+ input_var = "deckValuationInput#{index}"
260
+ query = "#{op[:alias]}: deckValuation(id: $#{id_var}, readState: $#{state_var}"
261
+ variables = {
262
+ id_var => op[:kwargs][:id],
263
+ state_var => op[:kwargs][:read_state],
264
+ input_var => op[:kwargs][:input]
265
+ }
266
+ types = { id_var => 'UUID', state_var => 'DeckReadState', input_var => 'DeckValuationInput' }
267
+ query = add_deck_version_argument(query, variables, types, op[:kwargs][:version], index)
268
+
269
+ ["#{query}, input: $#{input_var}) { #{deck_valuation_fields} }", variables, types]
270
+ end
271
+
254
272
  def add_deck_version_argument(query, variables, types, version, index)
255
273
  return query if version.nil?
256
274
 
@@ -278,7 +296,7 @@ module CardDB
278
296
  "(#{defs.join(', ')})"
279
297
  end
280
298
 
281
- def wrap_result(result, resource, _method)
299
+ def wrap_result(result, resource, method)
282
300
  return nil if result.nil?
283
301
 
284
302
  case resource
@@ -291,7 +309,7 @@ module CardDB
291
309
  when :records
292
310
  Record.new(result, client: @client)
293
311
  when :decks
294
- Deck.new(result, client: @client)
312
+ method == :valuation ? DeckValuation.new(result, client: @client) : Deck.new(result, client: @client)
295
313
  else
296
314
  result
297
315
  end
@@ -342,6 +360,18 @@ module CardDB
342
360
  ].join(' ')
343
361
  end
344
362
 
363
+ def deck_valuation_fields
364
+ [
365
+ 'status subTypeName metric pricedTotal { amount currencyCode }',
366
+ 'totalEntryCount pricedEntryCount missingEntryCount',
367
+ 'totalQuantity pricedQuantity missingQuantity',
368
+ 'sections { section status pricedSubtotal { amount currencyCode }',
369
+ 'totalEntryCount pricedEntryCount missingEntryCount totalQuantity pricedQuantity missingQuantity }',
370
+ 'entries { entryId datasetId recordId identifier section quantity',
371
+ 'unitPrice { amount currencyCode } pricedSubtotal { amount currencyCode } missingReason }'
372
+ ].join(' ')
373
+ end
374
+
345
375
  def deck_legality_fields
346
376
  [
347
377
  'status valid blockerCount warningCount affectedEntryCount checkedAt',
@@ -374,5 +404,11 @@ module CardDB
374
404
  @batch.add_operation(resource: @resource, method: :get_by_external_ref, args: args, kwargs: kwargs)
375
405
  nil # Return nil since we're batching
376
406
  end
407
+
408
+ # Proxy valuation calls to the batch
409
+ def valuation(**kwargs)
410
+ @batch.add_operation(resource: @resource, method: :valuation, kwargs: kwargs)
411
+ nil # Return nil since we're batching
412
+ end
377
413
  end
378
414
  end
@@ -2202,6 +2202,75 @@ module CardDB
2202
2202
  def metadata = data['metadata'] || {}
2203
2203
  end
2204
2204
 
2205
+ # Wrapper for decimal money returned by valuation APIs
2206
+ class Money < Resource
2207
+ def amount = data['amount']
2208
+ def currency_code = data['currencyCode']
2209
+ end
2210
+
2211
+ # Wrapper for one deck entry's contribution to a valuation
2212
+ class DeckEntryValuation < Resource
2213
+ def entry_id = data['entryId']
2214
+ def dataset_id = data['datasetId']
2215
+ def record_id = data['recordId']
2216
+ def identifier = data['identifier']
2217
+ def section = data['section']
2218
+ def quantity = data['quantity']
2219
+ def missing_reason = data['missingReason']
2220
+
2221
+ def unit_price
2222
+ @unit_price ||= data['unitPrice'] ? Money.new(data['unitPrice'], client: client) : nil
2223
+ end
2224
+
2225
+ def priced_subtotal
2226
+ @priced_subtotal ||= data['pricedSubtotal'] ? Money.new(data['pricedSubtotal'], client: client) : nil
2227
+ end
2228
+ end
2229
+
2230
+ # Wrapper for one deck section's valuation and pricing coverage
2231
+ class DeckSectionValuation < Resource
2232
+ def section = data['section']
2233
+ def status = data['status']
2234
+ def total_entry_count = data['totalEntryCount']
2235
+ def priced_entry_count = data['pricedEntryCount']
2236
+ def missing_entry_count = data['missingEntryCount']
2237
+ def total_quantity = data['totalQuantity']
2238
+ def priced_quantity = data['pricedQuantity']
2239
+ def missing_quantity = data['missingQuantity']
2240
+
2241
+ def priced_subtotal
2242
+ @priced_subtotal ||= Money.new(data['pricedSubtotal'], client: client)
2243
+ end
2244
+ end
2245
+
2246
+ # Wrapper for current deck valuation and pricing coverage
2247
+ class DeckValuation < Resource
2248
+ def status = data['status']
2249
+ def sub_type_name = data['subTypeName']
2250
+ def metric = data['metric']
2251
+ def total_entry_count = data['totalEntryCount']
2252
+ def priced_entry_count = data['pricedEntryCount']
2253
+ def missing_entry_count = data['missingEntryCount']
2254
+ def total_quantity = data['totalQuantity']
2255
+ def priced_quantity = data['pricedQuantity']
2256
+ def missing_quantity = data['missingQuantity']
2257
+ def complete? = status == 'COMPLETE'
2258
+ def partial? = status == 'PARTIAL'
2259
+ def unavailable? = status == 'UNAVAILABLE'
2260
+
2261
+ def priced_total
2262
+ @priced_total ||= Money.new(data['pricedTotal'], client: client)
2263
+ end
2264
+
2265
+ def sections
2266
+ @sections ||= (data['sections'] || []).map { |section| DeckSectionValuation.new(section, client: client) }
2267
+ end
2268
+
2269
+ def entries
2270
+ @entries ||= (data['entries'] || []).map { |entry| DeckEntryValuation.new(entry, client: client) }
2271
+ end
2272
+ end
2273
+
2205
2274
  class DeckValidatedAgainst < Resource
2206
2275
  def ruleset_id = data['rulesetId']
2207
2276
  def ruleset_version_id = data['rulesetVersionId']
@@ -1012,6 +1012,16 @@ module CardDB
1012
1012
  GRAPHQL
1013
1013
  end
1014
1014
 
1015
+ def deck_valuation
1016
+ <<~GRAPHQL
1017
+ query DeckValuation($id: UUID!, $readState: DeckReadState!, $version: DeckPublishedVersionSelector, $input: DeckValuationInput!) {
1018
+ deckValuation(id: $id, readState: $readState, version: $version, input: $input) {
1019
+ #{deck_valuation_fields}
1020
+ }
1021
+ }
1022
+ GRAPHQL
1023
+ end
1024
+
1015
1025
  # Builds a myDeck query
1016
1026
  def my_deck
1017
1027
  <<~GRAPHQL
@@ -2849,6 +2859,70 @@ module CardDB
2849
2859
  FIELDS
2850
2860
  end
2851
2861
 
2862
+ def money_fields
2863
+ <<~FIELDS
2864
+ amount
2865
+ currencyCode
2866
+ FIELDS
2867
+ end
2868
+
2869
+ def deck_entry_valuation_fields
2870
+ <<~FIELDS
2871
+ entryId
2872
+ datasetId
2873
+ recordId
2874
+ identifier
2875
+ section
2876
+ quantity
2877
+ unitPrice {
2878
+ #{money_fields}
2879
+ }
2880
+ pricedSubtotal {
2881
+ #{money_fields}
2882
+ }
2883
+ missingReason
2884
+ FIELDS
2885
+ end
2886
+
2887
+ def deck_section_valuation_fields
2888
+ <<~FIELDS
2889
+ section
2890
+ status
2891
+ pricedSubtotal {
2892
+ #{money_fields}
2893
+ }
2894
+ totalEntryCount
2895
+ pricedEntryCount
2896
+ missingEntryCount
2897
+ totalQuantity
2898
+ pricedQuantity
2899
+ missingQuantity
2900
+ FIELDS
2901
+ end
2902
+
2903
+ def deck_valuation_fields
2904
+ <<~FIELDS
2905
+ status
2906
+ subTypeName
2907
+ metric
2908
+ pricedTotal {
2909
+ #{money_fields}
2910
+ }
2911
+ totalEntryCount
2912
+ pricedEntryCount
2913
+ missingEntryCount
2914
+ totalQuantity
2915
+ pricedQuantity
2916
+ missingQuantity
2917
+ sections {
2918
+ #{deck_section_valuation_fields}
2919
+ }
2920
+ entries {
2921
+ #{deck_entry_valuation_fields}
2922
+ }
2923
+ FIELDS
2924
+ end
2925
+
2852
2926
  def ruleset_version_fields
2853
2927
  <<~FIELDS
2854
2928
  id
@@ -104,6 +104,26 @@ module CardDB
104
104
  end
105
105
  end
106
106
 
107
+ # Return current TCGPlayer valuation for a draft or published deck representation.
108
+ #
109
+ # The returned priced total includes only entries with usable prices. Check its
110
+ # status and coverage counts before treating it as the complete deck value.
111
+ #
112
+ # @param id [String] Deck UUID
113
+ # @param read_state [String] DRAFT or PUBLISHED
114
+ # @param input [Hash] Valuation subtype and optional metric
115
+ # @param version [Hash, nil] Optional published version selector
116
+ # @param cache [Boolean, nil] Whether to use the client cache; use false for the freshest available value
117
+ # @return [DeckValuation, nil]
118
+ def valuation(id:, read_state:, input:, version: nil, cache: nil)
119
+ variables = build_variables(id: id, readState: read_state, version: version, input: input)
120
+ key = cache_key('decks', 'valuation', **variables)
121
+ with_cache(key, resource: :decks, cache: cache) do
122
+ data = connection.execute(QueryBuilder.deck_valuation, variables)
123
+ data['deckValuation'] ? DeckValuation.new(data['deckValuation'], client: client) : nil
124
+ end
125
+ end
126
+
107
127
  def get_draft(id, cache: nil)
108
128
  get(id, read_state: 'DRAFT', cache: cache)
109
129
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CardDB
4
- VERSION = '0.5.7'
4
+ VERSION = '0.5.8'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carddb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.7
4
+ version: 0.5.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - CardDB Team