carddb 0.3.0 → 0.3.5

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: 28e13db01ff91cbed41632eccb331c91785ad6698d39c0395950c61fd5781401
4
- data.tar.gz: 2b3404e6970671ab7cb39c366d0de5431b12ea6ba1f3fa589f749ade0bd5271d
3
+ metadata.gz: 634f5e0613ba7af5e96a3eceeae6463e0c8beee8ed661769f65afa75d90c58b5
4
+ data.tar.gz: 7e5596f16aab3b7efe0c952e980b58db8b2c3b645b0981f6306220645cde981f
5
5
  SHA512:
6
- metadata.gz: ed41cf28d05c2332eb3c97746a0261814d0cf06b32fa459775d7bc0f5afb6f2ff0d4c95aacf36ff3ecd049ec883bf1d3088c5cbefca7b23179e5a2bb80f8bfa5
7
- data.tar.gz: e230a4465dd0f04ee06ebc8837dedb34aaaddbb61fd7bd49a5400ce018978a7662ba65c96a8afb2ac05f2a2cae63c002c87ec0147f477b3965570fb940056ea8
6
+ metadata.gz: c424c8cda7e4ce075a9ff624be3749288dfb4e3f9cc7aff0227e682f5d8331a72a93ede5e4ece6a251c21e83572cada7ad6f247e4250d394943d72618c812bea
7
+ data.tar.gz: 65f04720bf93f3f929301dba07ddd9e1a2bb92ed4da547df492f566bf7a28e8b53fbab4011737c6b23703fb16f7efebcc8fd5a46fc71f3d3dca41d7434f6e32f
data/.rspec_status CHANGED
@@ -1,151 +1,171 @@
1
- example_id | status | run_time |
2
- ------------------------------------------------- | ------ | --------------- |
3
- ./spec/carddb/client_spec.rb[1:1:1] | passed | 0.00024 seconds |
4
- ./spec/carddb/client_spec.rb[1:1:2] | passed | 0.00004 seconds |
5
- ./spec/carddb/client_spec.rb[1:1:3] | passed | 0.00004 seconds |
6
- ./spec/carddb/client_spec.rb[1:1:4] | passed | 0.00004 seconds |
7
- ./spec/carddb/client_spec.rb[1:2:1] | passed | 0.00016 seconds |
8
- ./spec/carddb/client_spec.rb[1:2:2] | passed | 0.00017 seconds |
9
- ./spec/carddb/client_spec.rb[1:3:1] | passed | 0.00003 seconds |
10
- ./spec/carddb/client_spec.rb[1:4:1] | passed | 0.00003 seconds |
11
- ./spec/carddb/client_spec.rb[1:5:1] | passed | 0.00004 seconds |
12
- ./spec/carddb/client_spec.rb[1:6:1] | passed | 0.00003 seconds |
13
- ./spec/carddb/client_spec.rb[1:7:1] | passed | 0.00025 seconds |
14
- ./spec/carddb/client_spec.rb[1:7:2] | passed | 0.00901 seconds |
15
- ./spec/carddb/collection_spec.rb[1:1:1] | passed | 0.00007 seconds |
16
- ./spec/carddb/collection_spec.rb[2:1:1] | passed | 0.00004 seconds |
17
- ./spec/carddb/collection_spec.rb[3:1:1] | passed | 0.00222 seconds |
18
- ./spec/carddb/collection_spec.rb[3:1:2] | passed | 0.00016 seconds |
19
- ./spec/carddb/collection_spec.rb[3:1:3] | passed | 0.00042 seconds |
20
- ./spec/carddb/collection_spec.rb[3:1:4] | passed | 0.0004 seconds |
21
- ./spec/carddb/collection_spec.rb[3:1:5] | passed | 0.00005 seconds |
22
- ./spec/carddb/collection_spec.rb[4:1:1] | passed | 0.00016 seconds |
23
- ./spec/carddb/collection_spec.rb[4:1:2] | passed | 0.00015 seconds |
24
- ./spec/carddb/collection_spec.rb[4:1:3] | passed | 0.00016 seconds |
25
- ./spec/carddb/collection_spec.rb[4:1:4] | passed | 0.00004 seconds |
26
- ./spec/carddb/configuration_spec.rb[1:1:1] | passed | 0.00004 seconds |
27
- ./spec/carddb/configuration_spec.rb[1:1:2] | passed | 0.00003 seconds |
28
- ./spec/carddb/configuration_spec.rb[1:1:3] | passed | 0.00004 seconds |
29
- ./spec/carddb/configuration_spec.rb[1:1:4] | passed | 0.00004 seconds |
30
- ./spec/carddb/configuration_spec.rb[1:1:5] | passed | 0.00003 seconds |
31
- ./spec/carddb/configuration_spec.rb[1:1:6] | passed | 0.00003 seconds |
32
- ./spec/carddb/configuration_spec.rb[1:2:1:1] | passed | 0.00005 seconds |
33
- ./spec/carddb/configuration_spec.rb[1:2:2:1] | passed | 0.00004 seconds |
34
- ./spec/carddb/configuration_spec.rb[1:2:2:2] | passed | 0.00004 seconds |
35
- ./spec/carddb/configuration_spec.rb[1:3:1:1] | passed | 0.00004 seconds |
36
- ./spec/carddb/configuration_spec.rb[1:3:2:1] | passed | 0.00003 seconds |
37
- ./spec/carddb/configuration_spec.rb[1:3:2:2] | passed | 0.00004 seconds |
38
- ./spec/carddb/configuration_spec.rb[1:3:2:3] | passed | 0.00003 seconds |
39
- ./spec/carddb/configuration_spec.rb[1:4:1] | passed | 0.00003 seconds |
40
- ./spec/carddb/configuration_spec.rb[1:4:2] | passed | 0.00005 seconds |
41
- ./spec/carddb/configuration_spec.rb[1:5:1] | passed | 0.00003 seconds |
42
- ./spec/carddb/configuration_spec.rb[1:6:1] | passed | 0.00003 seconds |
43
- ./spec/carddb/configuration_spec.rb[1:6:2] | passed | 0.00003 seconds |
44
- ./spec/carddb/configuration_spec.rb[1:6:3] | passed | 0.00003 seconds |
45
- ./spec/carddb/configuration_spec.rb[1:7:1] | passed | 0.00004 seconds |
46
- ./spec/carddb/configuration_spec.rb[1:7:2] | passed | 0.00004 seconds |
47
- ./spec/carddb/configuration_spec.rb[1:7:3] | passed | 0.00004 seconds |
48
- ./spec/carddb/filter_builder_spec.rb[1:1:1] | passed | 0.00004 seconds |
49
- ./spec/carddb/filter_builder_spec.rb[1:1:2] | passed | 0.00003 seconds |
50
- ./spec/carddb/filter_builder_spec.rb[1:1:3] | passed | 0.00003 seconds |
51
- ./spec/carddb/filter_builder_spec.rb[1:1:4] | passed | 0.00003 seconds |
52
- ./spec/carddb/filter_builder_spec.rb[1:1:5] | passed | 0.00003 seconds |
53
- ./spec/carddb/filter_builder_spec.rb[1:1:6] | passed | 0.00003 seconds |
54
- ./spec/carddb/filter_builder_spec.rb[1:1:7] | passed | 0.00004 seconds |
55
- ./spec/carddb/filter_builder_spec.rb[1:1:8] | passed | 0.00003 seconds |
56
- ./spec/carddb/filter_builder_spec.rb[1:2:1] | passed | 0.00003 seconds |
57
- ./spec/carddb/filter_builder_spec.rb[1:2:2] | passed | 0.00003 seconds |
58
- ./spec/carddb/filter_builder_spec.rb[1:2:3] | passed | 0.00003 seconds |
59
- ./spec/carddb/filter_builder_spec.rb[1:2:4] | passed | 0.00003 seconds |
60
- ./spec/carddb/filter_builder_spec.rb[1:2:5] | passed | 0.00003 seconds |
61
- ./spec/carddb/filter_builder_spec.rb[1:2:6] | passed | 0.00002 seconds |
62
- ./spec/carddb/filter_builder_spec.rb[1:2:7] | passed | 0.00003 seconds |
63
- ./spec/carddb/filter_builder_spec.rb[1:2:8] | passed | 0.00003 seconds |
64
- ./spec/carddb/filter_builder_spec.rb[1:2:9] | passed | 0.00004 seconds |
65
- ./spec/carddb/filter_builder_spec.rb[1:2:10] | passed | 0.00003 seconds |
66
- ./spec/carddb/filter_builder_spec.rb[1:2:11] | passed | 0.00003 seconds |
67
- ./spec/carddb/filter_builder_spec.rb[1:2:12] | passed | 0.00003 seconds |
68
- ./spec/carddb/filter_builder_spec.rb[1:2:13] | passed | 0.00004 seconds |
69
- ./spec/carddb/query_builder_spec.rb[1:1:1] | passed | 0.00004 seconds |
70
- ./spec/carddb/query_builder_spec.rb[1:1:2] | passed | 0.00004 seconds |
71
- ./spec/carddb/query_builder_spec.rb[1:1:3] | passed | 0.00064 seconds |
72
- ./spec/carddb/query_builder_spec.rb[1:2:1:1] | passed | 0.00006 seconds |
73
- ./spec/carddb/query_builder_spec.rb[1:2:2:1] | passed | 0.00004 seconds |
74
- ./spec/carddb/query_builder_spec.rb[1:3:1] | passed | 0.00005 seconds |
75
- ./spec/carddb/query_builder_spec.rb[1:3:2] | passed | 0.00004 seconds |
76
- ./spec/carddb/query_builder_spec.rb[1:4:1] | passed | 0.00004 seconds |
77
- ./spec/carddb/query_builder_spec.rb[1:4:2] | passed | 0.00004 seconds |
78
- ./spec/carddb/query_builder_spec.rb[1:5:1] | passed | 0.00003 seconds |
79
- ./spec/carddb/query_builder_spec.rb[1:5:2] | passed | 0.00004 seconds |
80
- ./spec/carddb/query_builder_spec.rb[1:5:3] | passed | 0.00006 seconds |
81
- ./spec/carddb/query_builder_spec.rb[1:5:4] | passed | 0.00004 seconds |
82
- ./spec/carddb/query_builder_spec.rb[1:5:5] | passed | 0.00007 seconds |
83
- ./spec/carddb/query_builder_spec.rb[1:5:6] | passed | 0.00004 seconds |
84
- ./spec/carddb/query_builder_spec.rb[1:5:7] | passed | 0.00004 seconds |
85
- ./spec/carddb/resources/datasets_spec.rb[1:1:1] | passed | 0.00434 seconds |
86
- ./spec/carddb/resources/datasets_spec.rb[1:1:2] | passed | 0.0044 seconds |
87
- ./spec/carddb/resources/datasets_spec.rb[1:2:1] | passed | 0.00411 seconds |
88
- ./spec/carddb/resources/decks_spec.rb[1:1:1] | passed | 0.00433 seconds |
89
- ./spec/carddb/resources/decks_spec.rb[1:1:2] | passed | 0.00429 seconds |
90
- ./spec/carddb/resources/decks_spec.rb[1:1:3] | passed | 0.00406 seconds |
91
- ./spec/carddb/resources/decks_spec.rb[1:1:4] | passed | 0.00423 seconds |
92
- ./spec/carddb/resources/decks_spec.rb[1:2:1] | passed | 0.0045 seconds |
93
- ./spec/carddb/resources/decks_spec.rb[1:2:2] | passed | 0.0082 seconds |
94
- ./spec/carddb/resources/decks_spec.rb[1:2:3] | passed | 0.00007 seconds |
95
- ./spec/carddb/resources/decks_spec.rb[1:3:1] | passed | 0.00416 seconds |
96
- ./spec/carddb/resources/decks_spec.rb[1:4:1] | passed | 0.00417 seconds |
97
- ./spec/carddb/resources/decks_spec.rb[1:5:1] | passed | 0.00397 seconds |
98
- ./spec/carddb/resources/decks_spec.rb[1:6:1] | passed | 0.004 seconds |
99
- ./spec/carddb/resources/decks_spec.rb[1:7:1] | passed | 0.00399 seconds |
100
- ./spec/carddb/resources/decks_spec.rb[1:8:1] | passed | 0.00412 seconds |
101
- ./spec/carddb/resources/decks_spec.rb[1:9:1] | passed | 0.00416 seconds |
102
- ./spec/carddb/resources/decks_spec.rb[1:10:1] | passed | 0.00424 seconds |
103
- ./spec/carddb/resources/decks_spec.rb[1:11:1] | passed | 0.00415 seconds |
104
- ./spec/carddb/resources/decks_spec.rb[1:11:2] | passed | 0.00402 seconds |
105
- ./spec/carddb/resources/decks_spec.rb[1:11:3] | passed | 0.0082 seconds |
106
- ./spec/carddb/resources/decks_spec.rb[1:11:4] | passed | 0.00452 seconds |
107
- ./spec/carddb/resources/decks_spec.rb[1:12:1] | passed | 0.00408 seconds |
108
- ./spec/carddb/resources/decks_spec.rb[1:13:1] | passed | 0.00396 seconds |
109
- ./spec/carddb/resources/decks_spec.rb[1:14:1] | passed | 0.00432 seconds |
110
- ./spec/carddb/resources/decks_spec.rb[1:14:2] | passed | 0.00454 seconds |
111
- ./spec/carddb/resources/decks_spec.rb[1:14:3] | passed | 0.00404 seconds |
112
- ./spec/carddb/resources/decks_spec.rb[1:15:1] | passed | 0.0042 seconds |
113
- ./spec/carddb/resources/decks_spec.rb[1:16:1] | passed | 0.00418 seconds |
114
- ./spec/carddb/resources/decks_spec.rb[1:17:1] | passed | 0.00442 seconds |
115
- ./spec/carddb/resources/decks_spec.rb[1:17:2] | passed | 0.00463 seconds |
116
- ./spec/carddb/resources/decks_spec.rb[1:17:3] | passed | 0.00502 seconds |
117
- ./spec/carddb/resources/decks_spec.rb[1:18:1] | passed | 0.00582 seconds |
118
- ./spec/carddb/resources/decks_spec.rb[1:19:1] | passed | 0.00495 seconds |
119
- ./spec/carddb/resources/decks_spec.rb[1:20:1] | passed | 0.00392 seconds |
120
- ./spec/carddb/resources/decks_spec.rb[1:21:1] | passed | 0.00396 seconds |
121
- ./spec/carddb/resources/decks_spec.rb[1:22:1] | passed | 0.00508 seconds |
122
- ./spec/carddb/resources/decks_spec.rb[1:23:1] | passed | 0.00391 seconds |
123
- ./spec/carddb/resources/decks_spec.rb[1:24:1] | passed | 0.0042 seconds |
124
- ./spec/carddb/resources/decks_spec.rb[1:25:1] | passed | 0.00405 seconds |
125
- ./spec/carddb/resources/games_spec.rb[1:1:1] | passed | 0.0041 seconds |
126
- ./spec/carddb/resources/games_spec.rb[1:1:2] | passed | 0.00007 seconds |
127
- ./spec/carddb/resources/games_spec.rb[1:2:1] | passed | 0.00376 seconds |
128
- ./spec/carddb/resources/games_spec.rb[1:2:2] | passed | 0.00465 seconds |
129
- ./spec/carddb/resources/publishers_spec.rb[1:1:1] | passed | 0.00394 seconds |
130
- ./spec/carddb/resources/publishers_spec.rb[1:2:1] | passed | 0.00392 seconds |
131
- ./spec/carddb/resources/records_spec.rb[1:1:1] | passed | 0.00399 seconds |
132
- ./spec/carddb/resources/records_spec.rb[1:1:2] | passed | 0.00394 seconds |
133
- ./spec/carddb/resources/records_spec.rb[1:1:3] | passed | 0.00011 seconds |
134
- ./spec/carddb/resources/records_spec.rb[1:1:4] | passed | 0.00004 seconds |
135
- ./spec/carddb/resources/records_spec.rb[1:2:1] | passed | 0.00391 seconds |
136
- ./spec/carddb/resources/records_spec.rb[1:2:2] | passed | 0.00395 seconds |
137
- ./spec/carddb/resources/records_spec.rb[1:2:3] | passed | 0.0039 seconds |
138
- ./spec/carddb/resources/records_spec.rb[1:3:1] | passed | 0.00387 seconds |
139
- ./spec/carddb/resources/records_spec.rb[1:3:2] | passed | 0.00011 seconds |
140
- ./spec/carddb/resources/records_spec.rb[1:4:1] | passed | 0.00412 seconds |
141
- ./spec/carddb/resources/records_spec.rb[1:4:2] | passed | 0.00005 seconds |
142
- ./spec/carddb/resources/records_spec.rb[1:4:3] | passed | 0.00009 seconds |
143
- ./spec/carddb/resources/rules_spec.rb[1:1:1] | passed | 0.004 seconds |
144
- ./spec/carddb/resources/rules_spec.rb[1:2:1] | passed | 0.00388 seconds |
145
- ./spec/carddb_spec.rb[1:1] | passed | 0.00004 seconds |
146
- ./spec/carddb_spec.rb[1:2:1] | passed | 0.00004 seconds |
147
- ./spec/carddb_spec.rb[1:3:1] | passed | 0.00003 seconds |
148
- ./spec/carddb_spec.rb[1:4:1] | passed | 0.00004 seconds |
149
- ./spec/carddb_spec.rb[1:5:1] | passed | 0.00003 seconds |
150
- ./spec/carddb_spec.rb[1:6:1] | passed | 0.00003 seconds |
151
- ./spec/carddb_spec.rb[1:7:1] | passed | 0.00004 seconds |
1
+ example_id | status | run_time |
2
+ ---------------------------------------------------------- | ------ | --------------- |
3
+ ./spec/carddb/client_spec.rb[1:1:1] | passed | 0.00052 seconds |
4
+ ./spec/carddb/client_spec.rb[1:1:2] | passed | 0.00004 seconds |
5
+ ./spec/carddb/client_spec.rb[1:1:3] | passed | 0.00003 seconds |
6
+ ./spec/carddb/client_spec.rb[1:1:4] | passed | 0.00003 seconds |
7
+ ./spec/carddb/client_spec.rb[1:2:1] | passed | 0.00033 seconds |
8
+ ./spec/carddb/client_spec.rb[1:2:2] | passed | 0.00037 seconds |
9
+ ./spec/carddb/client_spec.rb[1:3:1] | passed | 0.00005 seconds |
10
+ ./spec/carddb/client_spec.rb[1:4:1] | passed | 0.00004 seconds |
11
+ ./spec/carddb/client_spec.rb[1:5:1] | passed | 0.00004 seconds |
12
+ ./spec/carddb/client_spec.rb[1:6:1] | passed | 0.00003 seconds |
13
+ ./spec/carddb/client_spec.rb[1:7:1] | passed | 0.0001 seconds |
14
+ ./spec/carddb/client_spec.rb[1:8:1] | passed | 0.00005 seconds |
15
+ ./spec/carddb/client_spec.rb[1:9:1] | passed | 0.00004 seconds |
16
+ ./spec/carddb/client_spec.rb[1:10:1] | passed | 0.00003 seconds |
17
+ ./spec/carddb/client_spec.rb[1:11:1] | passed | 0.00045 seconds |
18
+ ./spec/carddb/client_spec.rb[1:11:2] | passed | 0.00967 seconds |
19
+ ./spec/carddb/collection_spec.rb[1:1:1] | passed | 0.00007 seconds |
20
+ ./spec/carddb/collection_spec.rb[2:1:1] | passed | 0.00003 seconds |
21
+ ./spec/carddb/collection_spec.rb[3:1:1] | passed | 0.00705 seconds |
22
+ ./spec/carddb/collection_spec.rb[3:1:2] | passed | 0.00016 seconds |
23
+ ./spec/carddb/collection_spec.rb[3:1:3] | passed | 0.00085 seconds |
24
+ ./spec/carddb/collection_spec.rb[3:1:4] | passed | 0.00058 seconds |
25
+ ./spec/carddb/collection_spec.rb[3:1:5] | passed | 0.00005 seconds |
26
+ ./spec/carddb/collection_spec.rb[4:1:1] | passed | 0.00016 seconds |
27
+ ./spec/carddb/collection_spec.rb[4:1:2] | passed | 0.00014 seconds |
28
+ ./spec/carddb/collection_spec.rb[4:1:3] | passed | 0.00014 seconds |
29
+ ./spec/carddb/collection_spec.rb[4:1:4] | passed | 0.00015 seconds |
30
+ ./spec/carddb/configuration_spec.rb[1:1:1] | passed | 0.00003 seconds |
31
+ ./spec/carddb/configuration_spec.rb[1:1:2] | passed | 0.00003 seconds |
32
+ ./spec/carddb/configuration_spec.rb[1:1:3] | passed | 0.00003 seconds |
33
+ ./spec/carddb/configuration_spec.rb[1:1:4] | passed | 0.00003 seconds |
34
+ ./spec/carddb/configuration_spec.rb[1:1:5] | passed | 0.00003 seconds |
35
+ ./spec/carddb/configuration_spec.rb[1:1:6] | passed | 0.00003 seconds |
36
+ ./spec/carddb/configuration_spec.rb[1:2:1:1] | passed | 0.00004 seconds |
37
+ ./spec/carddb/configuration_spec.rb[1:2:2:1] | passed | 0.00003 seconds |
38
+ ./spec/carddb/configuration_spec.rb[1:2:2:2] | passed | 0.00004 seconds |
39
+ ./spec/carddb/configuration_spec.rb[1:3:1:1] | passed | 0.00003 seconds |
40
+ ./spec/carddb/configuration_spec.rb[1:3:2:1] | passed | 0.00004 seconds |
41
+ ./spec/carddb/configuration_spec.rb[1:3:2:2] | passed | 0.00003 seconds |
42
+ ./spec/carddb/configuration_spec.rb[1:3:2:3] | passed | 0.00003 seconds |
43
+ ./spec/carddb/configuration_spec.rb[1:4:1] | passed | 0.00003 seconds |
44
+ ./spec/carddb/configuration_spec.rb[1:4:2] | passed | 0.00003 seconds |
45
+ ./spec/carddb/configuration_spec.rb[1:5:1] | passed | 0.00003 seconds |
46
+ ./spec/carddb/configuration_spec.rb[1:6:1] | passed | 0.00003 seconds |
47
+ ./spec/carddb/configuration_spec.rb[1:6:2] | passed | 0.00003 seconds |
48
+ ./spec/carddb/configuration_spec.rb[1:6:3] | passed | 0.00002 seconds |
49
+ ./spec/carddb/configuration_spec.rb[1:7:1] | passed | 0.00003 seconds |
50
+ ./spec/carddb/configuration_spec.rb[1:7:2] | passed | 0.00003 seconds |
51
+ ./spec/carddb/configuration_spec.rb[1:7:3] | passed | 0.00004 seconds |
52
+ ./spec/carddb/filter_builder_spec.rb[1:1:1] | passed | 0.00003 seconds |
53
+ ./spec/carddb/filter_builder_spec.rb[1:1:2] | passed | 0.00003 seconds |
54
+ ./spec/carddb/filter_builder_spec.rb[1:1:3] | passed | 0.00003 seconds |
55
+ ./spec/carddb/filter_builder_spec.rb[1:1:4] | passed | 0.00008 seconds |
56
+ ./spec/carddb/filter_builder_spec.rb[1:1:5] | passed | 0.00003 seconds |
57
+ ./spec/carddb/filter_builder_spec.rb[1:1:6] | passed | 0.00003 seconds |
58
+ ./spec/carddb/filter_builder_spec.rb[1:1:7] | passed | 0.00003 seconds |
59
+ ./spec/carddb/filter_builder_spec.rb[1:1:8] | passed | 0.00003 seconds |
60
+ ./spec/carddb/filter_builder_spec.rb[1:2:1] | passed | 0.00003 seconds |
61
+ ./spec/carddb/filter_builder_spec.rb[1:2:2] | passed | 0.00003 seconds |
62
+ ./spec/carddb/filter_builder_spec.rb[1:2:3] | passed | 0.00003 seconds |
63
+ ./spec/carddb/filter_builder_spec.rb[1:2:4] | passed | 0.00003 seconds |
64
+ ./spec/carddb/filter_builder_spec.rb[1:2:5] | passed | 0.00003 seconds |
65
+ ./spec/carddb/filter_builder_spec.rb[1:2:6] | passed | 0.00002 seconds |
66
+ ./spec/carddb/filter_builder_spec.rb[1:2:7] | passed | 0.00003 seconds |
67
+ ./spec/carddb/filter_builder_spec.rb[1:2:8] | passed | 0.00002 seconds |
68
+ ./spec/carddb/filter_builder_spec.rb[1:2:9] | passed | 0.00002 seconds |
69
+ ./spec/carddb/filter_builder_spec.rb[1:2:10] | passed | 0.00002 seconds |
70
+ ./spec/carddb/filter_builder_spec.rb[1:2:11] | passed | 0.00002 seconds |
71
+ ./spec/carddb/filter_builder_spec.rb[1:2:12] | passed | 0.00002 seconds |
72
+ ./spec/carddb/filter_builder_spec.rb[1:2:13] | passed | 0.00008 seconds |
73
+ ./spec/carddb/query_builder_spec.rb[1:1:1] | passed | 0.00004 seconds |
74
+ ./spec/carddb/query_builder_spec.rb[1:1:2] | passed | 0.00004 seconds |
75
+ ./spec/carddb/query_builder_spec.rb[1:1:3] | passed | 0.00087 seconds |
76
+ ./spec/carddb/query_builder_spec.rb[1:2:1:1] | passed | 0.00005 seconds |
77
+ ./spec/carddb/query_builder_spec.rb[1:2:2:1] | passed | 0.00004 seconds |
78
+ ./spec/carddb/query_builder_spec.rb[1:3:1] | passed | 0.00004 seconds |
79
+ ./spec/carddb/query_builder_spec.rb[1:3:2] | passed | 0.00004 seconds |
80
+ ./spec/carddb/query_builder_spec.rb[1:4:1] | passed | 0.00004 seconds |
81
+ ./spec/carddb/query_builder_spec.rb[1:4:2] | passed | 0.00004 seconds |
82
+ ./spec/carddb/query_builder_spec.rb[1:5:1] | passed | 0.00004 seconds |
83
+ ./spec/carddb/query_builder_spec.rb[1:5:2] | passed | 0.00004 seconds |
84
+ ./spec/carddb/query_builder_spec.rb[1:5:3] | passed | 0.00004 seconds |
85
+ ./spec/carddb/query_builder_spec.rb[1:5:4] | passed | 0.00003 seconds |
86
+ ./spec/carddb/query_builder_spec.rb[1:5:5] | passed | 0.00009 seconds |
87
+ ./spec/carddb/query_builder_spec.rb[1:5:6] | passed | 0.00006 seconds |
88
+ ./spec/carddb/query_builder_spec.rb[1:5:7] | passed | 0.00004 seconds |
89
+ ./spec/carddb/query_builder_spec.rb[1:6:1] | passed | 0.00006 seconds |
90
+ ./spec/carddb/query_builder_spec.rb[1:6:2] | passed | 0.00006 seconds |
91
+ ./spec/carddb/query_builder_spec.rb[1:6:3] | passed | 0.00005 seconds |
92
+ ./spec/carddb/resources/datasets_spec.rb[1:1:1] | passed | 0.00418 seconds |
93
+ ./spec/carddb/resources/datasets_spec.rb[1:1:2] | passed | 0.00411 seconds |
94
+ ./spec/carddb/resources/datasets_spec.rb[1:2:1] | passed | 0.00396 seconds |
95
+ ./spec/carddb/resources/decks_spec.rb[1:1:1] | passed | 0.00389 seconds |
96
+ ./spec/carddb/resources/decks_spec.rb[1:1:2] | passed | 0.00448 seconds |
97
+ ./spec/carddb/resources/decks_spec.rb[1:1:3] | passed | 0.00407 seconds |
98
+ ./spec/carddb/resources/decks_spec.rb[1:1:4] | passed | 0.0038 seconds |
99
+ ./spec/carddb/resources/decks_spec.rb[1:2:1] | passed | 0.00414 seconds |
100
+ ./spec/carddb/resources/decks_spec.rb[1:2:2] | passed | 0.00772 seconds |
101
+ ./spec/carddb/resources/decks_spec.rb[1:2:3] | passed | 0.00007 seconds |
102
+ ./spec/carddb/resources/decks_spec.rb[1:3:1] | passed | 0.00415 seconds |
103
+ ./spec/carddb/resources/decks_spec.rb[1:4:1] | passed | 0.00387 seconds |
104
+ ./spec/carddb/resources/decks_spec.rb[1:5:1] | passed | 0.00389 seconds |
105
+ ./spec/carddb/resources/decks_spec.rb[1:6:1] | passed | 0.00375 seconds |
106
+ ./spec/carddb/resources/decks_spec.rb[1:7:1] | passed | 0.0037 seconds |
107
+ ./spec/carddb/resources/decks_spec.rb[1:8:1] | passed | 0.00413 seconds |
108
+ ./spec/carddb/resources/decks_spec.rb[1:9:1] | passed | 0.00412 seconds |
109
+ ./spec/carddb/resources/decks_spec.rb[1:10:1] | passed | 0.00398 seconds |
110
+ ./spec/carddb/resources/decks_spec.rb[1:11:1] | passed | 0.00387 seconds |
111
+ ./spec/carddb/resources/decks_spec.rb[1:11:2] | passed | 0.00762 seconds |
112
+ ./spec/carddb/resources/decks_spec.rb[1:11:3] | passed | 0.00502 seconds |
113
+ ./spec/carddb/resources/decks_spec.rb[1:11:4] | passed | 0.00422 seconds |
114
+ ./spec/carddb/resources/decks_spec.rb[1:12:1] | passed | 0.00354 seconds |
115
+ ./spec/carddb/resources/decks_spec.rb[1:13:1] | passed | 0.00386 seconds |
116
+ ./spec/carddb/resources/decks_spec.rb[1:14:1] | passed | 0.00363 seconds |
117
+ ./spec/carddb/resources/decks_spec.rb[1:14:2] | passed | 0.00495 seconds |
118
+ ./spec/carddb/resources/decks_spec.rb[1:14:3] | passed | 0.00394 seconds |
119
+ ./spec/carddb/resources/decks_spec.rb[1:15:1] | passed | 0.00407 seconds |
120
+ ./spec/carddb/resources/decks_spec.rb[1:16:1] | passed | 0.00354 seconds |
121
+ ./spec/carddb/resources/decks_spec.rb[1:17:1] | passed | 0.00443 seconds |
122
+ ./spec/carddb/resources/decks_spec.rb[1:17:2] | passed | 0.00552 seconds |
123
+ ./spec/carddb/resources/decks_spec.rb[1:17:3] | passed | 0.0038 seconds |
124
+ ./spec/carddb/resources/decks_spec.rb[1:18:1] | passed | 0.00526 seconds |
125
+ ./spec/carddb/resources/decks_spec.rb[1:19:1] | passed | 0.00373 seconds |
126
+ ./spec/carddb/resources/decks_spec.rb[1:20:1] | passed | 0.00356 seconds |
127
+ ./spec/carddb/resources/decks_spec.rb[1:21:1] | passed | 0.00354 seconds |
128
+ ./spec/carddb/resources/decks_spec.rb[1:22:1] | passed | 0.00362 seconds |
129
+ ./spec/carddb/resources/decks_spec.rb[1:23:1] | passed | 0.00352 seconds |
130
+ ./spec/carddb/resources/decks_spec.rb[1:24:1] | passed | 0.00352 seconds |
131
+ ./spec/carddb/resources/decks_spec.rb[1:25:1] | passed | 0.00353 seconds |
132
+ ./spec/carddb/resources/games_spec.rb[1:1:1] | passed | 0.00357 seconds |
133
+ ./spec/carddb/resources/games_spec.rb[1:1:2] | passed | 0.00007 seconds |
134
+ ./spec/carddb/resources/games_spec.rb[1:2:1] | passed | 0.00368 seconds |
135
+ ./spec/carddb/resources/games_spec.rb[1:2:2] | passed | 0.00367 seconds |
136
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:1:1] | passed | 0.00369 seconds |
137
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:1:2] | passed | 0.00371 seconds |
138
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:1:3] | passed | 0.00441 seconds |
139
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:2:1] | passed | 0.00422 seconds |
140
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:2:2] | passed | 0.00007 seconds |
141
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:3:1] | passed | 0.00384 seconds |
142
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:3:2] | passed | 0.00365 seconds |
143
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:3:3] | passed | 0.00347 seconds |
144
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:4:1] | passed | 0.00391 seconds |
145
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:4:2] | passed | 0.00468 seconds |
146
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:4:3] | passed | 0.00398 seconds |
147
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:5:1] | passed | 0.00697 seconds |
148
+ ./spec/carddb/resources/publisher_workflows_spec.rb[1:5:2] | passed | 0.00372 seconds |
149
+ ./spec/carddb/resources/publishers_spec.rb[1:1:1] | passed | 0.00448 seconds |
150
+ ./spec/carddb/resources/publishers_spec.rb[1:2:1] | passed | 0.0038 seconds |
151
+ ./spec/carddb/resources/records_spec.rb[1:1:1] | passed | 0.00458 seconds |
152
+ ./spec/carddb/resources/records_spec.rb[1:1:2] | passed | 0.00364 seconds |
153
+ ./spec/carddb/resources/records_spec.rb[1:1:3] | passed | 0.0001 seconds |
154
+ ./spec/carddb/resources/records_spec.rb[1:1:4] | passed | 0.00004 seconds |
155
+ ./spec/carddb/resources/records_spec.rb[1:2:1] | passed | 0.00451 seconds |
156
+ ./spec/carddb/resources/records_spec.rb[1:2:2] | passed | 0.00353 seconds |
157
+ ./spec/carddb/resources/records_spec.rb[1:2:3] | passed | 0.00354 seconds |
158
+ ./spec/carddb/resources/records_spec.rb[1:3:1] | passed | 0.00506 seconds |
159
+ ./spec/carddb/resources/records_spec.rb[1:3:2] | passed | 0.00011 seconds |
160
+ ./spec/carddb/resources/records_spec.rb[1:4:1] | passed | 0.00361 seconds |
161
+ ./spec/carddb/resources/records_spec.rb[1:4:2] | passed | 0.00116 seconds |
162
+ ./spec/carddb/resources/records_spec.rb[1:4:3] | passed | 0.00011 seconds |
163
+ ./spec/carddb/resources/rules_spec.rb[1:1:1] | passed | 0.00373 seconds |
164
+ ./spec/carddb/resources/rules_spec.rb[1:2:1] | passed | 0.00413 seconds |
165
+ ./spec/carddb_spec.rb[1:1] | passed | 0.00004 seconds |
166
+ ./spec/carddb_spec.rb[1:2:1] | passed | 0.00003 seconds |
167
+ ./spec/carddb_spec.rb[1:3:1] | passed | 0.00003 seconds |
168
+ ./spec/carddb_spec.rb[1:4:1] | passed | 0.00004 seconds |
169
+ ./spec/carddb_spec.rb[1:5:1] | passed | 0.00003 seconds |
170
+ ./spec/carddb_spec.rb[1:6:1] | passed | 0.00003 seconds |
171
+ ./spec/carddb_spec.rb[1:7:1] | passed | 0.00003 seconds |
data/CHANGELOG.md CHANGED
@@ -9,10 +9,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ### Added
11
11
 
12
+ - Publisher workflow resources for game management, import-format management, import jobs, files, dataset exports, schema introspection, batch upsert, and bulk delete/reconciliation.
13
+ - Structured wrapper objects for import validation errors, import jobs/logs, delete job results, export jobs, files, and presigned uploads.
14
+ - Publisher content pipeline example and release-prep documentation.
12
15
  - Deck import payloads now expose configured import format metadata and auto-detection details.
13
16
  - Documentation now covers configured deck imports and `BAN` / `RESTRICTION` deck validation issue metadata.
14
17
  - Deck clients now expose ownership-aware queries, claim/transfer/copy helpers, selected-deck app access management, configured import-format management, direct deck access token issuer fields, and `publishable_key` configuration.
15
18
 
19
+ ### Security
20
+
21
+ - Publisher-management writes are guarded by secret-key-only checks and reject publishable-key or OAuth bearer-token configurations before making requests.
22
+
16
23
  ## [0.2.1] - 2026-05-01
17
24
 
18
25
  ### Fixed
data/README.md CHANGED
@@ -102,7 +102,7 @@ Credential guidance:
102
102
 
103
103
  - Use `publishable_key` for public reads and OAuth setup flows.
104
104
  - Use `access_token` for user-authorized deck workflows.
105
- - Use `secret_key` only in trusted server runtimes for app-owned deck sync and token exchange.
105
+ - Use `secret_key` only in trusted server runtimes for publisher management, app-owned deck sync, and token exchange.
106
106
  - Secret-only helpers fail before making a request if `access_token` or `publishable_key` would be sent instead of a secret credential.
107
107
 
108
108
  ## Usage
@@ -192,6 +192,184 @@ dataset.searchable?(:name) # Check if field is searchable
192
192
  dataset.field(:hp) # Get field info by key
193
193
  ```
194
194
 
195
+ ### Publisher Workflows
196
+
197
+ Publisher-management writes require a trusted server-side `secret_key` or legacy `api_key`.
198
+ They fail before making a request if a `publishable_key` or OAuth `access_token` would be used.
199
+
200
+ ```ruby
201
+ client = CardDB::Client.new(secret_key: ENV.fetch('CARDDB_SECRET_KEY'))
202
+
203
+ # Games and datasets
204
+ games = client.games.list(publisher_id: 'publisher_uuid')
205
+ game = client.games.get_by_key(publisher_id: 'publisher_uuid', game_key: 'pokemon-tcg')
206
+ game ||= client.games.create(
207
+ input: {
208
+ publisherId: 'publisher_uuid',
209
+ key: 'pokemon-tcg',
210
+ name: 'Pokemon TCG',
211
+ visibility: 'PRIVATE'
212
+ }
213
+ )
214
+ game = client.games.update(id: game.id, input: { description: 'Publisher-managed game' })
215
+ dataset = client.datasets.get_by_key(game_id: game.id, dataset_key: 'cards')
216
+ schema = client.datasets.get_schema(id: dataset.id)
217
+
218
+ # Import formats
219
+ formats = client.import_formats.list(game_id: game.id)
220
+ client.import_formats.create(
221
+ input: {
222
+ gameId: game.id,
223
+ key: 'pokemon-live',
224
+ name: 'Pokemon Live',
225
+ config: { schemaVersion: 1 }
226
+ }
227
+ )
228
+
229
+ # Files and imports
230
+ upload = client.files.request_upload(
231
+ input: {
232
+ filename: 'cards.json',
233
+ contentType: 'application/json',
234
+ size: 12_345,
235
+ isPublic: false,
236
+ publisherId: 'publisher_uuid'
237
+ }
238
+ )
239
+
240
+ job = client.imports.run(
241
+ input: {
242
+ datasetId: dataset.id,
243
+ fileId: upload.file.id,
244
+ format: 'JSON',
245
+ options: { mode: 'STRICT', onConflict: 'UPDATE' }
246
+ }
247
+ )
248
+ client.imports.wait_for_job(job.id)
249
+
250
+ # Batch upserts and explicit deletes
251
+ dry_run = client.records.upsert_batch(
252
+ input: {
253
+ datasetId: dataset.id,
254
+ records: [{ identifier: 'CARD-001', name: 'Pikachu' }],
255
+ options: { dryRun: true }
256
+ }
257
+ )
258
+ puts dry_run.dry_run_result.errors.map(&:index)
259
+
260
+ delete_job = client.records.delete_batch(
261
+ input: { datasetId: dataset.id, identifiers: ['CARD-001'], dryRun: true }
262
+ )
263
+ puts delete_job.results.map(&:status)
264
+
265
+ # Exports
266
+ export = client.exports.run(input: { datasetId: dataset.id, format: 'JSON' })
267
+ export = client.exports.wait_for_job(export.id)
268
+ puts export.download_url
269
+ ```
270
+
271
+ Publisher import source modes:
272
+
273
+ - Direct payload: use `records`, `data`, or `imports.run(input: { data: ... })` for small CI payloads and tests.
274
+ - Uploaded file: use `files.request_upload`, PUT bytes to `upload_url`, `files.confirm_upload`, then pass `fileId` for larger JSON/CSV imports.
275
+ - Source URL: pass `sourceUrl` when CardDB should fetch and snapshot an HTTPS source before processing.
276
+
277
+ Existing-schema imports validate against the current dataset schema and reject unexpected fields:
278
+
279
+ ```ruby
280
+ validation = client.imports.validate(
281
+ input: {
282
+ datasetId: dataset.id,
283
+ records: [{ identifier: 'CARD-001', name: 'Example Card' }],
284
+ options: { mode: 'STRICT', onConflict: 'UPDATE', dryRun: true }
285
+ }
286
+ )
287
+
288
+ validation.errors.each do |error|
289
+ puts "#{error.dataset_key}[#{error.index}]: #{error.errors.map(&:message).join(', ')}"
290
+ end
291
+
292
+ job = client.imports.run(
293
+ input: {
294
+ datasetId: dataset.id,
295
+ sourceUrl: 'https://publisher.example/cards.json',
296
+ format: 'JSON',
297
+ options: { mode: 'STRICT', onConflict: 'UPDATE' }
298
+ }
299
+ )
300
+ client.imports.wait_for_job(job.id)
301
+ ```
302
+
303
+ Advanced game imports can create or update datasets and schemas in dependency order:
304
+
305
+ ```ruby
306
+ advanced_data = {
307
+ datasets: [
308
+ {
309
+ name: 'sets',
310
+ schema: {
311
+ code: { type: 'STRING', isIdentifier: true },
312
+ name: { type: 'STRING', required: true }
313
+ },
314
+ records: [{ code: 'BASE', name: 'Base Set' }]
315
+ },
316
+ {
317
+ name: 'cards',
318
+ schema: {
319
+ identifier: { type: 'STRING', isIdentifier: true },
320
+ set_id: { type: 'LINK', linkDataset: '$sets', linkFieldKey: 'code' }
321
+ },
322
+ records: [{ identifier: 'BASE-001', set_id: 'BASE' }]
323
+ }
324
+ ]
325
+ }
326
+
327
+ preview = client.imports.preview_game(input: { gameId: game.id, data: advanced_data })
328
+ raise preview.warnings.map(&:message).join(', ') unless preview.can_proceed?
329
+
330
+ game_import = client.imports.run_game(
331
+ input: {
332
+ gameId: game.id,
333
+ data: advanced_data,
334
+ options: { mode: 'CREATE', onConflict: 'UPDATE' }
335
+ }
336
+ )
337
+ client.imports.wait_for_game_job(game_import.id)
338
+ ```
339
+
340
+ Schema introspection is useful before building import mappings or generated forms:
341
+
342
+ ```ruby
343
+ schema = client.datasets.get_schema(game_id: game.id, dataset_key: 'cards')
344
+ identifier = schema.fields.find(&:identifier?)&.key
345
+ puts "Identifier field: #{identifier}"
346
+ ```
347
+
348
+ Bulk delete is explicit. Preview first with `dryRun: true`, then execute by sending the same target set with `dryRun: false`.
349
+
350
+ ```ruby
351
+ preview = client.records.delete_batch(
352
+ input: { datasetId: dataset.id, identifiers: ['CARD-001'], dryRun: true }
353
+ )
354
+ puts preview.results.map { |result| [result.target, result.status] }
355
+
356
+ delete_job = client.records.delete_batch(
357
+ input: { datasetId: dataset.id, identifiers: ['CARD-001'], dryRun: false }
358
+ )
359
+ client.records.wait_for_delete_job(delete_job.id)
360
+ ```
361
+
362
+ Exports produce signed download URLs. Refresh a completed job when the URL is stale but the export file still exists.
363
+
364
+ ```ruby
365
+ export_job = client.exports.run(input: { datasetId: dataset.id, format: 'CSV' })
366
+ completed = client.exports.wait_for_job(export_job.id)
367
+ fresh = client.exports.refresh_url(id: completed.id)
368
+ puts fresh.download_url
369
+ ```
370
+
371
+ See [`examples/publisher_content_pipeline.rb`](examples/publisher_content_pipeline.rb) for a CI/CD-style content pipeline example.
372
+
195
373
  ### Rules and Formats
196
374
 
197
375
  ```ruby
@@ -939,8 +1117,18 @@ bundle exec rspec
939
1117
 
940
1118
  # Run linter
941
1119
  bundle exec rubocop
1120
+
1121
+ # Run full verification
1122
+ bundle exec rake
942
1123
  ```
943
1124
 
1125
+ Release prep checklist:
1126
+
1127
+ - Run `bundle exec rspec`, `bundle exec rubocop`, and `bundle exec rake`.
1128
+ - Review `CHANGELOG.md` and the gem version.
1129
+ - Build/publish only when explicitly approved; do not publish to RubyGems from docs-only prep.
1130
+ - Keep `secret_key` examples server-side only.
1131
+
944
1132
  ## License
945
1133
 
946
1134
  MIT License. See [LICENSE.txt](LICENSE.txt).