fancybox2 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7d6fec49dcd588ebb60bc82f555240121134b3fcfc40747b63513795f50adf96
4
- data.tar.gz: 5d683438d83ad32f12db66ab811da55864e3c0f801f6fb0eb7620d5bb35432a8
3
+ metadata.gz: 6821e581df48497ebc9870338ab258f9f4c8f4f4301067edef7936f2957452b0
4
+ data.tar.gz: 5949d3ee2689bf3dd8c8e4e6256061a8d5c20cafb017cde96856df04d0df217d
5
5
  SHA512:
6
- metadata.gz: 22dcbb5bc7e731cc338ade1afe6023b706230526abeafef56655fe863f0e3314a622c8bab91eb3a2b788219026acb8151651be6deed4f4a616dfde5780338def
7
- data.tar.gz: 49e4e79a91a552d4cb130c7c8cce4e037d6cf7c3314d38abaffc75167d3c1fac83fb0384ae850860df11c87de46e5caf278a0442df1e9f2e939b4cbfc1e71f19
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 an integer number e.g: 02_do_something.rb'
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
- def run(from: nil, to: nil)
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 from
33
- to = self.class.extract_and_validate_version_from to
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
- break if (from == to)
58
- # Break if we already arrived to "from" migration
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Fancybox2
4
- VERSION = '0.0.8'
4
+ VERSION = '0.0.9'
5
5
  end
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.8
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-05 00:00:00.000000000 Z
11
+ date: 2021-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: zeitwerk