@@ -25,7 +25,7 @@ pro: true
25
25
Encoders can be created with ` Encoder.define { ... } ` :
26
26
27
27
``` ruby
28
- MyEncoder = GraphQL ::Pro ::Encoder .define do
28
+ class MyEncoder < GraphQL ::Pro ::Encoder
29
29
key(" f411f30..." )
30
30
# optional:
31
31
tag(" 81ce51c307" )
40
40
Encrypt cursors by attaching an encrypted encoder to ` Schema#cursor_encoder ` :
41
41
42
42
``` ruby
43
- MySchema = GraphQL ::Schema .define do
43
+ class MySchema GraphQL ::Schema
44
44
cursor_encoder(MyCursorEncoder )
45
45
end
46
46
```
@@ -55,17 +55,17 @@ If you implement your own connections, you can access the encoder's encryption m
55
55
Encrypt IDs by using encoders in ` Schema#id_from_object ` and ` Schema#object_from_id ` :
56
56
57
57
``` ruby
58
- MySchema = GraphQL ::Schema .define do
59
- id_from_object -> (object, type, ctx) {
58
+ class MySchema < GraphQL ::Schema
59
+ def id_from_object (object , type , ctx )
60
60
id_data = " #{ object.class .name } /#{ object.id } "
61
61
MyIDEncoder .encode(id_data)
62
- }
63
-
64
- object_from_id -> (id, ctx) {
62
+ end
63
+
64
+ def object_from_id (id , ctx )
65
65
id_data = MyIDEncoder .decode(id)
66
66
class_name, id = id_data.split(" /" )
67
- class_name.constantize.find(id)
68
- }
67
+ class_name.constantize.find(id)
68
+ end
69
69
end
70
70
```
71
71
@@ -77,9 +77,17 @@ You can combine several encoders into a single chain of versioned encoders. Pass
77
77
78
78
``` ruby
79
79
# Define some encoders ...
80
- NewSecureEncoder = GraphQL ::Pro ::Encoder .define { ... }
81
- OldSecureEncoder = GraphQL ::Pro ::Encoder .define { ... }
82
- LegacyInsecureEncoder = GraphQL ::Pro ::Encoder .define { ... }
80
+ class NewSecureEncoder < GraphQL ::Pro ::Encoder
81
+ # ...
82
+ end
83
+
84
+ class OldSecureEncoder < GraphQL ::Pro ::Encoder
85
+ # ...
86
+ end
87
+
88
+ class LegacyInsecureEncoder < GraphQL ::Pro ::Encoder
89
+ # ...
90
+ end
83
91
84
92
# Then order them by priority:
85
93
VersionedEncoder = GraphQL ::Pro ::Encoder .versioned(
127
135
Then attach it to your encoder:
128
136
129
137
``` ruby
130
- MyURLSafeEncoder = GraphQL ::Pro ::Encoder .define do
138
+ class MyURLSafeEncoder < GraphQL ::Pro ::Encoder
131
139
encoder URLSafeEncoder
132
140
end
133
141
```
0 commit comments