carddb 0.4.5 → 0.4.6

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: 5fb43b6e9dec309a8ad488be46032c6085d30762cfb5063a5dca074b4fab0dc2
4
- data.tar.gz: 680dc414532152208d5044d8400810ac77db75ea338d1d311ae7ac3b3d61ab43
3
+ metadata.gz: f029ccc69d199c05a4acb44a2c1f040e49c7d64e877b0b78adfe61d901c40bbf
4
+ data.tar.gz: cac9ba5a750b2d030a6132c25c51dc00d440437763810692f01158c637dffafb
5
5
  SHA512:
6
- metadata.gz: 9c1c6f9a924d66b680dcf7b02cb00e7b3c61635d28e4993ccfc6cdc89d679ec3cc2b4409e53dc1e3cf8d5d847937db3e745c60971e15d262970c10684148d5d0
7
- data.tar.gz: eed25e8f62c187140ad46acea7adb83116bc70ec7d584306226728c93bbb8062deb05d303809fbde589ad47dc521aed5505958695164bc66045dbb61bc75b509
6
+ metadata.gz: 40b2647b7f48c0fad81799e2e7bcfa802e31c445a60483e31bb04a1846b093567ee6f7eadaaed2bd030345822ad38bd67d6c927fe3cc1a3a8dfe6aa04e39c856
7
+ data.tar.gz: dd83ff1b5e28951ac8c0cda5a3da65cf5ee0d5555bc84cf03c24863385daba1b5843fd9b6eb94c0f47edaed9c585613e89d8e1955c4e82f10d9edb49f88890d8
data/.rspec_status CHANGED
@@ -1,193 +1,205 @@
1
1
  example_id | status | run_time |
2
2
  ---------------------------------------------------------- | ------ | --------------- |
3
- ./spec/carddb/batch_spec.rb[1:1] | passed | 0.00945 seconds |
4
- ./spec/carddb/client_spec.rb[1:1:1] | passed | 0.00005 seconds |
5
- ./spec/carddb/client_spec.rb[1:1:2] | passed | 0.00004 seconds |
3
+ ./spec/carddb/batch_spec.rb[1:1] | passed | 0.00818 seconds |
4
+ ./spec/carddb/client_spec.rb[1:1:1] | passed | 0.00004 seconds |
5
+ ./spec/carddb/client_spec.rb[1:1:2] | passed | 0.00003 seconds |
6
6
  ./spec/carddb/client_spec.rb[1:1:3] | passed | 0.00004 seconds |
7
7
  ./spec/carddb/client_spec.rb[1:1:4] | passed | 0.00003 seconds |
8
- ./spec/carddb/client_spec.rb[1:2:1] | passed | 0.00015 seconds |
9
- ./spec/carddb/client_spec.rb[1:2:2] | passed | 0.00018 seconds |
8
+ ./spec/carddb/client_spec.rb[1:2:1] | passed | 0.00014 seconds |
9
+ ./spec/carddb/client_spec.rb[1:2:2] | passed | 0.00016 seconds |
10
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
- ./spec/carddb/client_spec.rb[1:5:1] | passed | 0.00004 seconds |
13
- ./spec/carddb/client_spec.rb[1:6:1] | passed | 0.00004 seconds |
11
+ ./spec/carddb/client_spec.rb[1:4:1] | passed | 0.00003 seconds |
12
+ ./spec/carddb/client_spec.rb[1:5:1] | passed | 0.00003 seconds |
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
- ./spec/carddb/client_spec.rb[1:9:1] | passed | 0.00004 seconds |
16
+ ./spec/carddb/client_spec.rb[1:9:1] | passed | 0.00003 seconds |
17
17
  ./spec/carddb/client_spec.rb[1:10:1] | passed | 0.00003 seconds |
18
- ./spec/carddb/client_spec.rb[1:11:1] | passed | 0.00004 seconds |
18
+ ./spec/carddb/client_spec.rb[1:11:1] | passed | 0.00003 seconds |
19
19
  ./spec/carddb/client_spec.rb[1:12:1] | passed | 0.00003 seconds |
20
- ./spec/carddb/client_spec.rb[1:13:1] | passed | 0.00025 seconds |
21
- ./spec/carddb/client_spec.rb[1:13:2] | passed | 0.00411 seconds |
22
- ./spec/carddb/collection_spec.rb[1:1:1] | passed | 0.00005 seconds |
23
- ./spec/carddb/collection_spec.rb[2:1:1] | passed | 0.00004 seconds |
24
- ./spec/carddb/collection_spec.rb[3:1:1] | passed | 0.00195 seconds |
25
- ./spec/carddb/collection_spec.rb[3:1:2] | passed | 0.00015 seconds |
26
- ./spec/carddb/collection_spec.rb[3:1:3] | passed | 0.00033 seconds |
27
- ./spec/carddb/collection_spec.rb[3:1:4] | passed | 0.00033 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.00029 seconds |
22
+ ./spec/carddb/client_spec.rb[1:14:2] | passed | 0.0037 seconds |
23
+ ./spec/carddb/collection_spec.rb[1:1:1] | passed | 0.00004 seconds |
24
+ ./spec/carddb/collection_spec.rb[2:1:1] | passed | 0.00003 seconds |
25
+ ./spec/carddb/collection_spec.rb[3:1:1] | passed | 0.0017 seconds |
26
+ ./spec/carddb/collection_spec.rb[3:1:2] | passed | 0.00013 seconds |
27
+ ./spec/carddb/collection_spec.rb[3:1:3] | passed | 0.00035 seconds |
28
+ ./spec/carddb/collection_spec.rb[3:1:4] | passed | 0.0003 seconds |
28
29
  ./spec/carddb/collection_spec.rb[3:1:5] | passed | 0.00004 seconds |
29
- ./spec/carddb/collection_spec.rb[4:1:1] | passed | 0.00015 seconds |
30
- ./spec/carddb/collection_spec.rb[4:1:2] | passed | 0.00016 seconds |
31
- ./spec/carddb/collection_spec.rb[4:1:3] | passed | 0.00014 seconds |
30
+ ./spec/carddb/collection_spec.rb[4:1:1] | passed | 0.00019 seconds |
31
+ ./spec/carddb/collection_spec.rb[4:1:2] | passed | 0.00017 seconds |
32
+ ./spec/carddb/collection_spec.rb[4:1:3] | passed | 0.00016 seconds |
32
33
  ./spec/carddb/collection_spec.rb[4:1:4] | passed | 0.00004 seconds |
33
- ./spec/carddb/configuration_spec.rb[1:1:1] | passed | 0.00005 seconds |
34
- ./spec/carddb/configuration_spec.rb[1:1:2] | passed | 0.00004 seconds |
34
+ ./spec/carddb/configuration_spec.rb[1:1:1] | passed | 0.00004 seconds |
35
+ ./spec/carddb/configuration_spec.rb[1:1:2] | passed | 0.00003 seconds |
35
36
  ./spec/carddb/configuration_spec.rb[1:1:3] | passed | 0.00003 seconds |
36
37
  ./spec/carddb/configuration_spec.rb[1:1:4] | passed | 0.00003 seconds |
37
38
  ./spec/carddb/configuration_spec.rb[1:1:5] | passed | 0.00003 seconds |
38
39
  ./spec/carddb/configuration_spec.rb[1:1:6] | passed | 0.00003 seconds |
39
- ./spec/carddb/configuration_spec.rb[1:2:1:1] | passed | 0.00004 seconds |
40
- ./spec/carddb/configuration_spec.rb[1:2:2:1] | passed | 0.00003 seconds |
41
- ./spec/carddb/configuration_spec.rb[1:2:2:2] | passed | 0.00005 seconds |
42
- ./spec/carddb/configuration_spec.rb[1:3:1:1] | passed | 0.00004 seconds |
40
+ ./spec/carddb/configuration_spec.rb[1:2:1:1] | passed | 0.00005 seconds |
41
+ ./spec/carddb/configuration_spec.rb[1:2:2:1] | passed | 0.00004 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
44
  ./spec/carddb/configuration_spec.rb[1:3:2:1] | passed | 0.00003 seconds |
44
45
  ./spec/carddb/configuration_spec.rb[1:3:2:2] | passed | 0.00004 seconds |
45
- ./spec/carddb/configuration_spec.rb[1:3:2:3] | passed | 0.00003 seconds |
46
+ ./spec/carddb/configuration_spec.rb[1:3:2:3] | passed | 0.00004 seconds |
46
47
  ./spec/carddb/configuration_spec.rb[1:4:1] | passed | 0.00003 seconds |
47
- ./spec/carddb/configuration_spec.rb[1:4:2] | passed | 0.00003 seconds |
48
+ ./spec/carddb/configuration_spec.rb[1:4:2] | passed | 0.00004 seconds |
48
49
  ./spec/carddb/configuration_spec.rb[1:5:1] | passed | 0.00003 seconds |
49
50
  ./spec/carddb/configuration_spec.rb[1:6:1] | passed | 0.00003 seconds |
50
- ./spec/carddb/configuration_spec.rb[1:6:2] | passed | 0.00004 seconds |
51
+ ./spec/carddb/configuration_spec.rb[1:6:2] | passed | 0.00003 seconds |
51
52
  ./spec/carddb/configuration_spec.rb[1:6:3] | passed | 0.00003 seconds |
52
53
  ./spec/carddb/configuration_spec.rb[1:7:1] | passed | 0.00003 seconds |
53
- ./spec/carddb/configuration_spec.rb[1:7:2] | passed | 0.00003 seconds |
54
+ ./spec/carddb/configuration_spec.rb[1:7:2] | passed | 0.00004 seconds |
54
55
  ./spec/carddb/configuration_spec.rb[1:7:3] | passed | 0.00004 seconds |
55
- ./spec/carddb/deck_tokens_spec.rb[1:1:1] | passed | 0.00061 seconds |
56
- ./spec/carddb/deck_tokens_spec.rb[1:2:1] | passed | 0.00074 seconds |
57
- ./spec/carddb/deck_tokens_spec.rb[1:2:2] | passed | 0.00023 seconds |
56
+ ./spec/carddb/deck_tokens_spec.rb[1:1:1] | passed | 0.00073 seconds |
57
+ ./spec/carddb/deck_tokens_spec.rb[1:2:1] | passed | 0.00077 seconds |
58
+ ./spec/carddb/deck_tokens_spec.rb[1:2:2] | passed | 0.00026 seconds |
58
59
  ./spec/carddb/deck_tokens_spec.rb[1:2:3] | passed | 0.00007 seconds |
59
60
  ./spec/carddb/filter_builder_spec.rb[1:1:1] | passed | 0.00004 seconds |
60
- ./spec/carddb/filter_builder_spec.rb[1:1:2] | passed | 0.00003 seconds |
61
+ ./spec/carddb/filter_builder_spec.rb[1:1:2] | passed | 0.00004 seconds |
61
62
  ./spec/carddb/filter_builder_spec.rb[1:1:3] | passed | 0.00003 seconds |
62
- ./spec/carddb/filter_builder_spec.rb[1:1:4] | passed | 0.00003 seconds |
63
+ ./spec/carddb/filter_builder_spec.rb[1:1:4] | passed | 0.00004 seconds |
63
64
  ./spec/carddb/filter_builder_spec.rb[1:1:5] | passed | 0.00003 seconds |
64
65
  ./spec/carddb/filter_builder_spec.rb[1:1:6] | passed | 0.00004 seconds |
65
- ./spec/carddb/filter_builder_spec.rb[1:1:7] | passed | 0.00004 seconds |
66
+ ./spec/carddb/filter_builder_spec.rb[1:1:7] | passed | 0.00003 seconds |
66
67
  ./spec/carddb/filter_builder_spec.rb[1:1:8] | passed | 0.00003 seconds |
67
- ./spec/carddb/filter_builder_spec.rb[1:2:1] | passed | 0.00004 seconds |
68
+ ./spec/carddb/filter_builder_spec.rb[1:2:1] | passed | 0.00003 seconds |
68
69
  ./spec/carddb/filter_builder_spec.rb[1:2:2] | passed | 0.00003 seconds |
69
70
  ./spec/carddb/filter_builder_spec.rb[1:2:3] | passed | 0.00003 seconds |
70
- ./spec/carddb/filter_builder_spec.rb[1:2:4] | passed | 0.00002 seconds |
71
+ ./spec/carddb/filter_builder_spec.rb[1:2:4] | passed | 0.00003 seconds |
71
72
  ./spec/carddb/filter_builder_spec.rb[1:2:5] | passed | 0.00003 seconds |
72
- ./spec/carddb/filter_builder_spec.rb[1:2:6] | passed | 0.00002 seconds |
73
+ ./spec/carddb/filter_builder_spec.rb[1:2:6] | passed | 0.00003 seconds |
73
74
  ./spec/carddb/filter_builder_spec.rb[1:2:7] | passed | 0.00003 seconds |
74
75
  ./spec/carddb/filter_builder_spec.rb[1:2:8] | passed | 0.00003 seconds |
75
76
  ./spec/carddb/filter_builder_spec.rb[1:2:9] | passed | 0.00003 seconds |
76
77
  ./spec/carddb/filter_builder_spec.rb[1:2:10] | passed | 0.00003 seconds |
77
78
  ./spec/carddb/filter_builder_spec.rb[1:2:11] | passed | 0.00003 seconds |
78
- ./spec/carddb/filter_builder_spec.rb[1:2:12] | passed | 0.00004 seconds |
79
+ ./spec/carddb/filter_builder_spec.rb[1:2:12] | passed | 0.00003 seconds |
79
80
  ./spec/carddb/filter_builder_spec.rb[1:2:13] | passed | 0.00003 seconds |
80
81
  ./spec/carddb/query_builder_spec.rb[1:1:1] | passed | 0.00004 seconds |
81
- ./spec/carddb/query_builder_spec.rb[1:1:2] | passed | 0.00004 seconds |
82
- ./spec/carddb/query_builder_spec.rb[1:1:3] | passed | 0.00004 seconds |
83
- ./spec/carddb/query_builder_spec.rb[1:2:1:1] | passed | 0.00006 seconds |
82
+ ./spec/carddb/query_builder_spec.rb[1:1:2] | passed | 0.00005 seconds |
83
+ ./spec/carddb/query_builder_spec.rb[1:1:3] | passed | 0.00003 seconds |
84
+ ./spec/carddb/query_builder_spec.rb[1:2:1:1] | passed | 0.00004 seconds |
84
85
  ./spec/carddb/query_builder_spec.rb[1:2:2:1] | passed | 0.00004 seconds |
85
- ./spec/carddb/query_builder_spec.rb[1:3:1] | passed | 0.00004 seconds |
86
+ ./spec/carddb/query_builder_spec.rb[1:3:1] | passed | 0.00005 seconds |
86
87
  ./spec/carddb/query_builder_spec.rb[1:3:2] | passed | 0.00004 seconds |
87
88
  ./spec/carddb/query_builder_spec.rb[1:4:1] | passed | 0.00004 seconds |
88
- ./spec/carddb/query_builder_spec.rb[1:4:2] | passed | 0.00004 seconds |
89
+ ./spec/carddb/query_builder_spec.rb[1:4:2] | passed | 0.00005 seconds |
89
90
  ./spec/carddb/query_builder_spec.rb[1:5:1] | passed | 0.00003 seconds |
90
- ./spec/carddb/query_builder_spec.rb[1:5:2] | passed | 0.00005 seconds |
91
- ./spec/carddb/query_builder_spec.rb[1:5:3] | passed | 0.00008 seconds |
92
- ./spec/carddb/query_builder_spec.rb[1:5:4] | passed | 0.00004 seconds |
91
+ ./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 |
93
94
  ./spec/carddb/query_builder_spec.rb[1:5:5] | passed | 0.00005 seconds |
94
- ./spec/carddb/query_builder_spec.rb[1:5:6] | passed | 0.00004 seconds |
95
- ./spec/carddb/query_builder_spec.rb[1:5:7] | passed | 0.00004 seconds |
95
+ ./spec/carddb/query_builder_spec.rb[1:5:6] | passed | 0.00003 seconds |
96
+ ./spec/carddb/query_builder_spec.rb[1:5:7] | passed | 0.00003 seconds |
96
97
  ./spec/carddb/query_builder_spec.rb[1:5:8] | passed | 0.00003 seconds |
97
- ./spec/carddb/query_builder_spec.rb[1:5:9] | passed | 0.00004 seconds |
98
- ./spec/carddb/query_builder_spec.rb[1:6:1] | passed | 0.00006 seconds |
99
- ./spec/carddb/query_builder_spec.rb[1:6:2] | passed | 0.00006 seconds |
100
- ./spec/carddb/query_builder_spec.rb[1:6:3] | passed | 0.00005 seconds |
98
+ ./spec/carddb/query_builder_spec.rb[1:5:9] | passed | 0.00005 seconds |
99
+ ./spec/carddb/query_builder_spec.rb[1:6:1] | passed | 0.00004 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 |
101
102
  ./spec/carddb/query_builder_spec.rb[1:6:4] | passed | 0.00004 seconds |
102
- ./spec/carddb/query_builder_spec.rb[1:6:5] | passed | 0.00003 seconds |
103
- ./spec/carddb/query_builder_spec.rb[1:6:6] | passed | 0.0004 seconds |
104
- ./spec/carddb/resources/datasets_spec.rb[1:1:1] | passed | 0.00431 seconds |
105
- ./spec/carddb/resources/datasets_spec.rb[1:1:2] | passed | 0.00415 seconds |
106
- ./spec/carddb/resources/datasets_spec.rb[1:2:1] | passed | 0.00408 seconds |
107
- ./spec/carddb/resources/decks_spec.rb[1:1:1] | passed | 0.00418 seconds |
108
- ./spec/carddb/resources/decks_spec.rb[1:1:2] | passed | 0.00409 seconds |
109
- ./spec/carddb/resources/decks_spec.rb[1:1:3] | passed | 0.00382 seconds |
110
- ./spec/carddb/resources/decks_spec.rb[1:1:4] | passed | 0.00393 seconds |
111
- ./spec/carddb/resources/decks_spec.rb[1:2:1] | passed | 0.00463 seconds |
112
- ./spec/carddb/resources/decks_spec.rb[1:2:2] | passed | 0.00805 seconds |
103
+ ./spec/carddb/query_builder_spec.rb[1:6:5] | passed | 0.00005 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.00003 seconds |
107
+ ./spec/carddb/query_builder_spec.rb[1:6:9] | passed | 0.00004 seconds |
108
+ ./spec/carddb/query_builder_spec.rb[1:6:10] | passed | 0.00004 seconds |
109
+ ./spec/carddb/resources/datasets_spec.rb[1:1:1] | passed | 0.0039 seconds |
110
+ ./spec/carddb/resources/datasets_spec.rb[1:1:2] | passed | 0.00382 seconds |
111
+ ./spec/carddb/resources/datasets_spec.rb[1:2:1] | passed | 0.00393 seconds |
112
+ ./spec/carddb/resources/decks_spec.rb[1:1:1] | passed | 0.00386 seconds |
113
+ ./spec/carddb/resources/decks_spec.rb[1:1:2] | passed | 0.00381 seconds |
114
+ ./spec/carddb/resources/decks_spec.rb[1:1:3] | passed | 0.00385 seconds |
115
+ ./spec/carddb/resources/decks_spec.rb[1:1:4] | passed | 0.00374 seconds |
116
+ ./spec/carddb/resources/decks_spec.rb[1:2:1] | passed | 0.00412 seconds |
117
+ ./spec/carddb/resources/decks_spec.rb[1:2:2] | passed | 0.00757 seconds |
113
118
  ./spec/carddb/resources/decks_spec.rb[1:2:3] | passed | 0.00006 seconds |
114
- ./spec/carddb/resources/decks_spec.rb[1:3:1] | passed | 0.00384 seconds |
115
- ./spec/carddb/resources/decks_spec.rb[1:4:1] | passed | 0.0038 seconds |
116
- ./spec/carddb/resources/decks_spec.rb[1:5:1] | passed | 0.00393 seconds |
117
- ./spec/carddb/resources/decks_spec.rb[1:6:1] | passed | 0.00386 seconds |
118
- ./spec/carddb/resources/decks_spec.rb[1:6:2] | passed | 0.00382 seconds |
119
- ./spec/carddb/resources/decks_spec.rb[1:6:3] | passed | 0.00388 seconds |
120
- ./spec/carddb/resources/decks_spec.rb[1:6:4] | passed | 0.00007 seconds |
121
- ./spec/carddb/resources/decks_spec.rb[1:7:1] | passed | 0.00386 seconds |
122
- ./spec/carddb/resources/decks_spec.rb[1:8:1] | passed | 0.00377 seconds |
123
- ./spec/carddb/resources/decks_spec.rb[1:9:1] | passed | 0.00379 seconds |
124
- ./spec/carddb/resources/decks_spec.rb[1:10:1] | passed | 0.00396 seconds |
125
- ./spec/carddb/resources/decks_spec.rb[1:10:2] | passed | 0.00388 seconds |
126
- ./spec/carddb/resources/decks_spec.rb[1:10:3] | passed | 0.00415 seconds |
127
- ./spec/carddb/resources/decks_spec.rb[1:10:4] | passed | 0.00394 seconds |
128
- ./spec/carddb/resources/decks_spec.rb[1:11:1] | passed | 0.00374 seconds |
129
- ./spec/carddb/resources/decks_spec.rb[1:12:1] | passed | 0.00373 seconds |
130
- ./spec/carddb/resources/decks_spec.rb[1:12:2] | passed | 0.00375 seconds |
131
- ./spec/carddb/resources/decks_spec.rb[1:12:3] | passed | 0.00392 seconds |
132
- ./spec/carddb/resources/decks_spec.rb[1:12:4] | passed | 0.00006 seconds |
133
- ./spec/carddb/resources/decks_spec.rb[1:13:1] | passed | 0.00384 seconds |
134
- ./spec/carddb/resources/decks_spec.rb[1:14:1] | passed | 0.00375 seconds |
135
- ./spec/carddb/resources/decks_spec.rb[1:15:1] | passed | 0.00402 seconds |
136
- ./spec/carddb/resources/decks_spec.rb[1:15:2] | passed | 0.00442 seconds |
137
- ./spec/carddb/resources/decks_spec.rb[1:15:3] | passed | 0.00401 seconds |
138
- ./spec/carddb/resources/decks_spec.rb[1:16:1] | passed | 0.00443 seconds |
139
- ./spec/carddb/resources/decks_spec.rb[1:17:1] | passed | 0.00388 seconds |
140
- ./spec/carddb/resources/decks_spec.rb[1:18:1] | passed | 0.00375 seconds |
141
- ./spec/carddb/resources/decks_spec.rb[1:19:1] | passed | 0.00782 seconds |
142
- ./spec/carddb/resources/decks_spec.rb[1:20:1] | passed | 0.00386 seconds |
143
- ./spec/carddb/resources/decks_spec.rb[1:21:1] | passed | 0.00497 seconds |
144
- ./spec/carddb/resources/games_spec.rb[1:1:1] | passed | 0.00379 seconds |
119
+ ./spec/carddb/resources/decks_spec.rb[1:3:1] | passed | 0.00387 seconds |
120
+ ./spec/carddb/resources/decks_spec.rb[1:4:1] | passed | 0.00383 seconds |
121
+ ./spec/carddb/resources/decks_spec.rb[1:5:1] | passed | 0.00386 seconds |
122
+ ./spec/carddb/resources/decks_spec.rb[1:6:1] | passed | 0.00399 seconds |
123
+ ./spec/carddb/resources/decks_spec.rb[1:6:2] | passed | 0.00384 seconds |
124
+ ./spec/carddb/resources/decks_spec.rb[1:6:3] | passed | 0.00376 seconds |
125
+ ./spec/carddb/resources/decks_spec.rb[1:6:4] | passed | 0.00008 seconds |
126
+ ./spec/carddb/resources/decks_spec.rb[1:7:1] | passed | 0.00378 seconds |
127
+ ./spec/carddb/resources/decks_spec.rb[1:8:1] | passed | 0.00372 seconds |
128
+ ./spec/carddb/resources/decks_spec.rb[1:9:1] | passed | 0.00388 seconds |
129
+ ./spec/carddb/resources/decks_spec.rb[1:10:1] | passed | 0.00394 seconds |
130
+ ./spec/carddb/resources/decks_spec.rb[1:10:2] | passed | 0.00376 seconds |
131
+ ./spec/carddb/resources/decks_spec.rb[1:10:3] | passed | 0.00738 seconds |
132
+ ./spec/carddb/resources/decks_spec.rb[1:10:4] | passed | 0.0043 seconds |
133
+ ./spec/carddb/resources/decks_spec.rb[1:11:1] | passed | 0.00375 seconds |
134
+ ./spec/carddb/resources/decks_spec.rb[1:12:1] | passed | 0.00411 seconds |
135
+ ./spec/carddb/resources/decks_spec.rb[1:12:2] | passed | 0.00373 seconds |
136
+ ./spec/carddb/resources/decks_spec.rb[1:12:3] | passed | 0.00423 seconds |
137
+ ./spec/carddb/resources/decks_spec.rb[1:12:4] | passed | 0.00007 seconds |
138
+ ./spec/carddb/resources/decks_spec.rb[1:13:1] | passed | 0.00368 seconds |
139
+ ./spec/carddb/resources/decks_spec.rb[1:14:1] | passed | 0.00378 seconds |
140
+ ./spec/carddb/resources/decks_spec.rb[1:15:1] | passed | 0.00401 seconds |
141
+ ./spec/carddb/resources/decks_spec.rb[1:15:2] | passed | 0.00423 seconds |
142
+ ./spec/carddb/resources/decks_spec.rb[1:15:3] | passed | 0.00406 seconds |
143
+ ./spec/carddb/resources/decks_spec.rb[1:16:1] | passed | 0.00463 seconds |
144
+ ./spec/carddb/resources/decks_spec.rb[1:17:1] | passed | 0.00469 seconds |
145
+ ./spec/carddb/resources/decks_spec.rb[1:18:1] | passed | 0.00366 seconds |
146
+ ./spec/carddb/resources/decks_spec.rb[1:19:1] | passed | 0.00364 seconds |
147
+ ./spec/carddb/resources/decks_spec.rb[1:20:1] | passed | 0.00351 seconds |
148
+ ./spec/carddb/resources/decks_spec.rb[1:21:1] | passed | 0.00369 seconds |
149
+ ./spec/carddb/resources/games_spec.rb[1:1:1] | passed | 0.00367 seconds |
145
150
  ./spec/carddb/resources/games_spec.rb[1:1:2] | passed | 0.00006 seconds |
146
- ./spec/carddb/resources/games_spec.rb[1:2:1] | passed | 0.00463 seconds |
147
- ./spec/carddb/resources/games_spec.rb[1:2:2] | passed | 0.00374 seconds |
148
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:1:1] | passed | 0.00495 seconds |
149
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:1:2] | passed | 0.00365 seconds |
150
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:1:3] | passed | 0.00465 seconds |
151
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:2:1] | passed | 0.00459 seconds |
151
+ ./spec/carddb/resources/games_spec.rb[1:2:1] | passed | 0.00466 seconds |
152
+ ./spec/carddb/resources/games_spec.rb[1:2:2] | passed | 0.00366 seconds |
153
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:1:1] | passed | 0.00368 seconds |
154
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:1:2] | passed | 0.00464 seconds |
155
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:1:3] | passed | 0.00397 seconds |
156
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:2:1] | passed | 0.00507 seconds |
152
157
  ./spec/carddb/resources/publisher_workflows_spec.rb[1:2:2] | passed | 0.00006 seconds |
153
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:3:1] | passed | 0.0038 seconds |
154
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:3:2] | passed | 0.00436 seconds |
155
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:3:3] | passed | 0.00363 seconds |
156
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:4:1] | passed | 0.0045 seconds |
157
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:4:2] | passed | 0.00515 seconds |
158
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:4:3] | passed | 0.00387 seconds |
159
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:5:1] | passed | 0.00475 seconds |
160
- ./spec/carddb/resources/publisher_workflows_spec.rb[1:5:2] | passed | 0.00366 seconds |
161
- ./spec/carddb/resources/publishers_spec.rb[1:1:1] | passed | 0.00456 seconds |
162
- ./spec/carddb/resources/publishers_spec.rb[1:2:1] | passed | 0.00363 seconds |
163
- ./spec/carddb/resources/records_spec.rb[1:1:1] | passed | 0.00366 seconds |
164
- ./spec/carddb/resources/records_spec.rb[1:1:2] | passed | 0.00548 seconds |
158
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:3:1] | passed | 0.0041 seconds |
159
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:3:2] | passed | 0.00383 seconds |
160
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:3:3] | passed | 0.00368 seconds |
161
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:4:1] | passed | 0.00382 seconds |
162
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:4:2] | passed | 0.00422 seconds |
163
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:4:3] | passed | 0.00385 seconds |
164
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:5:1] | passed | 0.00374 seconds |
165
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:5:2] | passed | 0.00362 seconds |
166
+ ./spec/carddb/resources/publishers_spec.rb[1:1:1] | passed | 0.00354 seconds |
167
+ ./spec/carddb/resources/publishers_spec.rb[1:2:1] | passed | 0.00367 seconds |
168
+ ./spec/carddb/resources/records_spec.rb[1:1:1] | passed | 0.00369 seconds |
169
+ ./spec/carddb/resources/records_spec.rb[1:1:2] | passed | 0.0037 seconds |
165
170
  ./spec/carddb/resources/records_spec.rb[1:1:3] | passed | 0.00009 seconds |
166
- ./spec/carddb/resources/records_spec.rb[1:1:4] | passed | 0.00004 seconds |
167
- ./spec/carddb/resources/records_spec.rb[1:2:1] | passed | 0.0037 seconds |
168
- ./spec/carddb/resources/records_spec.rb[1:2:2] | passed | 0.00372 seconds |
169
- ./spec/carddb/resources/records_spec.rb[1:2:3] | passed | 0.00368 seconds |
170
- ./spec/carddb/resources/records_spec.rb[1:3:1] | passed | 0.00374 seconds |
171
- ./spec/carddb/resources/records_spec.rb[1:3:2] | passed | 0.00009 seconds |
172
- ./spec/carddb/resources/records_spec.rb[1:4:1] | passed | 0.00373 seconds |
173
- ./spec/carddb/resources/records_spec.rb[1:4:2] | passed | 0.00004 seconds |
171
+ ./spec/carddb/resources/records_spec.rb[1:1:4] | passed | 0.00005 seconds |
172
+ ./spec/carddb/resources/records_spec.rb[1:2:1] | passed | 0.00372 seconds |
173
+ ./spec/carddb/resources/records_spec.rb[1:2:2] | passed | 0.00363 seconds |
174
+ ./spec/carddb/resources/records_spec.rb[1:2:3] | passed | 0.00376 seconds |
175
+ ./spec/carddb/resources/records_spec.rb[1:3:1] | passed | 0.00365 seconds |
176
+ ./spec/carddb/resources/records_spec.rb[1:3:2] | passed | 0.0001 seconds |
177
+ ./spec/carddb/resources/records_spec.rb[1:4:1] | passed | 0.00369 seconds |
178
+ ./spec/carddb/resources/records_spec.rb[1:4:2] | passed | 0.00003 seconds |
174
179
  ./spec/carddb/resources/records_spec.rb[1:4:3] | passed | 0.00008 seconds |
175
- ./spec/carddb/resources/rules_spec.rb[1:1:1] | passed | 0.00375 seconds |
176
- ./spec/carddb/resources/rules_spec.rb[1:2:1] | passed | 0.00378 seconds |
177
- ./spec/carddb/resources/scans_spec.rb[1:1] | passed | 0.00395 seconds |
178
- ./spec/carddb/resources/scans_spec.rb[1:2] | passed | 0.00768 seconds |
179
- ./spec/carddb/resources/scans_spec.rb[1:3] | passed | 0.00377 seconds |
180
- ./spec/carddb/resources/scans_spec.rb[1:4] | passed | 0.00386 seconds |
181
- ./spec/carddb/resources/scans_spec.rb[1:5] | passed | 0.00385 seconds |
182
- ./spec/carddb/resources/scans_spec.rb[1:6] | passed | 0.00413 seconds |
183
- ./spec/carddb/resources/scans_spec.rb[1:7] | passed | 0.00378 seconds |
184
- ./spec/carddb/resources/scans_spec.rb[1:8] | passed | 0.0001 seconds |
185
- ./spec/carddb_spec.rb[1:1] | passed | 0.00003 seconds |
186
- ./spec/carddb_spec.rb[1:2:1] | passed | 0.00003 seconds |
187
- ./spec/carddb_spec.rb[1:3:1] | passed | 0.00003 seconds |
188
- ./spec/carddb_spec.rb[1:4:1] | passed | 0.00004 seconds |
180
+ ./spec/carddb/resources/rules_spec.rb[1:1:1] | passed | 0.00675 seconds |
181
+ ./spec/carddb/resources/rules_spec.rb[1:2:1] | passed | 0.00354 seconds |
182
+ ./spec/carddb/resources/rulesets_spec.rb[1:1:1] | passed | 0.00458 seconds |
183
+ ./spec/carddb/resources/rulesets_spec.rb[1:1:2] | passed | 0.00487 seconds |
184
+ ./spec/carddb/resources/rulesets_spec.rb[1:2:1] | passed | 0.00357 seconds |
185
+ ./spec/carddb/resources/rulesets_spec.rb[1:2:2] | passed | 0.00466 seconds |
186
+ ./spec/carddb/resources/rulesets_spec.rb[1:3:1] | passed | 0.00476 seconds |
187
+ ./spec/carddb/resources/rulesets_spec.rb[1:3:2] | passed | 0.00005 seconds |
188
+ ./spec/carddb/resources/scans_spec.rb[1:1] | passed | 0.00368 seconds |
189
+ ./spec/carddb/resources/scans_spec.rb[1:2] | passed | 0.00827 seconds |
190
+ ./spec/carddb/resources/scans_spec.rb[1:3] | passed | 0.00432 seconds |
191
+ ./spec/carddb/resources/scans_spec.rb[1:4] | passed | 0.00432 seconds |
192
+ ./spec/carddb/resources/scans_spec.rb[1:5] | passed | 0.00359 seconds |
193
+ ./spec/carddb/resources/scans_spec.rb[1:6] | passed | 0.00517 seconds |
194
+ ./spec/carddb/resources/scans_spec.rb[1:7] | passed | 0.0035 seconds |
195
+ ./spec/carddb/resources/scans_spec.rb[1:8] | passed | 0.00008 seconds |
196
+ ./spec/carddb_spec.rb[1:1] | passed | 0.00004 seconds |
197
+ ./spec/carddb_spec.rb[1:2:1] | passed | 0.00004 seconds |
198
+ ./spec/carddb_spec.rb[1:3:1] | passed | 0.00145 seconds |
199
+ ./spec/carddb_spec.rb[1:4:1] | passed | 0.00005 seconds |
189
200
  ./spec/carddb_spec.rb[1:5:1] | passed | 0.00003 seconds |
190
201
  ./spec/carddb_spec.rb[1:6:1] | passed | 0.00003 seconds |
191
202
  ./spec/carddb_spec.rb[1:7:1] | passed | 0.00003 seconds |
192
203
  ./spec/carddb_spec.rb[1:8:1] | passed | 0.00003 seconds |
193
204
  ./spec/carddb_spec.rb[1:9:1] | passed | 0.00003 seconds |
205
+ ./spec/carddb_spec.rb[1:10:1] | passed | 0.00003 seconds |
data/lib/carddb/client.rb CHANGED
@@ -154,6 +154,13 @@ module CardDB
154
154
  @rules ||= Resources::Rules.new(self, connection, config)
155
155
  end
156
156
 
157
+ # Access the Rulesets resource
158
+ #
159
+ # @return [Resources::Rulesets]
160
+ def rulesets
161
+ @rulesets ||= Resources::Rulesets.new(self, connection, config)
162
+ end
163
+
157
164
  # Get information about the current API key
158
165
  #
159
166
  # @return [Hash, nil] API key info or nil if no API key
@@ -2001,6 +2001,117 @@ module CardDB
2001
2001
  end
2002
2002
  end
2003
2003
 
2004
+ class Ruleset < Resource
2005
+ def id = data['id']
2006
+ def game_id = data['gameId']
2007
+ def game = data['game']
2008
+ def key = data['key']
2009
+ def name = data['name']
2010
+ def description = data['description']
2011
+ def tags = data['tags'] || []
2012
+ def sort_order = data['sortOrder']
2013
+ def current_version_id = data['currentVersionId']
2014
+ def archived_at = parse_time(data['archivedAt'])
2015
+ def archived? = !!data['isArchived']
2016
+ def created_at = parse_time(data['createdAt'])
2017
+ def updated_at = parse_time(data['updatedAt'])
2018
+
2019
+ def current_version
2020
+ @current_version ||= data['currentVersion'] ? RulesetVersion.new(data['currentVersion'], client: client) : nil
2021
+ end
2022
+ end
2023
+
2024
+ class RulesetVersion < Resource
2025
+ def id = data['id']
2026
+ def ruleset_id = data['rulesetId']
2027
+ def version_label = data['versionLabel']
2028
+ def status = data['status']
2029
+ def rules = data['rules'] || {}
2030
+ def card_dataset_id = data['cardDatasetId']
2031
+ def card_dataset_version_id = data['cardDatasetVersionId']
2032
+ def source_dataset_id = data['sourceDatasetId']
2033
+ def source_dataset_version_id = data['sourceDatasetVersionId']
2034
+ def source_dataset_record_id = data['sourceDatasetRecordId']
2035
+ def source_record_identifier = data['sourceRecordIdentifier']
2036
+ def rules_fingerprint = data['rulesFingerprint']
2037
+ def effective_at = parse_time(data['effectiveAt'])
2038
+ def changelog = data['changelog']
2039
+ def created_by_account_id = data['createdByAccountId']
2040
+ def published_by_account_id = data['publishedByAccountId']
2041
+ def published_at = parse_time(data['publishedAt'])
2042
+ def superseded_at = parse_time(data['supersededAt'])
2043
+ def created_at = parse_time(data['createdAt'])
2044
+ def updated_at = parse_time(data['updatedAt'])
2045
+ def draft? = status == 'DRAFT'
2046
+ def active? = status == 'ACTIVE'
2047
+
2048
+ def section_definitions
2049
+ @section_definitions ||= (data['sectionDefinitions'] || []).map do |definition|
2050
+ DeckSectionDefinition.new(definition, client: client)
2051
+ end
2052
+ end
2053
+ end
2054
+
2055
+ class DeckValidationRules < Resource
2056
+ def ruleset_id = data['rulesetId']
2057
+ def ruleset_version_id = data['rulesetVersionId']
2058
+ def ruleset_key = data['rulesetKey']
2059
+ def ruleset_version_label = data['rulesetVersionLabel']
2060
+ def rules = data['rules'] || {}
2061
+
2062
+ def sections
2063
+ @sections ||= (data['sections'] || []).map { |section| DeckSectionDefinition.new(section, client: client) }
2064
+ end
2065
+ end
2066
+
2067
+ class RulesetValidationImpactDeck < Resource
2068
+ def deck_id = data['deckId']
2069
+ def title = data['title']
2070
+ def slug = data['slug']
2071
+ def state = data['state']
2072
+ def unpublished_changes? = !!data['hasUnpublishedChanges']
2073
+ def valid? = !!data['valid']
2074
+ def blocker_count = data['blockerCount']
2075
+ def warning_count = data['warningCount']
2076
+ def affected_entry_count = data['affectedEntryCount']
2077
+
2078
+ def issues
2079
+ @issues ||= (data['issues'] || []).map { |issue| DeckValidationIssue.new(issue, client: client) }
2080
+ end
2081
+ end
2082
+
2083
+ class RulesetValidationImpact < Resource
2084
+ def ruleset_id = data['rulesetId']
2085
+ def ruleset_version_id = data['rulesetVersionId']
2086
+ def checked_at = parse_time(data['checkedAt'])
2087
+ def affected_deck_count = data['affectedDeckCount']
2088
+ def invalid_deck_count = data['invalidDeckCount']
2089
+ def blocker_count = data['blockerCount']
2090
+ def warning_count = data['warningCount']
2091
+
2092
+ def results
2093
+ @results ||= (data['results'] || []).map { |deck| RulesetValidationImpactDeck.new(deck, client: client) }
2094
+ end
2095
+ end
2096
+
2097
+ class RulesetVersionDraftImportPreview < Resource
2098
+ def source_dataset_id = data['sourceDatasetId']
2099
+ def source_dataset_version_id = data['sourceDatasetVersionId']
2100
+ def source_dataset_record_id = data['sourceDatasetRecordId']
2101
+ def source_record_identifier = data['sourceRecordIdentifier']
2102
+ def rules = data['rules'] || {}
2103
+ def rules_fingerprint = data['rulesFingerprint']
2104
+ def summary = data['summary']
2105
+ def section_count = data['sectionCount']
2106
+ def copy_limit_count = data['copyLimitCount']
2107
+
2108
+ def section_definitions
2109
+ @section_definitions ||= (data['sectionDefinitions'] || []).map do |definition|
2110
+ DeckSectionDefinition.new(definition, client: client)
2111
+ end
2112
+ end
2113
+ end
2114
+
2004
2115
  class DeckSectionDefinition < Resource
2005
2116
  def key = data['key']
2006
2117
  def label = data['label']
@@ -1121,6 +1121,182 @@ module CardDB
1121
1121
  GRAPHQL
1122
1122
  end
1123
1123
 
1124
+ def rulesets(game_id:, include_archived: nil, first: nil, after: nil)
1125
+ args = build_args(
1126
+ { gameId: game_id, includeArchived: include_archived, first: first, after: after },
1127
+ required: [:gameId]
1128
+ )
1129
+
1130
+ <<~GRAPHQL
1131
+ query Rulesets#{args[:definition]} {
1132
+ rulesets#{args[:call]} {
1133
+ #{ruleset_connection_fields}
1134
+ }
1135
+ }
1136
+ GRAPHQL
1137
+ end
1138
+
1139
+ def public_rulesets(game_id:, first: nil, after: nil)
1140
+ args = build_args({ gameId: game_id, first: first, after: after }, required: [:gameId])
1141
+
1142
+ <<~GRAPHQL
1143
+ query PublicRulesets#{args[:definition]} {
1144
+ publicRulesets#{args[:call]} {
1145
+ #{ruleset_connection_fields}
1146
+ }
1147
+ }
1148
+ GRAPHQL
1149
+ end
1150
+
1151
+ def ruleset
1152
+ <<~GRAPHQL
1153
+ query Ruleset($id: UUID, $gameId: UUID, $key: String) {
1154
+ ruleset(id: $id, gameId: $gameId, key: $key) {
1155
+ #{ruleset_fields}
1156
+ }
1157
+ }
1158
+ GRAPHQL
1159
+ end
1160
+
1161
+ def ruleset_versions(ruleset_id:, status: nil, first: nil, after: nil)
1162
+ args = build_args(
1163
+ { rulesetId: ruleset_id, status: status, first: first, after: after },
1164
+ required: [:rulesetId],
1165
+ type_overrides: { status: 'RulesetVersionStatus' }
1166
+ )
1167
+
1168
+ <<~GRAPHQL
1169
+ query RulesetVersions#{args[:definition]} {
1170
+ rulesetVersions#{args[:call]} {
1171
+ #{ruleset_version_connection_fields}
1172
+ }
1173
+ }
1174
+ GRAPHQL
1175
+ end
1176
+
1177
+ def ruleset_version
1178
+ <<~GRAPHQL
1179
+ query RulesetVersion($id: UUID!) {
1180
+ rulesetVersion(id: $id) {
1181
+ #{ruleset_version_fields}
1182
+ }
1183
+ }
1184
+ GRAPHQL
1185
+ end
1186
+
1187
+ def ruleset_validation_rules
1188
+ <<~GRAPHQL
1189
+ query RulesetValidationRules($gameId: UUID!, $rulesetKey: String!, $rulesetVersionId: UUID) {
1190
+ rulesetValidationRules(gameId: $gameId, rulesetKey: $rulesetKey, rulesetVersionId: $rulesetVersionId)
1191
+ }
1192
+ GRAPHQL
1193
+ end
1194
+
1195
+ def deck_validation_rules
1196
+ <<~GRAPHQL
1197
+ query DeckValidationRules($gameId: UUID!, $rulesetKey: String!, $rulesetVersionId: UUID) {
1198
+ deckValidationRules(gameId: $gameId, rulesetKey: $rulesetKey, rulesetVersionId: $rulesetVersionId) {
1199
+ #{deck_validation_rules_fields}
1200
+ }
1201
+ }
1202
+ GRAPHQL
1203
+ end
1204
+
1205
+ def ruleset_version_draft_import_preview
1206
+ <<~GRAPHQL
1207
+ query RulesetVersionDraftImportPreview($rulesetId: UUID!, $input: RulesetVersionDraftImportFromDatasetRecordInput!) {
1208
+ rulesetVersionDraftImportPreview(rulesetId: $rulesetId, input: $input) {
1209
+ #{ruleset_version_draft_import_preview_fields}
1210
+ }
1211
+ }
1212
+ GRAPHQL
1213
+ end
1214
+
1215
+ def ruleset_validation_impact(ruleset_version_id:, first: nil)
1216
+ args = build_args(
1217
+ { rulesetVersionId: ruleset_version_id, first: first },
1218
+ required: [:rulesetVersionId]
1219
+ )
1220
+
1221
+ <<~GRAPHQL
1222
+ query RulesetValidationImpact#{args[:definition]} {
1223
+ rulesetValidationImpact#{args[:call]} {
1224
+ #{ruleset_validation_impact_fields}
1225
+ }
1226
+ }
1227
+ GRAPHQL
1228
+ end
1229
+
1230
+ def create_ruleset
1231
+ <<~GRAPHQL
1232
+ mutation RulesetCreate($input: RulesetCreateInput!) {
1233
+ rulesetCreate(input: $input) {
1234
+ #{ruleset_fields}
1235
+ }
1236
+ }
1237
+ GRAPHQL
1238
+ end
1239
+
1240
+ def update_ruleset
1241
+ <<~GRAPHQL
1242
+ mutation RulesetUpdate($id: UUID!, $input: RulesetUpdateInput!) {
1243
+ rulesetUpdate(id: $id, input: $input) {
1244
+ #{ruleset_fields}
1245
+ }
1246
+ }
1247
+ GRAPHQL
1248
+ end
1249
+
1250
+ def create_ruleset_version_draft
1251
+ <<~GRAPHQL
1252
+ mutation RulesetVersionDraftCreate($rulesetId: UUID!, $input: RulesetVersionDraftCreateInput!) {
1253
+ rulesetVersionDraftCreate(rulesetId: $rulesetId, input: $input) {
1254
+ #{ruleset_version_fields}
1255
+ }
1256
+ }
1257
+ GRAPHQL
1258
+ end
1259
+
1260
+ def import_ruleset_version_draft_from_dataset_record
1261
+ <<~GRAPHQL
1262
+ mutation RulesetVersionDraftImportFromDatasetRecord($rulesetId: UUID!, $input: RulesetVersionDraftImportFromDatasetRecordInput!) {
1263
+ rulesetVersionDraftImportFromDatasetRecord(rulesetId: $rulesetId, input: $input) {
1264
+ #{ruleset_version_fields}
1265
+ }
1266
+ }
1267
+ GRAPHQL
1268
+ end
1269
+
1270
+ def update_ruleset_version_draft
1271
+ <<~GRAPHQL
1272
+ mutation RulesetVersionDraftUpdate($id: UUID!, $input: RulesetVersionDraftUpdateInput!) {
1273
+ rulesetVersionDraftUpdate(id: $id, input: $input) {
1274
+ #{ruleset_version_fields}
1275
+ }
1276
+ }
1277
+ GRAPHQL
1278
+ end
1279
+
1280
+ def publish_ruleset_version
1281
+ <<~GRAPHQL
1282
+ mutation RulesetVersionPublish($id: UUID!, $input: RulesetVersionPublishInput) {
1283
+ rulesetVersionPublish(id: $id, input: $input) {
1284
+ #{ruleset_version_fields}
1285
+ }
1286
+ }
1287
+ GRAPHQL
1288
+ end
1289
+
1290
+ def activate_ruleset_version
1291
+ <<~GRAPHQL
1292
+ mutation RulesetVersionActivate($id: UUID!) {
1293
+ rulesetVersionActivate(id: $id) {
1294
+ #{ruleset_version_fields}
1295
+ }
1296
+ }
1297
+ GRAPHQL
1298
+ end
1299
+
1124
1300
  # Builds a deckCollaborators query
1125
1301
  def deck_collaborators
1126
1302
  <<~GRAPHQL
@@ -1557,6 +1733,7 @@ module CardDB
1557
1733
  externalRef: 'String',
1558
1734
  deckId: 'UUID!',
1559
1735
  gameId: 'UUID',
1736
+ rulesetId: 'UUID',
1560
1737
  rulesetKey: 'String',
1561
1738
  rulesetVersionId: 'UUID',
1562
1739
  validateSchema: 'Boolean',
@@ -2585,6 +2762,121 @@ module CardDB
2585
2762
  FIELDS
2586
2763
  end
2587
2764
 
2765
+ def ruleset_version_fields
2766
+ <<~FIELDS
2767
+ id
2768
+ rulesetId
2769
+ versionLabel
2770
+ status
2771
+ rules
2772
+ sectionDefinitions {
2773
+ #{deck_section_definition_fields}
2774
+ }
2775
+ cardDatasetId
2776
+ cardDatasetVersionId
2777
+ sourceDatasetId
2778
+ sourceDatasetVersionId
2779
+ sourceDatasetRecordId
2780
+ sourceRecordIdentifier
2781
+ rulesFingerprint
2782
+ effectiveAt
2783
+ changelog
2784
+ createdByAccountId
2785
+ publishedByAccountId
2786
+ publishedAt
2787
+ supersededAt
2788
+ createdAt
2789
+ updatedAt
2790
+ FIELDS
2791
+ end
2792
+
2793
+ def ruleset_fields
2794
+ <<~FIELDS
2795
+ id
2796
+ gameId
2797
+ game {
2798
+ id
2799
+ key
2800
+ name
2801
+ }
2802
+ key
2803
+ name
2804
+ description
2805
+ tags
2806
+ sortOrder
2807
+ currentVersionId
2808
+ currentVersion {
2809
+ #{ruleset_version_fields}
2810
+ }
2811
+ archivedAt
2812
+ isArchived
2813
+ createdAt
2814
+ updatedAt
2815
+ FIELDS
2816
+ end
2817
+
2818
+ def deck_validation_rules_fields
2819
+ <<~FIELDS
2820
+ rulesetId
2821
+ rulesetVersionId
2822
+ rulesetKey
2823
+ rulesetVersionLabel
2824
+ rules
2825
+ sections {
2826
+ #{deck_section_definition_fields}
2827
+ }
2828
+ FIELDS
2829
+ end
2830
+
2831
+ def ruleset_validation_impact_deck_fields
2832
+ <<~FIELDS
2833
+ deckId
2834
+ title
2835
+ slug
2836
+ state
2837
+ hasUnpublishedChanges
2838
+ valid
2839
+ blockerCount
2840
+ warningCount
2841
+ affectedEntryCount
2842
+ issues {
2843
+ #{deck_validation_issue_fields}
2844
+ }
2845
+ FIELDS
2846
+ end
2847
+
2848
+ def ruleset_validation_impact_fields
2849
+ <<~FIELDS
2850
+ rulesetId
2851
+ rulesetVersionId
2852
+ checkedAt
2853
+ affectedDeckCount
2854
+ invalidDeckCount
2855
+ blockerCount
2856
+ warningCount
2857
+ results {
2858
+ #{ruleset_validation_impact_deck_fields}
2859
+ }
2860
+ FIELDS
2861
+ end
2862
+
2863
+ def ruleset_version_draft_import_preview_fields
2864
+ <<~FIELDS
2865
+ sourceDatasetId
2866
+ sourceDatasetVersionId
2867
+ sourceDatasetRecordId
2868
+ sourceRecordIdentifier
2869
+ rules
2870
+ sectionDefinitions {
2871
+ #{deck_section_definition_fields}
2872
+ }
2873
+ rulesFingerprint
2874
+ summary
2875
+ sectionCount
2876
+ copyLimitCount
2877
+ FIELDS
2878
+ end
2879
+
2588
2880
  def deck_diff_fields
2589
2881
  <<~FIELDS
2590
2882
  deckId
@@ -2796,6 +3088,14 @@ module CardDB
2796
3088
  FIELDS
2797
3089
  end
2798
3090
 
3091
+ def ruleset_connection_fields
3092
+ connection_fields(ruleset_fields)
3093
+ end
3094
+
3095
+ def ruleset_version_connection_fields
3096
+ connection_fields(ruleset_version_fields)
3097
+ end
3098
+
2799
3099
  def deck_collaborator_fields
2800
3100
  <<~FIELDS
2801
3101
  id
@@ -0,0 +1,180 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CardDB
4
+ module Resources
5
+ # First-class rulesets resource for deck validation rules.
6
+ class Rulesets < Base
7
+ def list(game_id:, include_archived: nil, first: nil, after: nil, cache: nil)
8
+ query = QueryBuilder.rulesets(
9
+ game_id: game_id,
10
+ include_archived: include_archived,
11
+ first: first,
12
+ after: after
13
+ )
14
+ variables = build_variables(gameId: game_id, includeArchived: include_archived, first: first, after: after)
15
+ key = cache_key('rulesets', 'list', **variables)
16
+
17
+ data = with_cache(key, resource: :rulesets, cache: cache) do
18
+ connection.execute(query, variables)
19
+ end
20
+
21
+ Collection.new(
22
+ data['rulesets'],
23
+ item_class: Ruleset,
24
+ next_page_loader: ->(cursor) { list(game_id: game_id, include_archived: include_archived, first: first, after: cursor, cache: cache) },
25
+ client: client
26
+ )
27
+ end
28
+
29
+ def list_public(game_id:, first: nil, after: nil, cache: nil)
30
+ query = QueryBuilder.public_rulesets(game_id: game_id, first: first, after: after)
31
+ variables = build_variables(gameId: game_id, first: first, after: after)
32
+ key = cache_key('rulesets', 'list_public', **variables)
33
+
34
+ data = with_cache(key, resource: :rulesets, cache: cache) do
35
+ connection.execute(query, variables)
36
+ end
37
+
38
+ Collection.new(
39
+ data['publicRulesets'],
40
+ item_class: Ruleset,
41
+ next_page_loader: ->(cursor) { list_public(game_id: game_id, first: first, after: cursor, cache: cache) },
42
+ client: client
43
+ )
44
+ end
45
+
46
+ def get(id, cache: nil)
47
+ key = cache_key('rulesets', 'get', id: id)
48
+ with_cache(key, resource: :rulesets, cache: cache) do
49
+ data = connection.execute(QueryBuilder.ruleset, { id: id })
50
+ data['ruleset'] ? Ruleset.new(data['ruleset'], client: client) : nil
51
+ end
52
+ end
53
+
54
+ def get_by_key(game_id:, key:, cache: nil)
55
+ cache_key_value = cache_key('rulesets', 'get_by_key', game_id: game_id, key: key)
56
+ with_cache(cache_key_value, resource: :rulesets, cache: cache) do
57
+ data = connection.execute(QueryBuilder.ruleset, { gameId: game_id, key: key })
58
+ data['ruleset'] ? Ruleset.new(data['ruleset'], client: client) : nil
59
+ end
60
+ end
61
+
62
+ def versions(ruleset_id:, status: nil, first: nil, after: nil, cache: nil)
63
+ query = QueryBuilder.ruleset_versions(ruleset_id: ruleset_id, status: status, first: first, after: after)
64
+ variables = build_variables(rulesetId: ruleset_id, status: status, first: first, after: after)
65
+ key = cache_key('rulesets', 'versions', **variables)
66
+
67
+ data = with_cache(key, resource: :rulesets, cache: cache) do
68
+ connection.execute(query, variables)
69
+ end
70
+
71
+ Collection.new(
72
+ data['rulesetVersions'],
73
+ item_class: RulesetVersion,
74
+ next_page_loader: ->(cursor) { versions(ruleset_id: ruleset_id, status: status, first: first, after: cursor, cache: cache) },
75
+ client: client
76
+ )
77
+ end
78
+
79
+ def get_version(id, cache: nil)
80
+ key = cache_key('rulesets', 'get_version', id: id)
81
+ with_cache(key, resource: :rulesets, cache: cache) do
82
+ data = connection.execute(QueryBuilder.ruleset_version, { id: id })
83
+ data['rulesetVersion'] ? RulesetVersion.new(data['rulesetVersion'], client: client) : nil
84
+ end
85
+ end
86
+
87
+ def validation_rules(game_id:, ruleset_key:, ruleset_version_id: nil, cache: nil)
88
+ variables = build_variables(gameId: game_id, rulesetKey: ruleset_key, rulesetVersionId: ruleset_version_id)
89
+ key = cache_key('rulesets', 'validation_rules', **variables)
90
+
91
+ with_cache(key, resource: :rulesets, cache: cache) do
92
+ data = connection.execute(QueryBuilder.ruleset_validation_rules, variables)
93
+ data['rulesetValidationRules']
94
+ end
95
+ end
96
+
97
+ def deck_validation_rules(game_id:, ruleset_key:, ruleset_version_id: nil, cache: nil)
98
+ variables = build_variables(gameId: game_id, rulesetKey: ruleset_key, rulesetVersionId: ruleset_version_id)
99
+ key = cache_key('rulesets', 'deck_validation_rules', **variables)
100
+
101
+ with_cache(key, resource: :rulesets, cache: cache) do
102
+ data = connection.execute(QueryBuilder.deck_validation_rules, variables)
103
+ data['deckValidationRules'] ? DeckValidationRules.new(data['deckValidationRules'], client: client) : nil
104
+ end
105
+ end
106
+
107
+ def preview_import(ruleset_id:, input:)
108
+ data = connection.execute(
109
+ QueryBuilder.ruleset_version_draft_import_preview,
110
+ { rulesetId: ruleset_id, input: input }
111
+ )
112
+ RulesetVersionDraftImportPreview.new(data['rulesetVersionDraftImportPreview'], client: client)
113
+ end
114
+
115
+ def validation_impact(ruleset_version_id:, first: nil, cache: nil)
116
+ query = QueryBuilder.ruleset_validation_impact(ruleset_version_id: ruleset_version_id, first: first)
117
+ variables = build_variables(rulesetVersionId: ruleset_version_id, first: first)
118
+ key = cache_key('rulesets', 'validation_impact', **variables)
119
+
120
+ with_cache(key, resource: :rulesets, cache: cache) do
121
+ data = connection.execute(query, variables)
122
+ RulesetValidationImpact.new(data['rulesetValidationImpact'], client: client)
123
+ end
124
+ end
125
+
126
+ def create(input:)
127
+ config.require_secret_credential!('rulesets.create')
128
+
129
+ data = connection.execute(QueryBuilder.create_ruleset, { input: input })
130
+ Ruleset.new(data['rulesetCreate'], client: client)
131
+ end
132
+
133
+ def update(id:, input:)
134
+ config.require_secret_credential!('rulesets.update')
135
+
136
+ data = connection.execute(QueryBuilder.update_ruleset, { id: id, input: input })
137
+ Ruleset.new(data['rulesetUpdate'], client: client)
138
+ end
139
+
140
+ def create_draft(ruleset_id:, input:)
141
+ config.require_secret_credential!('rulesets.create_draft')
142
+
143
+ data = connection.execute(QueryBuilder.create_ruleset_version_draft, { rulesetId: ruleset_id, input: input })
144
+ RulesetVersion.new(data['rulesetVersionDraftCreate'], client: client)
145
+ end
146
+
147
+ def import_draft_from_dataset_record(ruleset_id:, input:)
148
+ config.require_secret_credential!('rulesets.import_draft_from_dataset_record')
149
+
150
+ data = connection.execute(
151
+ QueryBuilder.import_ruleset_version_draft_from_dataset_record,
152
+ { rulesetId: ruleset_id, input: input }
153
+ )
154
+ RulesetVersion.new(data['rulesetVersionDraftImportFromDatasetRecord'], client: client)
155
+ end
156
+
157
+ def update_draft(id:, input:)
158
+ config.require_secret_credential!('rulesets.update_draft')
159
+
160
+ data = connection.execute(QueryBuilder.update_ruleset_version_draft, { id: id, input: input })
161
+ RulesetVersion.new(data['rulesetVersionDraftUpdate'], client: client)
162
+ end
163
+
164
+ def publish_version(id:, input: nil)
165
+ config.require_secret_credential!('rulesets.publish_version')
166
+
167
+ variables = input.nil? ? { id: id } : { id: id, input: input }
168
+ data = connection.execute(QueryBuilder.publish_ruleset_version, variables)
169
+ RulesetVersion.new(data['rulesetVersionPublish'], client: client)
170
+ end
171
+
172
+ def activate_version(id:)
173
+ config.require_secret_credential!('rulesets.activate_version')
174
+
175
+ data = connection.execute(QueryBuilder.activate_ruleset_version, { id: id })
176
+ RulesetVersion.new(data['rulesetVersionActivate'], client: client)
177
+ end
178
+ end
179
+ end
180
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CardDB
4
- VERSION = '0.4.5'
4
+ VERSION = '0.4.6'
5
5
  end
data/lib/carddb.rb CHANGED
@@ -22,6 +22,7 @@ require_relative 'carddb/resources/scans'
22
22
  require_relative 'carddb/resources/scan_templates'
23
23
  require_relative 'carddb/resources/decks'
24
24
  require_relative 'carddb/resources/rules'
25
+ require_relative 'carddb/resources/rulesets'
25
26
  require_relative 'carddb/batch'
26
27
  require_relative 'carddb/client'
27
28
 
@@ -173,6 +174,13 @@ module CardDB
173
174
  default_client.rules
174
175
  end
175
176
 
177
+ # Access the Rulesets resource via the default client.
178
+ #
179
+ # @return [Resources::Rulesets]
180
+ def rulesets
181
+ default_client.rulesets
182
+ end
183
+
176
184
  # Get information about the current API key.
177
185
  #
178
186
  # @return [Hash, nil]
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.4.5
4
+ version: 0.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - CardDB Team
@@ -95,6 +95,7 @@ files:
95
95
  - lib/carddb/resources/publishers.rb
96
96
  - lib/carddb/resources/records.rb
97
97
  - lib/carddb/resources/rules.rb
98
+ - lib/carddb/resources/rulesets.rb
98
99
  - lib/carddb/resources/scan_templates.rb
99
100
  - lib/carddb/resources/scans.rb
100
101
  - lib/carddb/version.rb