carddb 0.5.1 → 0.5.7
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 +145 -141
- data/CHANGELOG.md +23 -0
- data/README.md +29 -1
- data/lib/carddb/batch.rb +11 -3
- data/lib/carddb/collection.rb +43 -0
- data/lib/carddb/query_builder.rb +30 -3
- data/lib/carddb/resources/rulesets.rb +7 -3
- 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: 17f9d7d913ed21e536175d07c8afa6ea53d4d7cf42f5a14803d4fa37071283e1
|
|
4
|
+
data.tar.gz: 7ac9d30ab0f32dba3708204b62b48574d63ca3419bb1d036a981b8510458a819
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bc9bcebeaf42c0a2cf765e8eaf642c592e1a5905f1b8f3f5003005963e473caa71abcc04e97a37f6499ae45dd1445cafe75e65306bff4fd24f9677f9260e36f7
|
|
7
|
+
data.tar.gz: cd85a07b4429462cf62e360687723182cfc7213c6dd1c89d79f8d243cb5f136ab455e4f100edae85712820035d97be903e154bdc4e18137c95b8f09c22f70173
|
data/.rspec_status
CHANGED
|
@@ -1,48 +1,48 @@
|
|
|
1
1
|
example_id | status | run_time |
|
|
2
2
|
---------------------------------------------------------- | ------ | --------------- |
|
|
3
|
-
./spec/carddb/batch_spec.rb[1:1] | passed | 0.
|
|
4
|
-
./spec/carddb/client_spec.rb[1:1:1] | passed | 0.
|
|
5
|
-
./spec/carddb/client_spec.rb[1:1:2] | passed | 0.
|
|
6
|
-
./spec/carddb/client_spec.rb[1:1:3] | passed | 0.
|
|
7
|
-
./spec/carddb/client_spec.rb[1:1:4] | passed | 0.
|
|
8
|
-
./spec/carddb/client_spec.rb[1:2:1] | passed | 0.
|
|
9
|
-
./spec/carddb/client_spec.rb[1:2:2] | passed | 0.
|
|
10
|
-
./spec/carddb/client_spec.rb[1:3:1] | passed | 0.
|
|
11
|
-
./spec/carddb/client_spec.rb[1:4:1] | passed | 0.
|
|
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 |
|
|
11
|
+
./spec/carddb/client_spec.rb[1:4:1] | passed | 0.00004 seconds |
|
|
12
12
|
./spec/carddb/client_spec.rb[1:5:1] | passed | 0.00004 seconds |
|
|
13
13
|
./spec/carddb/client_spec.rb[1:6:1] | passed | 0.00003 seconds |
|
|
14
14
|
./spec/carddb/client_spec.rb[1:7:1] | passed | 0.00003 seconds |
|
|
15
15
|
./spec/carddb/client_spec.rb[1:8:1] | passed | 0.00003 seconds |
|
|
16
16
|
./spec/carddb/client_spec.rb[1:9:1] | passed | 0.00003 seconds |
|
|
17
|
-
./spec/carddb/client_spec.rb[1:10:1] | passed | 0.
|
|
18
|
-
./spec/carddb/client_spec.rb[1:11:1] | passed | 0.
|
|
19
|
-
./spec/carddb/client_spec.rb[1:12:1] | passed | 0.
|
|
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 |
|
|
19
|
+
./spec/carddb/client_spec.rb[1:12:1] | passed | 0.00004 seconds |
|
|
20
20
|
./spec/carddb/client_spec.rb[1:13:1] | passed | 0.00003 seconds |
|
|
21
|
-
./spec/carddb/client_spec.rb[1:14:1] | passed | 0.
|
|
22
|
-
./spec/carddb/client_spec.rb[1:14:2] | passed | 0.
|
|
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
23
|
./spec/carddb/collection_spec.rb[1:1:1] | passed | 0.00005 seconds |
|
|
24
24
|
./spec/carddb/collection_spec.rb[2:1:1] | passed | 0.00003 seconds |
|
|
25
|
-
./spec/carddb/collection_spec.rb[3:1:1] | passed | 0.
|
|
25
|
+
./spec/carddb/collection_spec.rb[3:1:1] | passed | 0.00197 seconds |
|
|
26
26
|
./spec/carddb/collection_spec.rb[3:1:2] | passed | 0.00014 seconds |
|
|
27
|
-
./spec/carddb/collection_spec.rb[3:1:3] | passed | 0.
|
|
28
|
-
./spec/carddb/collection_spec.rb[3:1:4] | passed | 0.
|
|
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
29
|
./spec/carddb/collection_spec.rb[3:1:5] | passed | 0.00004 seconds |
|
|
30
|
-
./spec/carddb/collection_spec.rb[4:1:1] | passed | 0.
|
|
30
|
+
./spec/carddb/collection_spec.rb[4:1:1] | passed | 0.00015 seconds |
|
|
31
31
|
./spec/carddb/collection_spec.rb[4:1:2] | passed | 0.00014 seconds |
|
|
32
|
-
./spec/carddb/collection_spec.rb[4:1:3] | passed | 0.
|
|
32
|
+
./spec/carddb/collection_spec.rb[4:1:3] | passed | 0.00014 seconds |
|
|
33
33
|
./spec/carddb/collection_spec.rb[4:1:4] | passed | 0.00004 seconds |
|
|
34
|
-
./spec/carddb/configuration_spec.rb[1:1:1] | passed | 0.
|
|
34
|
+
./spec/carddb/configuration_spec.rb[1:1:1] | passed | 0.00003 seconds |
|
|
35
35
|
./spec/carddb/configuration_spec.rb[1:1:2] | passed | 0.00003 seconds |
|
|
36
|
-
./spec/carddb/configuration_spec.rb[1:1:3] | passed | 0.
|
|
37
|
-
./spec/carddb/configuration_spec.rb[1:1:4] | passed | 0.
|
|
36
|
+
./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
38
|
./spec/carddb/configuration_spec.rb[1:1:5] | passed | 0.00003 seconds |
|
|
39
39
|
./spec/carddb/configuration_spec.rb[1:1:6] | passed | 0.00003 seconds |
|
|
40
40
|
./spec/carddb/configuration_spec.rb[1:2:1:1] | passed | 0.00004 seconds |
|
|
41
|
-
./spec/carddb/configuration_spec.rb[1:2:2:1] | passed | 0.
|
|
41
|
+
./spec/carddb/configuration_spec.rb[1:2:2:1] | passed | 0.00003 seconds |
|
|
42
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.
|
|
44
|
-
./spec/carddb/configuration_spec.rb[1:3:2:1] | passed | 0.
|
|
45
|
-
./spec/carddb/configuration_spec.rb[1:3:2:2] | passed | 0.
|
|
43
|
+
./spec/carddb/configuration_spec.rb[1:3:1:1] | passed | 0.00003 seconds |
|
|
44
|
+
./spec/carddb/configuration_spec.rb[1:3:2:1] | passed | 0.00003 seconds |
|
|
45
|
+
./spec/carddb/configuration_spec.rb[1:3:2:2] | passed | 0.00004 seconds |
|
|
46
46
|
./spec/carddb/configuration_spec.rb[1:3:2:3] | passed | 0.00003 seconds |
|
|
47
47
|
./spec/carddb/configuration_spec.rb[1:4:1] | passed | 0.00003 seconds |
|
|
48
48
|
./spec/carddb/configuration_spec.rb[1:4:2] | passed | 0.00003 seconds |
|
|
@@ -51,157 +51,161 @@ example_id | status | run_time
|
|
|
51
51
|
./spec/carddb/configuration_spec.rb[1:6:2] | passed | 0.00003 seconds |
|
|
52
52
|
./spec/carddb/configuration_spec.rb[1:6:3] | passed | 0.00003 seconds |
|
|
53
53
|
./spec/carddb/configuration_spec.rb[1:7:1] | passed | 0.00004 seconds |
|
|
54
|
-
./spec/carddb/configuration_spec.rb[1:7:2] | passed | 0.
|
|
55
|
-
./spec/carddb/configuration_spec.rb[1:7:3] | passed | 0.
|
|
56
|
-
./spec/carddb/deck_tokens_spec.rb[1:1:1] | passed | 0.
|
|
57
|
-
./spec/carddb/deck_tokens_spec.rb[1:2:1] | passed | 0.
|
|
54
|
+
./spec/carddb/configuration_spec.rb[1:7:2] | passed | 0.00003 seconds |
|
|
55
|
+
./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
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.
|
|
59
|
+
./spec/carddb/deck_tokens_spec.rb[1:2:3] | passed | 0.00006 seconds |
|
|
60
60
|
./spec/carddb/filter_builder_spec.rb[1:1:1] | passed | 0.00004 seconds |
|
|
61
|
-
./spec/carddb/filter_builder_spec.rb[1:1:2] | passed | 0.
|
|
62
|
-
./spec/carddb/filter_builder_spec.rb[1:1:3] | passed | 0.
|
|
63
|
-
./spec/carddb/filter_builder_spec.rb[1:1:4] | passed | 0.
|
|
64
|
-
./spec/carddb/filter_builder_spec.rb[1:1:5] | passed | 0.
|
|
65
|
-
./spec/carddb/filter_builder_spec.rb[1:1:6] | passed | 0.
|
|
66
|
-
./spec/carddb/filter_builder_spec.rb[1:1:7] | passed | 0.
|
|
61
|
+
./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 |
|
|
64
|
+
./spec/carddb/filter_builder_spec.rb[1:1:5] | passed | 0.00003 seconds |
|
|
65
|
+
./spec/carddb/filter_builder_spec.rb[1:1:6] | passed | 0.00003 seconds |
|
|
66
|
+
./spec/carddb/filter_builder_spec.rb[1:1:7] | passed | 0.00004 seconds |
|
|
67
67
|
./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.
|
|
68
|
+
./spec/carddb/filter_builder_spec.rb[1:2:1] | passed | 0.00004 seconds |
|
|
69
69
|
./spec/carddb/filter_builder_spec.rb[1:2:2] | passed | 0.00003 seconds |
|
|
70
70
|
./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:5] | passed | 0.
|
|
73
|
-
./spec/carddb/filter_builder_spec.rb[1:2:6] | passed | 0.
|
|
71
|
+
./spec/carddb/filter_builder_spec.rb[1:2:4] | passed | 0.00002 seconds |
|
|
72
|
+
./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
74
|
./spec/carddb/filter_builder_spec.rb[1:2:7] | passed | 0.00003 seconds |
|
|
75
75
|
./spec/carddb/filter_builder_spec.rb[1:2:8] | passed | 0.00003 seconds |
|
|
76
76
|
./spec/carddb/filter_builder_spec.rb[1:2:9] | passed | 0.00003 seconds |
|
|
77
77
|
./spec/carddb/filter_builder_spec.rb[1:2:10] | passed | 0.00003 seconds |
|
|
78
|
-
./spec/carddb/filter_builder_spec.rb[1:2:11] | passed | 0.
|
|
79
|
-
./spec/carddb/filter_builder_spec.rb[1:2:12] | passed | 0.
|
|
78
|
+
./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
80
|
./spec/carddb/filter_builder_spec.rb[1:2:13] | passed | 0.00003 seconds |
|
|
81
|
-
./spec/carddb/query_builder_spec.rb[1:1:1] | passed | 0.
|
|
81
|
+
./spec/carddb/query_builder_spec.rb[1:1:1] | passed | 0.00004 seconds |
|
|
82
82
|
./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.
|
|
83
|
+
./spec/carddb/query_builder_spec.rb[1:1:3] | passed | 0.00003 seconds |
|
|
84
84
|
./spec/carddb/query_builder_spec.rb[1:2:1:1] | passed | 0.00005 seconds |
|
|
85
85
|
./spec/carddb/query_builder_spec.rb[1:2:2:1] | passed | 0.00004 seconds |
|
|
86
|
-
./spec/carddb/query_builder_spec.rb[1:3:1] | passed | 0.
|
|
86
|
+
./spec/carddb/query_builder_spec.rb[1:3:1] | passed | 0.00005 seconds |
|
|
87
87
|
./spec/carddb/query_builder_spec.rb[1:3:2] | passed | 0.00004 seconds |
|
|
88
|
-
./spec/carddb/query_builder_spec.rb[1:4:1] | passed | 0.
|
|
88
|
+
./spec/carddb/query_builder_spec.rb[1:4:1] | passed | 0.00005 seconds |
|
|
89
89
|
./spec/carddb/query_builder_spec.rb[1:4:2] | passed | 0.00004 seconds |
|
|
90
90
|
./spec/carddb/query_builder_spec.rb[1:5:1] | passed | 0.00003 seconds |
|
|
91
|
-
./spec/carddb/query_builder_spec.rb[1:5:2] | passed | 0.
|
|
91
|
+
./spec/carddb/query_builder_spec.rb[1:5:2] | passed | 0.00004 seconds |
|
|
92
92
|
./spec/carddb/query_builder_spec.rb[1:5:3] | passed | 0.00004 seconds |
|
|
93
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.
|
|
94
|
+
./spec/carddb/query_builder_spec.rb[1:5:5] | passed | 0.00006 seconds |
|
|
95
95
|
./spec/carddb/query_builder_spec.rb[1:5:6] | passed | 0.00004 seconds |
|
|
96
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.
|
|
97
|
+
./spec/carddb/query_builder_spec.rb[1:5:8] | passed | 0.00003 seconds |
|
|
98
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.
|
|
99
|
+
./spec/carddb/query_builder_spec.rb[1:6:1] | passed | 0.00007 seconds |
|
|
100
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.
|
|
101
|
+
./spec/carddb/query_builder_spec.rb[1:6:3] | passed | 0.00004 seconds |
|
|
102
102
|
./spec/carddb/query_builder_spec.rb[1:6:4] | passed | 0.00003 seconds |
|
|
103
|
-
./spec/carddb/query_builder_spec.rb[1:6:5] | passed | 0.
|
|
103
|
+
./spec/carddb/query_builder_spec.rb[1:6:5] | passed | 0.00004 seconds |
|
|
104
104
|
./spec/carddb/query_builder_spec.rb[1:6:6] | passed | 0.00006 seconds |
|
|
105
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.
|
|
106
|
+
./spec/carddb/query_builder_spec.rb[1:6:8] | passed | 0.00005 seconds |
|
|
107
107
|
./spec/carddb/query_builder_spec.rb[1:6:9] | passed | 0.00003 seconds |
|
|
108
|
-
./spec/carddb/query_builder_spec.rb[1:6:10] | passed | 0.
|
|
109
|
-
./spec/carddb/
|
|
110
|
-
./spec/carddb/resources/datasets_spec.rb[1:1:
|
|
111
|
-
./spec/carddb/resources/datasets_spec.rb[1:2
|
|
112
|
-
./spec/carddb/resources/datasets_spec.rb[1:
|
|
113
|
-
./spec/carddb/resources/datasets_spec.rb[1:3:
|
|
114
|
-
./spec/carddb/resources/
|
|
115
|
-
./spec/carddb/resources/decks_spec.rb[1:1:
|
|
116
|
-
./spec/carddb/resources/decks_spec.rb[1:1:
|
|
117
|
-
./spec/carddb/resources/decks_spec.rb[1:1:
|
|
118
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
119
|
-
./spec/carddb/resources/decks_spec.rb[1:
|
|
108
|
+
./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 |
|
|
120
122
|
./spec/carddb/resources/decks_spec.rb[1:2:3] | passed | 0.00007 seconds |
|
|
121
|
-
./spec/carddb/resources/decks_spec.rb[1:3:1] | passed | 0.
|
|
123
|
+
./spec/carddb/resources/decks_spec.rb[1:3:1] | passed | 0.00389 seconds |
|
|
122
124
|
./spec/carddb/resources/decks_spec.rb[1:4:1] | passed | 0.00372 seconds |
|
|
123
|
-
./spec/carddb/resources/decks_spec.rb[1:5:1] | passed | 0.
|
|
124
|
-
./spec/carddb/resources/decks_spec.rb[1:6:1] | passed | 0.
|
|
125
|
-
./spec/carddb/resources/decks_spec.rb[1:6:2] | passed | 0.
|
|
126
|
-
./spec/carddb/resources/decks_spec.rb[1:6:3] | passed | 0.
|
|
127
|
-
./spec/carddb/resources/decks_spec.rb[1:6:4] | passed | 0.
|
|
128
|
-
./spec/carddb/resources/decks_spec.rb[1:7:1] | passed | 0.
|
|
129
|
-
./spec/carddb/resources/decks_spec.rb[1:8:1] | passed | 0.
|
|
130
|
-
./spec/carddb/resources/decks_spec.rb[1:9:1] | passed | 0.
|
|
131
|
-
./spec/carddb/resources/decks_spec.rb[1:10:1] | passed | 0.
|
|
132
|
-
./spec/carddb/resources/decks_spec.rb[1:10:2] | passed | 0.
|
|
133
|
-
./spec/carddb/resources/decks_spec.rb[1:10:3] | passed | 0.
|
|
134
|
-
./spec/carddb/resources/decks_spec.rb[1:10:4] | passed | 0.
|
|
135
|
-
./spec/carddb/resources/decks_spec.rb[1:11:1] | passed | 0.
|
|
136
|
-
./spec/carddb/resources/decks_spec.rb[1:12:1] | passed | 0.
|
|
137
|
-
./spec/carddb/resources/decks_spec.rb[1:12:2] | passed | 0.
|
|
138
|
-
./spec/carddb/resources/decks_spec.rb[1:12:3] | passed | 0.
|
|
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 |
|
|
139
141
|
./spec/carddb/resources/decks_spec.rb[1:12:4] | passed | 0.00006 seconds |
|
|
140
142
|
./spec/carddb/resources/decks_spec.rb[1:13:1] | passed | 0.00372 seconds |
|
|
141
|
-
./spec/carddb/resources/decks_spec.rb[1:14:1] | passed | 0.
|
|
142
|
-
./spec/carddb/resources/decks_spec.rb[1:15:1] | passed | 0.
|
|
143
|
-
./spec/carddb/resources/decks_spec.rb[1:15:2] | passed | 0.
|
|
144
|
-
./spec/carddb/resources/decks_spec.rb[1:15:3] | passed | 0.
|
|
145
|
-
./spec/carddb/resources/decks_spec.rb[1:16:1] | passed | 0.
|
|
146
|
-
./spec/carddb/resources/decks_spec.rb[1:17:1] | passed | 0.
|
|
147
|
-
./spec/carddb/resources/decks_spec.rb[1:18:1] | passed | 0.
|
|
148
|
-
./spec/carddb/resources/decks_spec.rb[1:19:1] | passed | 0.
|
|
149
|
-
./spec/carddb/resources/decks_spec.rb[1:20:1] | passed | 0.
|
|
150
|
-
./spec/carddb/resources/decks_spec.rb[1:21:1] | passed | 0.
|
|
151
|
-
./spec/carddb/resources/games_spec.rb[1:1:1] | passed | 0.
|
|
152
|
-
./spec/carddb/resources/games_spec.rb[1:1:2] | passed | 0.
|
|
153
|
-
./spec/carddb/resources/games_spec.rb[1:2:1] | passed | 0.
|
|
154
|
-
./spec/carddb/resources/games_spec.rb[1:2:2] | passed | 0.
|
|
155
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:1:1] | passed | 0.
|
|
156
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:1:2] | passed | 0.
|
|
157
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:1:3] | passed | 0.
|
|
158
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:2:1] | passed | 0.
|
|
159
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:2:2] | passed | 0.
|
|
160
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:3:1] | passed | 0.
|
|
161
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:3:2] | passed | 0.
|
|
162
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:3:3] | passed | 0.
|
|
163
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:4:1] | passed | 0.
|
|
164
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:4:2] | passed | 0.
|
|
165
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:4:3] | passed | 0.
|
|
166
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:5:1] | passed | 0.
|
|
167
|
-
./spec/carddb/resources/publisher_workflows_spec.rb[1:5:2] | passed | 0.
|
|
168
|
-
./spec/carddb/resources/publishers_spec.rb[1:1:1] | passed | 0.
|
|
169
|
-
./spec/carddb/resources/publishers_spec.rb[1:2:1] | passed | 0.
|
|
170
|
-
./spec/carddb/resources/records_spec.rb[1:1:1] | passed | 0.
|
|
171
|
-
./spec/carddb/resources/records_spec.rb[1:1:2] | passed | 0.
|
|
172
|
-
./spec/carddb/resources/records_spec.rb[1:1:3] | passed | 0.
|
|
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 |
|
|
173
175
|
./spec/carddb/resources/records_spec.rb[1:1:4] | passed | 0.00004 seconds |
|
|
174
|
-
./spec/carddb/resources/records_spec.rb[1:2:1] | passed | 0.
|
|
175
|
-
./spec/carddb/resources/records_spec.rb[1:2:2] | passed | 0.
|
|
176
|
-
./spec/carddb/resources/records_spec.rb[1:2:3] | passed | 0.
|
|
177
|
-
./spec/carddb/resources/records_spec.rb[1:3:1] | passed | 0.
|
|
178
|
-
./spec/carddb/resources/records_spec.rb[1:3:2] | passed | 0.
|
|
179
|
-
./spec/carddb/resources/records_spec.rb[1:4:1] | passed | 0.
|
|
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 |
|
|
180
182
|
./spec/carddb/resources/records_spec.rb[1:4:2] | passed | 0.00005 seconds |
|
|
181
|
-
./spec/carddb/resources/records_spec.rb[1:4:3] | passed | 0.
|
|
182
|
-
./spec/carddb/resources/rules_spec.rb[1:1:1] | passed | 0.
|
|
183
|
-
./spec/carddb/resources/rules_spec.rb[1:2:1] | passed | 0.
|
|
184
|
-
./spec/carddb/resources/rulesets_spec.rb[1:1:1] | passed | 0.
|
|
185
|
-
./spec/carddb/resources/rulesets_spec.rb[1:1:2] | passed | 0.
|
|
186
|
-
./spec/carddb/resources/rulesets_spec.rb[1:
|
|
187
|
-
./spec/carddb/resources/rulesets_spec.rb[1:2:
|
|
188
|
-
./spec/carddb/resources/rulesets_spec.rb[1:
|
|
189
|
-
./spec/carddb/resources/rulesets_spec.rb[1:3
|
|
190
|
-
./spec/carddb/resources/
|
|
191
|
-
./spec/carddb/resources/
|
|
192
|
-
./spec/carddb/resources/scans_spec.rb[1:
|
|
193
|
-
./spec/carddb/resources/scans_spec.rb[1:
|
|
194
|
-
./spec/carddb/resources/scans_spec.rb[1:
|
|
195
|
-
./spec/carddb/resources/scans_spec.rb[1:
|
|
196
|
-
./spec/carddb/resources/scans_spec.rb[1:
|
|
197
|
-
./spec/carddb/resources/scans_spec.rb[1:
|
|
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 |
|
|
198
202
|
./spec/carddb_spec.rb[1:1] | passed | 0.00003 seconds |
|
|
199
|
-
./spec/carddb_spec.rb[1:2:1] | passed | 0.
|
|
203
|
+
./spec/carddb_spec.rb[1:2:1] | passed | 0.00004 seconds |
|
|
200
204
|
./spec/carddb_spec.rb[1:3:1] | passed | 0.00003 seconds |
|
|
201
205
|
./spec/carddb_spec.rb[1:4:1] | passed | 0.00003 seconds |
|
|
202
206
|
./spec/carddb_spec.rb[1:5:1] | passed | 0.00003 seconds |
|
|
203
|
-
./spec/carddb_spec.rb[1:6:1] | passed | 0.
|
|
207
|
+
./spec/carddb_spec.rb[1:6:1] | passed | 0.00003 seconds |
|
|
204
208
|
./spec/carddb_spec.rb[1:7:1] | passed | 0.00003 seconds |
|
|
205
209
|
./spec/carddb_spec.rb[1:8:1] | passed | 0.00003 seconds |
|
|
206
210
|
./spec/carddb_spec.rb[1:9:1] | passed | 0.00003 seconds |
|
|
207
|
-
./spec/carddb_spec.rb[1:10:1] | passed | 0.
|
|
211
|
+
./spec/carddb_spec.rb[1:10:1] | passed | 0.00069 seconds |
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.5.7] - 2026-07-24
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Current legality details for published decks and immutable deck versions, including nullable validity, status, issue counts, checked versions, and validation issues.
|
|
15
|
+
- Published representation metadata through `Deck#read_state` and `Deck#represented_version_id`.
|
|
16
|
+
- Draft or published deck selection for ruleset validation impact previews through the `scope:` option.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- Batch deck reads now request current legality and published representation fields.
|
|
21
|
+
|
|
22
|
+
## [0.5.5] - 2026-07-09
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
|
|
26
|
+
- `gameplay` and `match` convenience accessors on ruleset versions, deck validation rules, and ruleset import previews.
|
|
27
|
+
- Ruleset tests covering gameplay/match reads and preservation of game-specific extension fields in draft inputs.
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
|
|
31
|
+
- Ruleset documentation now uses the canonical `deck` fields and includes gameplay and match configuration.
|
|
32
|
+
|
|
10
33
|
## [0.5.1] - 2026-07-08
|
|
11
34
|
|
|
12
35
|
### Added
|
data/README.md
CHANGED
|
@@ -699,7 +699,31 @@ Example ruleset JSON fragments for publisher/admin workflows:
|
|
|
699
699
|
rules = {
|
|
700
700
|
schemaVersion: 1,
|
|
701
701
|
sections: [{ key: "main", label: "Main Deck", default: true }],
|
|
702
|
-
|
|
702
|
+
deck: {
|
|
703
|
+
minCards: 60,
|
|
704
|
+
maxCards: 60,
|
|
705
|
+
countSections: ["main"],
|
|
706
|
+
severity: "BLOCKER"
|
|
707
|
+
},
|
|
708
|
+
gameplay: {
|
|
709
|
+
players: { min: 2, max: 2 },
|
|
710
|
+
setup: {
|
|
711
|
+
shuffleDeck: true,
|
|
712
|
+
startingLife: 20,
|
|
713
|
+
openingHand: { size: 7, sourceSection: "main", countsAsDraw: true }
|
|
714
|
+
},
|
|
715
|
+
mulligan: { kind: "london", maxUses: 7, handSizeDeltaPerUse: -1 },
|
|
716
|
+
turn: { drawCount: 1, startingPlayerDrawsOnFirstTurn: false },
|
|
717
|
+
outcomes: [
|
|
718
|
+
{ kind: "life_at_or_below_zero", result: "loss" },
|
|
719
|
+
{ kind: "draw_from_empty_library", result: "loss" }
|
|
720
|
+
]
|
|
721
|
+
},
|
|
722
|
+
match: {
|
|
723
|
+
gamesToWin: 2,
|
|
724
|
+
sideboardingAllowed: true,
|
|
725
|
+
timeLimitMinutes: 50
|
|
726
|
+
},
|
|
703
727
|
bans: [
|
|
704
728
|
{
|
|
705
729
|
key: "no-banned-cards",
|
|
@@ -720,6 +744,10 @@ rules = {
|
|
|
720
744
|
}
|
|
721
745
|
```
|
|
722
746
|
|
|
747
|
+
`CardDB::RulesetVersion`, `CardDB::DeckValidationRules`, and
|
|
748
|
+
`CardDB::RulesetVersionDraftImportPreview` expose `gameplay` and `match` convenience hashes. The
|
|
749
|
+
full extensible payload remains available through `rules`.
|
|
750
|
+
|
|
723
751
|
Server-side app-owned and trusted token workflow:
|
|
724
752
|
|
|
725
753
|
```ruby
|
data/lib/carddb/batch.rb
CHANGED
|
@@ -331,14 +331,22 @@ module CardDB
|
|
|
331
331
|
'createdByAccountId createdByApiApplicationId accountId apiApplicationId',
|
|
332
332
|
'gameId game { id key name publisher { id name slug } }',
|
|
333
333
|
'slug identifier title description formatKey visibility accessMode',
|
|
334
|
-
'discoverability state archivedAt deletedAt unpublishedAt',
|
|
334
|
+
'discoverability state readState representedVersionId archivedAt deletedAt unpublishedAt',
|
|
335
335
|
'externalRefApiApplicationId externalRef externalSubjectRef',
|
|
336
336
|
'rulesetId sourceUrl metadata',
|
|
337
337
|
'entries { id datasetId recordId identifier quantity section sortOrder annotations display }',
|
|
338
338
|
'sectionDefinitions { key label description order default aliases minCards maxCards excludedFromDeckSize legalCardTypes metadata }',
|
|
339
|
-
|
|
339
|
+
"latestPublishedVersion { id deckId versionNumber slug identifier title description formatKey visibility currentLegality { #{deck_legality_fields} } }",
|
|
340
340
|
'publishedAt draftRevision draftUpdatedAt draftUpdatedByAccountId draftUpdatedByApiApplicationId',
|
|
341
|
-
|
|
341
|
+
"hasUnpublishedChanges valid currentLegality { #{deck_legality_fields} } createdAt updatedAt"
|
|
342
|
+
].join(' ')
|
|
343
|
+
end
|
|
344
|
+
|
|
345
|
+
def deck_legality_fields
|
|
346
|
+
[
|
|
347
|
+
'status valid blockerCount warningCount affectedEntryCount checkedAt',
|
|
348
|
+
'rulesetVersionId cardDatasetVersionId reason',
|
|
349
|
+
'issues { code severity message entryIds section datasetId identifier metadata }'
|
|
342
350
|
].join(' ')
|
|
343
351
|
end
|
|
344
352
|
end
|
data/lib/carddb/collection.rb
CHANGED
|
@@ -1707,6 +1707,14 @@ module CardDB
|
|
|
1707
1707
|
data['state']
|
|
1708
1708
|
end
|
|
1709
1709
|
|
|
1710
|
+
def read_state
|
|
1711
|
+
data['readState']
|
|
1712
|
+
end
|
|
1713
|
+
|
|
1714
|
+
def represented_version_id
|
|
1715
|
+
data['representedVersionId']
|
|
1716
|
+
end
|
|
1717
|
+
|
|
1710
1718
|
def archived?
|
|
1711
1719
|
state == 'ARCHIVED'
|
|
1712
1720
|
end
|
|
@@ -1789,6 +1797,14 @@ module CardDB
|
|
|
1789
1797
|
!!data['hasUnpublishedChanges']
|
|
1790
1798
|
end
|
|
1791
1799
|
|
|
1800
|
+
def valid?
|
|
1801
|
+
data['valid']
|
|
1802
|
+
end
|
|
1803
|
+
|
|
1804
|
+
def current_legality
|
|
1805
|
+
@current_legality ||= DeckLegality.new(data['currentLegality'], client: client)
|
|
1806
|
+
end
|
|
1807
|
+
|
|
1792
1808
|
def created_at
|
|
1793
1809
|
parse_time(data['createdAt'])
|
|
1794
1810
|
end
|
|
@@ -1898,6 +1914,10 @@ module CardDB
|
|
|
1898
1914
|
@validated_against ||= data['validatedAgainst'] ? DeckValidatedAgainst.new(data['validatedAgainst'], client: client) : nil
|
|
1899
1915
|
end
|
|
1900
1916
|
|
|
1917
|
+
def current_legality
|
|
1918
|
+
@current_legality ||= DeckLegality.new(data['currentLegality'], client: client)
|
|
1919
|
+
end
|
|
1920
|
+
|
|
1901
1921
|
def section_definitions
|
|
1902
1922
|
@section_definitions ||= (data['sectionDefinitions'] || []).map do |definition|
|
|
1903
1923
|
DeckSectionDefinition.new(definition, client: client)
|
|
@@ -2077,6 +2097,8 @@ module CardDB
|
|
|
2077
2097
|
def version_label = data['versionLabel']
|
|
2078
2098
|
def status = data['status']
|
|
2079
2099
|
def rules = data['rules'] || {}
|
|
2100
|
+
def gameplay = rules['gameplay'] || {}
|
|
2101
|
+
def match = rules['match'] || {}
|
|
2080
2102
|
def card_dataset_id = data['cardDatasetId']
|
|
2081
2103
|
def card_dataset_version_id = data['cardDatasetVersionId']
|
|
2082
2104
|
def source_dataset_id = data['sourceDatasetId']
|
|
@@ -2108,6 +2130,8 @@ module CardDB
|
|
|
2108
2130
|
def ruleset_key = data['rulesetKey']
|
|
2109
2131
|
def ruleset_version_label = data['rulesetVersionLabel']
|
|
2110
2132
|
def rules = data['rules'] || {}
|
|
2133
|
+
def gameplay = rules['gameplay'] || {}
|
|
2134
|
+
def match = rules['match'] || {}
|
|
2111
2135
|
|
|
2112
2136
|
def sections
|
|
2113
2137
|
@sections ||= (data['sections'] || []).map { |section| DeckSectionDefinition.new(section, client: client) }
|
|
@@ -2150,6 +2174,8 @@ module CardDB
|
|
|
2150
2174
|
def source_dataset_record_id = data['sourceDatasetRecordId']
|
|
2151
2175
|
def source_record_identifier = data['sourceRecordIdentifier']
|
|
2152
2176
|
def rules = data['rules'] || {}
|
|
2177
|
+
def gameplay = rules['gameplay'] || {}
|
|
2178
|
+
def match = rules['match'] || {}
|
|
2153
2179
|
def rules_fingerprint = data['rulesFingerprint']
|
|
2154
2180
|
def summary = data['summary']
|
|
2155
2181
|
def section_count = data['sectionCount']
|
|
@@ -2197,6 +2223,23 @@ module CardDB
|
|
|
2197
2223
|
def metadata = data['metadata'] || {}
|
|
2198
2224
|
end
|
|
2199
2225
|
|
|
2226
|
+
# Wrapper for a published deck snapshot's legality against current rules and card data
|
|
2227
|
+
class DeckLegality < Resource
|
|
2228
|
+
def status = data['status']
|
|
2229
|
+
def valid? = data['valid']
|
|
2230
|
+
def blocker_count = data['blockerCount']
|
|
2231
|
+
def warning_count = data['warningCount']
|
|
2232
|
+
def affected_entry_count = data['affectedEntryCount']
|
|
2233
|
+
def checked_at = parse_time(data['checkedAt'])
|
|
2234
|
+
def ruleset_version_id = data['rulesetVersionId']
|
|
2235
|
+
def card_dataset_version_id = data['cardDatasetVersionId']
|
|
2236
|
+
def reason = data['reason']
|
|
2237
|
+
|
|
2238
|
+
def issues
|
|
2239
|
+
@issues ||= (data['issues'] || []).map { |issue| DeckValidationIssue.new(issue, client: client) }
|
|
2240
|
+
end
|
|
2241
|
+
end
|
|
2242
|
+
|
|
2200
2243
|
class DeckValidationAffectedEntry < Resource
|
|
2201
2244
|
def entry_id = data['entryId']
|
|
2202
2245
|
def dataset_id = data['datasetId']
|
data/lib/carddb/query_builder.rb
CHANGED
|
@@ -1248,10 +1248,11 @@ module CardDB
|
|
|
1248
1248
|
GRAPHQL
|
|
1249
1249
|
end
|
|
1250
1250
|
|
|
1251
|
-
def ruleset_validation_impact(ruleset_version_id:, first: nil)
|
|
1251
|
+
def ruleset_validation_impact(ruleset_version_id:, first: nil, scope: nil)
|
|
1252
1252
|
args = build_args(
|
|
1253
|
-
{ rulesetVersionId: ruleset_version_id, first: first },
|
|
1254
|
-
required: [
|
|
1253
|
+
{ rulesetVersionId: ruleset_version_id, first: first, scope: scope },
|
|
1254
|
+
required: %i[rulesetVersionId scope],
|
|
1255
|
+
type_overrides: { scope: 'RulesetValidationImpactScope' }
|
|
1255
1256
|
)
|
|
1256
1257
|
|
|
1257
1258
|
<<~GRAPHQL
|
|
@@ -2806,6 +2807,23 @@ module CardDB
|
|
|
2806
2807
|
FIELDS
|
|
2807
2808
|
end
|
|
2808
2809
|
|
|
2810
|
+
def deck_legality_fields
|
|
2811
|
+
<<~FIELDS
|
|
2812
|
+
status
|
|
2813
|
+
valid
|
|
2814
|
+
blockerCount
|
|
2815
|
+
warningCount
|
|
2816
|
+
affectedEntryCount
|
|
2817
|
+
checkedAt
|
|
2818
|
+
rulesetVersionId
|
|
2819
|
+
cardDatasetVersionId
|
|
2820
|
+
reason
|
|
2821
|
+
issues {
|
|
2822
|
+
#{deck_validation_issue_fields}
|
|
2823
|
+
}
|
|
2824
|
+
FIELDS
|
|
2825
|
+
end
|
|
2826
|
+
|
|
2809
2827
|
def deck_validation_fields
|
|
2810
2828
|
<<~FIELDS
|
|
2811
2829
|
deckId
|
|
@@ -2978,6 +2996,8 @@ module CardDB
|
|
|
2978
2996
|
accessMode
|
|
2979
2997
|
discoverability
|
|
2980
2998
|
state
|
|
2999
|
+
readState
|
|
3000
|
+
representedVersionId
|
|
2981
3001
|
archivedAt
|
|
2982
3002
|
deletedAt
|
|
2983
3003
|
unpublishedAt
|
|
@@ -2999,6 +3019,10 @@ module CardDB
|
|
|
2999
3019
|
draftUpdatedByAccountId
|
|
3000
3020
|
draftUpdatedByApiApplicationId
|
|
3001
3021
|
hasUnpublishedChanges
|
|
3022
|
+
valid
|
|
3023
|
+
currentLegality {
|
|
3024
|
+
#{deck_legality_fields}
|
|
3025
|
+
}
|
|
3002
3026
|
createdAt
|
|
3003
3027
|
updatedAt
|
|
3004
3028
|
game {
|
|
@@ -3088,6 +3112,9 @@ module CardDB
|
|
|
3088
3112
|
validatedAgainst {
|
|
3089
3113
|
#{deck_validated_against_fields}
|
|
3090
3114
|
}
|
|
3115
|
+
currentLegality {
|
|
3116
|
+
#{deck_legality_fields}
|
|
3117
|
+
}
|
|
3091
3118
|
sectionDefinitions {
|
|
3092
3119
|
#{deck_section_definition_fields}
|
|
3093
3120
|
}
|
|
@@ -112,9 +112,13 @@ module CardDB
|
|
|
112
112
|
RulesetVersionDraftImportPreview.new(data['rulesetVersionDraftImportPreview'], client: client)
|
|
113
113
|
end
|
|
114
114
|
|
|
115
|
-
def validation_impact(ruleset_version_id:, first: nil, cache: nil)
|
|
116
|
-
query = QueryBuilder.ruleset_validation_impact(
|
|
117
|
-
|
|
115
|
+
def validation_impact(ruleset_version_id:, first: nil, scope: nil, cache: nil)
|
|
116
|
+
query = QueryBuilder.ruleset_validation_impact(
|
|
117
|
+
ruleset_version_id: ruleset_version_id,
|
|
118
|
+
first: first,
|
|
119
|
+
scope: scope
|
|
120
|
+
)
|
|
121
|
+
variables = build_variables(rulesetVersionId: ruleset_version_id, first: first, scope: scope)
|
|
118
122
|
key = cache_key('rulesets', 'validation_impact', **variables)
|
|
119
123
|
|
|
120
124
|
with_cache(key, resource: :rulesets, cache: cache) do
|
data/lib/carddb/version.rb
CHANGED