Class: Prick::Migration

Inherits:
Object
  • Object
show all
Defined in:
lib/prick/migration.rb

Direct Known Subclasses

FeatureMigration, ReleaseMigration

Constant Summary collapse

KEEP_FILE =
".keep"

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path, template_dir) ⇒ Migration

Returns a new instance of Migration.



16
17
18
19
# File 'lib/prick/migration.rb', line 16

def initialize(path, template_dir)
  @path = path
  @template_dir = template_dir
end

Instance Attribute Details

#pathObject (readonly)

Returns the value of attribute path.



8
9
10
# File 'lib/prick/migration.rb', line 8

def path
  @path
end

Class Method Details

.feature?(path) ⇒ Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/prick/migration.rb', line 47

def self.feature?(path)
  Version.new(path.delete_prefix("#{FEATURE_DIR}/").sub("/", "_")).feature?
end

.files(path) ⇒ Object

Raises:



51
# File 'lib/prick/migration.rb', line 51

def self.files(path) raise AbstractMethod end

.path(version) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/prick/migration.rb', line 35

def self.path(version)
  if version.feature?
    File.join(FEATURE_DIR, version.truncate(:feature).to_s, version.feature)
  else
    File.join(FEATURE_DIR, version)
  end
end

.release_files(path) ⇒ Object



52
# File 'lib/prick/migration.rb', line 52

def self.release_files(path) files(path) end

.version(path) ⇒ Object



43
44
45
# File 'lib/prick/migration.rb', line 43

def self.version(path)
  Version.new(path.delete_prefix("#{FEATURE_DIR}/").sub("/", "_"))
end

Instance Method Details

#<=>(other) ⇒ Object



33
# File 'lib/prick/migration.rb', line 33

def <=>(other) path <=> other.path end

#createObject



22
# File 'lib/prick/migration.rb', line 22

def create() FileUtils.touch_p(keep_file); Git.add(keep_file) end

#destroyObject



23
# File 'lib/prick/migration.rb', line 23

def destroy() Git.rm_rf(path) end

#dump(&block) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
# File 'lib/prick/migration.rb', line 54

def dump(&block)
#     puts self.class
#     indent {
#       puts "path : #{path}"
#       puts "files: #{files.inspect}"
#       puts "release_files: #{release_files.inspect}"
#       puts "feature_versions: #{feature_versions.map(&:to_s).inspect}"
#       puts "keep_file: #{keep_file}"
#       yield if block_given?
#     }
end

#exist?Boolean

Returns:

  • (Boolean)


21
# File 'lib/prick/migration.rb', line 21

def exist?() File.exist?(keep_file) end

#feature_versionsObject

Return versions of the features in this migration

Raises:



14
# File 'lib/prick/migration.rb', line 14

def feature_versions() raise AbstractMethod end

#filesObject

Raises:



10
# File 'lib/prick/migration.rb', line 10

def files() raise AbstractMethod end

#include_feature(feature) ⇒ Object

Raises:



28
# File 'lib/prick/migration.rb', line 28

def include_feature(feature) raise AbstractMethod end

#migrateObject

Raises:



30
# File 'lib/prick/migration.rb', line 30

def migrate() raise AbstractMethod end

#prepareObject



26
# File 'lib/prick/migration.rb', line 26

def prepare() files.each { |f| FileUtils.cp(template_file(f), path) }; Git.add(path) end

#present?Boolean

Returns:

  • (Boolean)


25
# File 'lib/prick/migration.rb', line 25

def present?() exist? && files.all? { |f| File.exist?(f) } end

#release_filesObject



11
# File 'lib/prick/migration.rb', line 11

def release_files() files end

#to_sObject



32
# File 'lib/prick/migration.rb', line 32

def to_s() path end