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 +4 -4
- data/.rspec_status +162 -157
- data/CHANGELOG.md +8 -0
- data/README.md +14 -0
- data/lib/carddb/batch.rb +38 -2
- data/lib/carddb/collection.rb +69 -0
- data/lib/carddb/query_builder.rb +74 -0
- data/lib/carddb/resources/decks.rb +20 -0
- data/lib/carddb/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e96ae705e2f67a17c453bdb57a8b291f42839870807ae5dc882a9a6ebb4b7878
|
|
4
|
+
data.tar.gz: 238def5089c381ad922eeea2a27a8ab1f1887a4a5c488b88647031f4f17b3320
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.
|
|
4
|
-
./spec/carddb/
|
|
5
|
-
./spec/carddb/client_spec.rb[1:1:
|
|
6
|
-
./spec/carddb/client_spec.rb[1:1:
|
|
7
|
-
./spec/carddb/client_spec.rb[1:1:
|
|
8
|
-
./spec/carddb/client_spec.rb[1:
|
|
9
|
-
./spec/carddb/client_spec.rb[1:2:
|
|
10
|
-
./spec/carddb/client_spec.rb[1:
|
|
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.
|
|
14
|
-
./spec/carddb/client_spec.rb[1:7:1] | passed | 0.
|
|
15
|
-
./spec/carddb/client_spec.rb[1:8:1] | passed | 0.
|
|
16
|
-
./spec/carddb/client_spec.rb[1:9:1] | passed | 0.
|
|
17
|
-
./spec/carddb/client_spec.rb[1:10:1] | passed | 0.
|
|
18
|
-
./spec/carddb/client_spec.rb[1:11:1] | passed | 0.
|
|
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.
|
|
21
|
-
./spec/carddb/client_spec.rb[1:14:1] | passed | 0.
|
|
22
|
-
./spec/carddb/client_spec.rb[1:14:2] | passed | 0.
|
|
23
|
-
./spec/carddb/collection_spec.rb[1:1:1] | passed | 0.
|
|
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.
|
|
26
|
-
./spec/carddb/collection_spec.rb[3:1:2] | passed | 0.
|
|
27
|
-
./spec/carddb/collection_spec.rb[3:1:3] | passed | 0.
|
|
28
|
-
./spec/carddb/collection_spec.rb[3:1:4] | passed | 0.
|
|
29
|
-
./spec/carddb/collection_spec.rb[3:1:5] | passed | 0.
|
|
30
|
-
./spec/carddb/collection_spec.rb[4:1:1] | passed | 0.
|
|
31
|
-
./spec/carddb/collection_spec.rb[4:1:2] | passed | 0.
|
|
32
|
-
./spec/carddb/collection_spec.rb[4:1:3] | passed | 0.
|
|
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.
|
|
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.
|
|
38
|
-
./spec/carddb/configuration_spec.rb[1:1:5] | passed | 0.
|
|
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.
|
|
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.
|
|
43
|
-
./spec/carddb/configuration_spec.rb[1:3:1:1] | passed | 0.
|
|
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.
|
|
53
|
-
./spec/carddb/configuration_spec.rb[1:7:1] | passed | 0.
|
|
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.
|
|
57
|
-
./spec/carddb/deck_tokens_spec.rb[1:2:1] | passed | 0.
|
|
58
|
-
./spec/carddb/deck_tokens_spec.rb[1:2:2] | passed | 0.
|
|
59
|
-
./spec/carddb/deck_tokens_spec.rb[1:2:3] | passed | 0.
|
|
60
|
-
./spec/carddb/filter_builder_spec.rb[1:1:1] | passed | 0.
|
|
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.
|
|
63
|
-
./spec/carddb/filter_builder_spec.rb[1:1:4] | passed | 0.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
93
|
-
./spec/carddb/query_builder_spec.rb[1:5:4] | passed | 0.
|
|
94
|
-
./spec/carddb/query_builder_spec.rb[1:5:5] | passed | 0.
|
|
95
|
-
./spec/carddb/query_builder_spec.rb[1:5:6] | passed | 0.
|
|
96
|
-
./spec/carddb/query_builder_spec.rb[1:5:7] | passed | 0.
|
|
97
|
-
./spec/carddb/query_builder_spec.rb[1:5:8] | passed | 0.
|
|
98
|
-
./spec/carddb/query_builder_spec.rb[1:5:9] | passed | 0.
|
|
99
|
-
./spec/carddb/query_builder_spec.rb[1:
|
|
100
|
-
./spec/carddb/query_builder_spec.rb[1:6:
|
|
101
|
-
./spec/carddb/query_builder_spec.rb[1:6:
|
|
102
|
-
./spec/carddb/query_builder_spec.rb[1:6:
|
|
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.
|
|
105
|
-
./spec/carddb/query_builder_spec.rb[1:6:7] | passed | 0.
|
|
106
|
-
./spec/carddb/query_builder_spec.rb[1:6:8] | passed | 0.
|
|
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.
|
|
110
|
-
./spec/carddb/resources/datasets_spec.rb[1:1:1] | passed | 0.
|
|
111
|
-
./spec/carddb/resources/datasets_spec.rb[1:1:2] | passed | 0.
|
|
112
|
-
./spec/carddb/resources/datasets_spec.rb[1:2:1] | passed | 0.
|
|
113
|
-
./spec/carddb/resources/datasets_spec.rb[1:3:1] | passed | 0.
|
|
114
|
-
./spec/carddb/resources/datasets_spec.rb[1:3:2] | passed | 0.
|
|
115
|
-
./spec/carddb/resources/decks_spec.rb[1:1:1] | passed | 0.
|
|
116
|
-
./spec/carddb/resources/decks_spec.rb[1:1:2] | passed | 0.
|
|
117
|
-
./spec/carddb/resources/decks_spec.rb[1:1:3] | passed | 0.
|
|
118
|
-
./spec/carddb/resources/decks_spec.rb[1:1:4] | passed | 0.
|
|
119
|
-
./spec/carddb/resources/decks_spec.rb[1:1:5] | passed | 0.
|
|
120
|
-
./spec/carddb/resources/decks_spec.rb[1:2:1] | passed | 0.
|
|
121
|
-
./spec/carddb/resources/decks_spec.rb[1:2:2] | passed | 0.
|
|
122
|
-
./spec/carddb/resources/decks_spec.rb[1:2:3] | passed | 0.
|
|
123
|
-
./spec/carddb/resources/decks_spec.rb[1:3:1] | passed | 0.
|
|
124
|
-
./spec/carddb/resources/decks_spec.rb[1:4:1] | passed | 0.
|
|
125
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
126
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
127
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
128
|
-
./spec/carddb/resources/decks_spec.rb[1:6:
|
|
129
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
130
|
-
./spec/carddb/resources/decks_spec.rb[1:7:
|
|
131
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
132
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
133
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
134
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
135
|
-
./spec/carddb/resources/decks_spec.rb[1:10:
|
|
136
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
137
|
-
./spec/carddb/resources/decks_spec.rb[1:11:
|
|
138
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
139
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
140
|
-
./spec/carddb/resources/decks_spec.rb[1:12:
|
|
141
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
142
|
-
./spec/carddb/resources/decks_spec.rb[1:13:
|
|
143
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
144
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
145
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
146
|
-
./spec/carddb/resources/decks_spec.rb[1:15:
|
|
147
|
-
./spec/carddb/resources/decks_spec.rb[1:16:1] | passed | 0.
|
|
148
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
149
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
150
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
151
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
152
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
153
|
-
./spec/carddb/resources/
|
|
154
|
-
./spec/carddb/resources/
|
|
155
|
-
./spec/carddb/resources/
|
|
156
|
-
./spec/carddb/resources/games_spec.rb[1:
|
|
157
|
-
./spec/carddb/resources/
|
|
158
|
-
./spec/carddb/resources/
|
|
159
|
-
./spec/carddb/resources/
|
|
160
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:
|
|
161
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:
|
|
162
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:3
|
|
163
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:
|
|
164
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:
|
|
165
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:
|
|
166
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:
|
|
167
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:
|
|
168
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:
|
|
169
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:
|
|
170
|
-
./spec/carddb/resources/
|
|
171
|
-
./spec/carddb/resources/
|
|
172
|
-
./spec/carddb/resources/
|
|
173
|
-
./spec/carddb/resources/
|
|
174
|
-
./spec/carddb/resources/
|
|
175
|
-
./spec/carddb/resources/records_spec.rb[1:1:
|
|
176
|
-
./spec/carddb/resources/records_spec.rb[1:2
|
|
177
|
-
./spec/carddb/resources/records_spec.rb[1:
|
|
178
|
-
./spec/carddb/resources/records_spec.rb[1:
|
|
179
|
-
./spec/carddb/resources/records_spec.rb[1:
|
|
180
|
-
./spec/carddb/resources/records_spec.rb[1:
|
|
181
|
-
./spec/carddb/resources/records_spec.rb[1:
|
|
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.
|
|
184
|
-
./spec/carddb/resources/rules_spec.rb[1:1:1] | passed | 0.
|
|
185
|
-
./spec/carddb/resources/rules_spec.rb[1:2:1] | passed | 0.
|
|
186
|
-
./spec/carddb/resources/rulesets_spec.rb[1:1:1] | passed | 0.
|
|
187
|
-
./spec/carddb/resources/rulesets_spec.rb[1:1:2] | passed | 0.
|
|
188
|
-
./spec/carddb/resources/rulesets_spec.rb[1:1:3] | passed | 0.
|
|
189
|
-
./spec/carddb/resources/rulesets_spec.rb[1:2:1] | passed | 0.
|
|
190
|
-
./spec/carddb/resources/rulesets_spec.rb[1:2:2] | passed | 0.
|
|
191
|
-
./spec/carddb/resources/rulesets_spec.rb[1:2:3] | passed | 0.
|
|
192
|
-
./spec/carddb/resources/rulesets_spec.rb[1:3:1] | passed | 0.
|
|
193
|
-
./spec/carddb/resources/rulesets_spec.rb[1:3:2] | passed | 0.
|
|
194
|
-
./spec/carddb/resources/scans_spec.rb[1:1] | passed | 0.
|
|
195
|
-
./spec/carddb/resources/scans_spec.rb[1:2] | passed | 0.
|
|
196
|
-
./spec/carddb/resources/scans_spec.rb[1:3] | passed | 0.
|
|
197
|
-
./spec/carddb/resources/scans_spec.rb[1:4] | passed | 0.
|
|
198
|
-
./spec/carddb/resources/scans_spec.rb[1:5] | passed | 0.
|
|
199
|
-
./spec/carddb/resources/scans_spec.rb[1:6] | passed | 0.
|
|
200
|
-
./spec/carddb/resources/scans_spec.rb[1:7] | passed | 0.
|
|
201
|
-
./spec/carddb/resources/scans_spec.rb[1:8] | passed | 0.
|
|
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.
|
|
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.
|
|
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.
|
|
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,
|
|
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
|
data/lib/carddb/collection.rb
CHANGED
|
@@ -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']
|
data/lib/carddb/query_builder.rb
CHANGED
|
@@ -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
|
data/lib/carddb/version.rb
CHANGED