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 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