fancybox2 0.0.8 → 0.0.9
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/lib/fancybox2/migrations/runner.rb +27 -11
- data/lib/fancybox2/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6821e581df48497ebc9870338ab258f9f4c8f4f4301067edef7936f2957452b0
|
4
|
+
data.tar.gz: 5949d3ee2689bf3dd8c8e4e6256061a8d5c20cafb017cde96856df04d0df217d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c98c23a20e13629af2723b789d044e03180e8e07a407f3c842ccd3d314e9b07d8c937a16a5f868c6c49435f999b7bed7956a464f1711092a0f738ba8ab6125d4
|
7
|
+
data.tar.gz: 14425e0627a2a78f830c7d0dbbd0465d6e009bc308024fa4779ed5c1ea928353574e12c839bb01f9b41e1b8b84eb8e36dddaf25e608f30cac9d63c075af34561
|
@@ -10,32 +10,46 @@ module Fancybox2
|
|
10
10
|
def extract_and_validate_version_from(migration_name)
|
11
11
|
version = migration_name.to_s.scan(VERSION_REGEXP).flatten.first
|
12
12
|
unless version
|
13
|
-
raise ArgumentError, 'migration name must start with
|
13
|
+
raise ArgumentError, 'migration name must start with a positive integer number e.g: 1_do_something.rb'
|
14
14
|
end
|
15
15
|
|
16
16
|
version.to_i
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
attr_reader :files_path, :current_version, :migrations
|
20
|
+
attr_reader :files_path, :current_version, :migrations, :logger
|
21
21
|
|
22
|
-
def initialize(files_path)
|
22
|
+
def initialize(files_path, logger: nil)
|
23
23
|
@files_path = files_path
|
24
|
+
@logger = logger || ::Logger.new(STDOUT)
|
24
25
|
|
25
26
|
load_migrations
|
26
27
|
end
|
27
28
|
|
28
29
|
# @param from a valid migration name or version
|
29
30
|
# @param to a valid migration name or version
|
30
|
-
|
31
|
+
# @return last run migration
|
32
|
+
def run(from: nil, to: nil, last_migrated: nil)
|
33
|
+
if from && last_migrated
|
34
|
+
logger.warn "#{self.class}#run - Both 'from' and 'last_migrated' params given. Only 'last_migrated' considered"
|
35
|
+
end
|
31
36
|
# Extract and validate versions
|
32
|
-
from = self.class.extract_and_validate_version_from
|
33
|
-
|
37
|
+
from = self.class.extract_and_validate_version_from(from || last_migrated || 0)
|
38
|
+
# This works independently from the direction if migrations' folder contains only migrations of last installed version
|
39
|
+
to = self.class.extract_and_validate_version_from (to || @migrations.last.version)
|
40
|
+
puts "from: #{from}, to: #{to}, last_migrated: #{last_migrated}"
|
34
41
|
# Select migrations to run
|
35
42
|
to_run, direction = migrations_to_run from, to
|
43
|
+
# If last_migrated has been specified and direction is :up, remove first migration
|
44
|
+
if last_migrated && direction == :up
|
45
|
+
to_run.shift
|
46
|
+
end
|
36
47
|
to_run.each do |migration|
|
48
|
+
logger.info "Running migration #{migration.name}"
|
37
49
|
migration.send direction
|
38
50
|
end
|
51
|
+
|
52
|
+
to_run.last
|
39
53
|
end
|
40
54
|
|
41
55
|
def load_migrations
|
@@ -54,14 +68,16 @@ module Fancybox2
|
|
54
68
|
selected = []
|
55
69
|
direction = from <= to ? :up : :down
|
56
70
|
@migrations.each do |m|
|
57
|
-
|
58
|
-
#
|
71
|
+
puts m.version
|
72
|
+
# Edge case, no migrations to run
|
73
|
+
break if from == to
|
74
|
+
# downgrading - Break if we already arrived to "from" migration (e.g from=4, to=2 => 1, >2<, 3, *4*, 5)
|
59
75
|
break if (from > to) && (m.version > from)
|
60
|
-
# Break if we already arrived to "to" migration
|
76
|
+
# upgrading - Break if we already arrived to "to" migration (e.g from=2, to=4 => 1, *2*, 3, >4<, 5)
|
61
77
|
break if (from < to) && (m.version > to)
|
62
|
-
# Skip until we arrive to "to" migration
|
78
|
+
# downgrading - Skip until we arrive to "to" migration (e.g from=4, to=2 => 1, >2<, 3, *4*, 5)
|
63
79
|
next if (from > to) && (m.version < to)
|
64
|
-
# Skip until we arrive to "from" migration
|
80
|
+
# upgrading - Skip until we arrive to "from" migration (e.g from=2, to=4 => 1, *2*, 3, >4<, 5)
|
65
81
|
next if (from < to) && (m.version < from)
|
66
82
|
|
67
83
|
if m.version <= from
|
data/lib/fancybox2/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fancybox2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alessandro Verlato
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-02-
|
11
|
+
date: 2021-02-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: zeitwerk
|