class Fx::Definition
@api private
Constants
- FUNCTION
- TRIGGER
Public Class Methods
function(name:, version:)
click to toggle source
# File lib/fx/definition.rb, line 7 def self.function(name:, version:) new(name: name, version: version, type: FUNCTION) end
new(name:, version:, type:)
click to toggle source
# File lib/fx/definition.rb, line 15 def initialize(name:, version:, type:) @name = name @version = version.to_i @type = type end
trigger(name:, version:)
click to toggle source
# File lib/fx/definition.rb, line 11 def self.trigger(name:, version:) new(name: name, version: version, type: TRIGGER) end
Public Instance Methods
full_path()
click to toggle source
# File lib/fx/definition.rb, line 28 def full_path Rails.root.join(path) end
path()
click to toggle source
# File lib/fx/definition.rb, line 32 def path @_path ||= File.join("db", @type.pluralize, filename) end
to_sql()
click to toggle source
# File lib/fx/definition.rb, line 21 def to_sql content = File.read(find_file || full_path) raise "Define #{@type} in #{path} before migrating." if content.empty? content end
version()
click to toggle source
# File lib/fx/definition.rb, line 36 def version @version.to_s.rjust(2, "0") end
Private Instance Methods
filename()
click to toggle source
# File lib/fx/definition.rb, line 42 def filename @_filename ||= "#{@name}_v#{version}.sql" end
find_file()
click to toggle source
# File lib/fx/definition.rb, line 46 def find_file migration_paths.lazy .map { |migration_path| File.expand_path(File.join("..", "..", path), migration_path) } .find { |definition_path| File.exist?(definition_path) } end
migration_paths()
click to toggle source
# File lib/fx/definition.rb, line 52 def migration_paths Rails.application.config.paths["db/migrate"].expanded end