Class: Caboose::Version
- Inherits:
-
Object
- Object
- Caboose::Version
- Includes:
- Comparable
- Defined in:
- lib/caboose/migration_version.rb
Instance Attribute Summary collapse
-
#migrations ⇒ Object
Returns the value of attribute migrations.
-
#str ⇒ Object
Returns the value of attribute str.
Class Method Summary collapse
Instance Method Summary collapse
- #<=>(other) ⇒ Object
- #down(c) ⇒ Object
-
#initialize(str, migration_range) ⇒ Version
constructor
A new instance of Version.
- #to_s ⇒ Object
- #up(c) ⇒ Object
Constructor Details
#initialize(str, migration_range) ⇒ Version
Returns a new instance of Version.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/caboose/migration_version.rb', line 7 def initialize(str, migration_range) @str = str @migrations = [] if !migration_range.nil? directory = File.join(File.('../../..', __FILE__), 'db/migrate') files = Dir.entries(directory).select{ |f| !File.directory?(f) && /[0-9]{3}_[^\n\r\.]+\.rb$/ =~ f && migration_range.include?(f[0..2].to_i) } files.sort.each do |f| require File.join(directory, f) /[0-9]{3}_(?<clazz_name>[^\n\r\.]+)\.rb$/ =~ f @migrations += [clazz_name.classify.constantize.new] end end end |
Instance Attribute Details
#migrations ⇒ Object
Returns the value of attribute migrations.
5 6 7 |
# File 'lib/caboose/migration_version.rb', line 5 def migrations @migrations end |
#str ⇒ Object
Returns the value of attribute str.
5 6 7 |
# File 'lib/caboose/migration_version.rb', line 5 def str @str end |
Class Method Details
.compare_version_strings(a, b) ⇒ Object
28 29 30 31 32 |
# File 'lib/caboose/migration_version.rb', line 28 def self.compare_version_strings(a, b) a = a.split('.').map{|s| s.to_i} b = b.split('.').map{|s| s.to_i} return a <=> b end |
Instance Method Details
#<=>(other) ⇒ Object
34 35 36 |
# File 'lib/caboose/migration_version.rb', line 34 def <=>(other) return Version.compare_version_strings(@str, other.to_s) end |
#down(c) ⇒ Object
42 43 44 |
# File 'lib/caboose/migration_version.rb', line 42 def down(c) @migrations.reverse_each{|m| m.down(c)} end |
#to_s ⇒ Object
24 25 26 |
# File 'lib/caboose/migration_version.rb', line 24 def to_s return @str end |
#up(c) ⇒ Object
38 39 40 |
# File 'lib/caboose/migration_version.rb', line 38 def up(c) @migrations.each{|m| m.up(c)} end |