request_migrations 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +33 -8
- data/lib/request_migrations/gem.rb +1 -1
- data/lib/request_migrations.rb +4 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '091e4436fcd439967859301cc299fccaf6081f5da326ed79813e7cbce3f4d86c'
|
4
|
+
data.tar.gz: 4be2f76ade4958a48794ee62e6184c964f747f6c59a44a12ef20dcbbcc8c32a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e2a22c88034bd0a67f34849909d85686267a4fd2a62dfbcfcb963766f678397d141a628608b63e0549581fbd9e02184a938619a269c81e44bd1a094d2febe702
|
7
|
+
data.tar.gz: d92878fd3a359c744c4cc9354325a5fea7d89ca81e9c3aa2718bd033a8b7ed8f7840f8bce0ada3f170dfb8f3a1ea9f1362cff8b08effafee53ffc0b5b59911c4
|
data/README.md
CHANGED
@@ -17,6 +17,24 @@ Sponsored by:
|
|
17
17
|
|
18
18
|
_A software licensing and distribution API built for developers._
|
19
19
|
|
20
|
+
Links:
|
21
|
+
|
22
|
+
- [Installing request_migrations](#installation)
|
23
|
+
- [Supported Ruby versions](#supported-rubies)
|
24
|
+
- [RubyDoc](#documentation)
|
25
|
+
- [Usage](#usage)
|
26
|
+
- [Response migrations](#response-migrations)
|
27
|
+
- [Request migrations](#request-migrations)
|
28
|
+
- [Data migrations](#data-migrations)
|
29
|
+
- [Routing constraints](#routing-constraints)
|
30
|
+
- [Configuration](#configuration)
|
31
|
+
- [Version formats](#version-formats)
|
32
|
+
- [Testing](#testing)
|
33
|
+
- [Tips and tricks](#tips-and-tricks)
|
34
|
+
- [Credits](#credits)
|
35
|
+
- [Contributing](#contributing)
|
36
|
+
- [License](#license)
|
37
|
+
|
20
38
|
## Installation
|
21
39
|
|
22
40
|
Add this line to your application's `Gemfile`:
|
@@ -39,8 +57,9 @@ $ gem install request_migrations
|
|
39
57
|
|
40
58
|
## Supported Rubies
|
41
59
|
|
42
|
-
|
43
|
-
version. Ruby 3 provides a lot of great features, like better pattern matching
|
60
|
+
**`request_migrations` supports Ruby 3.1 and above.** We encourage you to upgrade if you're on an older
|
61
|
+
version. Ruby 3 provides a lot of great features, like better pattern matching and a new shorthand
|
62
|
+
hash syntax.
|
44
63
|
|
45
64
|
## Documentation
|
46
65
|
|
@@ -124,8 +143,8 @@ end
|
|
124
143
|
|
125
144
|
As you can see, with pattern matching, it makes creating migrations for certain
|
126
145
|
resources simple. Here, we've defined a migration that only runs for the `users#show`
|
127
|
-
|
128
|
-
|
146
|
+
resource, and only when the response is successful. In addition, the data is
|
147
|
+
only migrated when the response body contains a user.
|
129
148
|
|
130
149
|
Next, we'll need to configure `request_migrations` via an initializer under
|
131
150
|
`initializers/request_migrations.rb`:
|
@@ -292,10 +311,11 @@ end
|
|
292
311
|
|
293
312
|
This will apply the block defined in `migrate` onto our data. With that,
|
294
313
|
we've successfully applied a migration to both our API responses, as well
|
295
|
-
as to the webhook events we send. In this case, if our
|
296
|
-
our
|
314
|
+
as to the webhook events we send. In this case, if our event data matches
|
315
|
+
our expected data shape, e.g. `type: 'user'`, then the migration will
|
316
|
+
be applied.
|
297
317
|
|
298
|
-
In addition to data migrations, this allows for easier testing.
|
318
|
+
In addition to data migrations, this allows for easier [testing](#testing).
|
299
319
|
|
300
320
|
### Routing constraints
|
301
321
|
|
@@ -406,9 +426,11 @@ end
|
|
406
426
|
```
|
407
427
|
|
408
428
|
To avoid polluting the global configuration, you can use `RequestMigrations::Testing`
|
409
|
-
within your application's `spec/rails_helper.rb
|
429
|
+
within your application's `spec/rails_helper.rb`, or a similar spec helper:
|
410
430
|
|
411
431
|
```ruby
|
432
|
+
require 'request_migrations/testing'
|
433
|
+
|
412
434
|
Rspec.configure do |config|
|
413
435
|
config.before :each do
|
414
436
|
RequestMigrations::Testing.setup!
|
@@ -420,6 +442,9 @@ Rspec.configure do |config|
|
|
420
442
|
end
|
421
443
|
```
|
422
444
|
|
445
|
+
This will setup a new test configuration, and then restore the previous global configuration
|
446
|
+
after each spec.
|
447
|
+
|
423
448
|
## Tips and tricks
|
424
449
|
|
425
450
|
Over the years, we're learned a thing or two about versioning an API. We'll share tips here.
|
data/lib/request_migrations.rb
CHANGED
@@ -46,13 +46,16 @@ module RequestMigrations
|
|
46
46
|
##
|
47
47
|
# @private
|
48
48
|
def self.config=(cfg)
|
49
|
+
raise ArgumentError, 'invalid config provided' unless
|
50
|
+
cfg.is_a?(Configuration)
|
51
|
+
|
49
52
|
@config = cfg
|
50
53
|
end
|
51
54
|
|
52
55
|
##
|
53
56
|
# @private
|
54
57
|
def self.reset!
|
55
|
-
@config =
|
58
|
+
@config = Configuration.new
|
56
59
|
end
|
57
60
|
|
58
61
|
##
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: request_migrations
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zeke Gabrielse
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-07-
|
11
|
+
date: 2022-07-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -88,7 +88,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
88
88
|
requirements:
|
89
89
|
- - ">="
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version: '3.
|
91
|
+
version: '3.1'
|
92
92
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - ">="
|