umbrellio-sequel-plugins 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +40 -13
- data/bin/console +5 -3
- data/lib/sequel/extensions/methods_in_migrations.rb +17 -0
- data/umbrellio-sequel-plugins.gemspec +2 -1
- data/{database.rb → utils/database.rb} +0 -0
- metadata +19 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf3b1166dd9d29321aadcca70c8fc6b9d0b5fc2ffb470fe07d7878a8dbd71295
|
4
|
+
data.tar.gz: 4a5fa36a6f4331a4d8c65a81a921541aa37e47b7bfa4739a74311d6b920924ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8baa855e0de9fe3efe2aee03950da764959a7ef2458981802b9386548450656aabfd6b3363892884914295e62ab1fca6c745a07b16eba9d3c740f277ccb88a19
|
7
|
+
data.tar.gz: 7630f90fe06cdfd4f5bc53e30694fc808a9e004c774c5d58f5a6b97c5d92c45c4a88a17c76f0de1e51e1a61307bebae94ce741f4f65e76dfefecf05f898c1eb6
|
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
@@ -17,22 +17,23 @@ And then execute:
|
|
17
17
|
|
18
18
|
# Extensions
|
19
19
|
|
20
|
-
- CurrencyRates
|
21
|
-
- PGTools
|
22
|
-
- Slave
|
23
|
-
- Synchronize
|
20
|
+
- `CurrencyRates`
|
21
|
+
- `PGTools`
|
22
|
+
- `Slave`
|
23
|
+
- `Synchronize`
|
24
|
+
- `methods_in_migrations`
|
24
25
|
|
25
26
|
# Plugins
|
26
27
|
|
27
|
-
- Duplicate
|
28
|
-
- GetColumnValue
|
29
|
-
- StoreAccessors
|
30
|
-
- Synchronize
|
31
|
-
- Upsert
|
32
|
-
- WithLock
|
28
|
+
- `Duplicate`
|
29
|
+
- `GetColumnValue`
|
30
|
+
- `StoreAccessors`
|
31
|
+
- `Synchronize`
|
32
|
+
- `Upsert`
|
33
|
+
- `WithLock`
|
33
34
|
|
34
35
|
# Tools
|
35
|
-
- TimestampMigratorUndoExtension
|
36
|
+
- `TimestampMigratorUndoExtension`
|
36
37
|
|
37
38
|
## CurrencyRates
|
38
39
|
|
@@ -121,6 +122,32 @@ DB.synchronize_with([:ruby, :forever]) { p "Hey, I'm in transaction!"; sleep 5 }
|
|
121
122
|
# => COMMIT
|
122
123
|
```
|
123
124
|
|
125
|
+
## Methods in Migrations
|
126
|
+
|
127
|
+
Enable: `Sequel.extension(:methods_in_migrations)`
|
128
|
+
|
129
|
+
Support for method definitions and invocations inside `Sequel.migration`.
|
130
|
+
|
131
|
+
Example:
|
132
|
+
|
133
|
+
```ruby
|
134
|
+
Sequel.extension(:methods_in_migrations)
|
135
|
+
|
136
|
+
Sequel.migration do
|
137
|
+
# define
|
138
|
+
def get_data
|
139
|
+
# ...some code...
|
140
|
+
end
|
141
|
+
|
142
|
+
# use
|
143
|
+
up { get_data }
|
144
|
+
down { get_data }
|
145
|
+
|
146
|
+
# without extension:
|
147
|
+
# => NameError: undefined local variable or method `get_data' for #<Sequel::Postgres::Database>
|
148
|
+
end
|
149
|
+
```
|
150
|
+
|
124
151
|
## Duplicate
|
125
152
|
|
126
153
|
Enable: `Sequel::Model.plugin :duplicate`
|
@@ -180,14 +207,14 @@ user.data # => {"first_name": "John"}
|
|
180
207
|
|
181
208
|
Same as `DB#synchronize_with`
|
182
209
|
|
183
|
-
Enable:
|
210
|
+
Enable:
|
184
211
|
|
185
212
|
```ruby
|
186
213
|
DB.extension :synchronize
|
187
214
|
Sequel::Model.plugin :synchronize
|
188
215
|
```
|
189
216
|
|
190
|
-
Example:
|
217
|
+
Example:
|
191
218
|
|
192
219
|
```ruby
|
193
220
|
user = User.first
|
data/bin/console
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
2
3
|
|
3
4
|
require "bundler/setup"
|
4
5
|
require "sequel"
|
5
6
|
require "umbrellio-sequel-plugins"
|
6
|
-
require "
|
7
|
-
|
7
|
+
require "pry"
|
8
|
+
|
9
|
+
require_relative "../utils/database"
|
8
10
|
|
9
11
|
Dir["#{__dir__}/lib/**/*.rb"].each { |f| require f }
|
10
12
|
|
11
|
-
|
13
|
+
Pry.start
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "symbiont"
|
4
|
+
|
5
|
+
Sequel::SimpleMigration.prepend(Module.new do
|
6
|
+
def apply(db, direction)
|
7
|
+
# :nocov:
|
8
|
+
unless [:up, :down].include?(direction) # NOTE: original code
|
9
|
+
raise(ArgumentError, "Invalid migration direction specified (#{direction.inspect})")
|
10
|
+
end
|
11
|
+
# :nocov:
|
12
|
+
|
13
|
+
# NOTE: our extension
|
14
|
+
prok = public_send(direction)
|
15
|
+
Symbiont::Executor.evaluate_private(db, &prok) if prok
|
16
|
+
end
|
17
|
+
end)
|
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "umbrellio-sequel-plugins"
|
8
|
-
spec.version = "0.
|
8
|
+
spec.version = "0.2.0"
|
9
9
|
spec.authors = ["nulldef"]
|
10
10
|
spec.email = ["nulldefiner@gmail.com"]
|
11
11
|
spec.required_ruby_version = ">= 2.4"
|
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_dependency "sequel"
|
22
|
+
spec.add_runtime_dependency "symbiont-ruby", ">= 0.6"
|
22
23
|
|
23
24
|
spec.add_development_dependency "bundler"
|
24
25
|
spec.add_development_dependency "coveralls"
|
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: umbrellio-sequel-plugins
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- nulldef
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-03-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sequel
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: symbiont-ruby
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.6'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.6'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -133,14 +147,15 @@ files:
|
|
133
147
|
- ".rspec"
|
134
148
|
- ".rubocop.yml"
|
135
149
|
- ".travis.yml"
|
150
|
+
- CHANGELOG.md
|
136
151
|
- Gemfile
|
137
152
|
- LICENSE
|
138
153
|
- README.md
|
139
154
|
- Rakefile
|
140
155
|
- bin/console
|
141
156
|
- bin/setup
|
142
|
-
- database.rb
|
143
157
|
- lib/sequel/extensions/currency_rates.rb
|
158
|
+
- lib/sequel/extensions/methods_in_migrations.rb
|
144
159
|
- lib/sequel/extensions/pg_tools.rb
|
145
160
|
- lib/sequel/extensions/slave.rb
|
146
161
|
- lib/sequel/extensions/synchronize.rb
|
@@ -156,6 +171,7 @@ files:
|
|
156
171
|
- lib/umbrellio-sequel-plugins.rb
|
157
172
|
- lib/umbrellio_sequel_plugins.rb
|
158
173
|
- umbrellio-sequel-plugins.gemspec
|
174
|
+
- utils/database.rb
|
159
175
|
homepage: https://github.com/umbrellio/umbrellio-sequel-plugins
|
160
176
|
licenses:
|
161
177
|
- MIT
|