Module: Extort
- Includes:
- Rake::DSL
- Defined in:
- lib/extort.rb,
lib/extort/version.rb
Overview
Extort
Constant Summary collapse
- NO_VERSION_FOUND =
Constants
"no version found"
- DB_MIGRATIONS_DIR =
"db"
- VERSION =
"0.2.3"
Class Method Summary collapse
-
.add_migration(name) ⇒ String
Add a new migration file.
-
.init ⇒ Boolean
Setup new extort env.
-
.install_tasks ⇒ Object
Install rake tasks (from other gems or apps).
-
.migrate ⇒ Void
Execute pending migrations.
-
.pwd ⇒ String
Get current working directiry.
-
.rollback(step) ⇒ Void
Rollback migration.
-
.schema_table? ⇒ Boolean
Check for schema table.
-
.schema_version ⇒ String
Get schema version.
-
.schema_versions ⇒ Array
Print all versions.
-
.spec_directory ⇒ String
Return directory of gem.
-
.version_from_field(record) ⇒ String
Version from database column.
Class Method Details
.add_migration(name) ⇒ String
Add a new migration file
88 89 90 91 |
# File 'lib/extort.rb', line 88 def add_migration name argument_error(name) FileUtils.touch filename(name) end |
.init ⇒ Boolean
Setup new extort env.
97 98 99 100 101 102 103 104 |
# File 'lib/extort.rb', line 97 def init if Dir.exists?(DB_MIGRATIONS_DIR) "#{DB_MIGRATIONS_DIR} directory already exists" else FileUtils.mkdir_p(DB_MIGRATIONS_DIR) "#{DB_MIGRATIONS_DIR} directory created" end end |
.install_tasks ⇒ Object
Install rake tasks (from other gems or apps)
121 122 123 124 125 |
# File 'lib/extort.rb', line 121 def install_tasks # import tasks import "#{spec_directory}/lib/tasks/database.rake" end |
.migrate ⇒ Void
Execute pending migrations
72 73 74 |
# File 'lib/extort.rb', line 72 def migrate Sequel::Migrator.run $DB, File.join(pwd, DB_MIGRATIONS_DIR) end |
.pwd ⇒ String
Get current working directiry
27 28 29 |
# File 'lib/extort.rb', line 27 def pwd Dir.pwd end |
.rollback(step) ⇒ Void
Rollback migration
79 80 81 82 83 |
# File 'lib/extort.rb', line 79 def rollback step argument_error(step) Sequel::Migrator.run $DB, File.join(pwd, DB_MIGRATIONS_DIR), \ target: step.to_i end |
.schema_table? ⇒ Boolean
Check for schema table
34 35 36 |
# File 'lib/extort.rb', line 34 def schema_table? $DB.tables.include?(:schema_migrations) end |
.schema_version ⇒ String
Get schema version
41 42 43 44 45 46 47 48 |
# File 'lib/extort.rb', line 41 def schema_version if schema_table? version_from_field \ $DB[:schema_migrations].order(:filename).last else NO_VERSION_FOUND end end |
.schema_versions ⇒ Array
Print all versions
53 54 55 56 57 |
# File 'lib/extort.rb', line 53 def schema_versions $DB[:schema_migrations].map do |record| version_from_field(record) end end |
.spec_directory ⇒ String
Return directory of gem.
110 111 112 113 114 115 116 |
# File 'lib/extort.rb', line 110 def spec_directory @spec_directory ||= \ Gem::Specification .find_by_name(self.to_s.downcase) .gem_dir end |
.version_from_field(record) ⇒ String
Version from database column
63 64 65 66 67 |
# File 'lib/extort.rb', line 63 def version_from_field record unless record.nil? record[:filename].split("_").first end end |