class Mobility::BackendGenerators::Base
Public Class Methods
next_migration_number(dirname)
click to toggle source
# File lib/rails/generators/mobility/backend_generators/base.rb, line 19 def self.next_migration_number(dirname) ::ActiveRecord::Generators::Base.next_migration_number(dirname) end
Public Instance Methods
backend()
click to toggle source
# File lib/rails/generators/mobility/backend_generators/base.rb, line 23 def backend self.class.name.split('::').last.gsub(/Backend$/,'').underscore end
create_migration_file()
click to toggle source
# File lib/rails/generators/mobility/backend_generators/base.rb, line 11 def create_migration_file if behavior == :invoke && self.class.migration_exists?(migration_dir, migration_file) ::Kernel.warn "Migration already exists: #{migration_file}" else migration_template "#{template}.rb", "db/migrate/#{migration_file}.rb" end end
Protected Instance Methods
attributes_with_index()
click to toggle source
# File lib/rails/generators/mobility/backend_generators/base.rb, line 29 def attributes_with_index attributes.select { |a| !a.reference? && a.has_index? } end
translation_index_name(column, *columns)
click to toggle source
# File lib/rails/generators/mobility/backend_generators/base.rb, line 33 def translation_index_name(column, *columns) truncate_index_name("index_#{table_name}_on_#{[column, *columns].join('_and_')}") end
Private Instance Methods
check_data_source!()
click to toggle source
# File lib/rails/generators/mobility/backend_generators/base.rb, line 39 def check_data_source! unless data_source_exists? raise NoTableDefined, "The table #{table_name} does not exist. Create it first before generating translated columns." end end
data_source_exists?()
click to toggle source
# File lib/rails/generators/mobility/backend_generators/base.rb, line 45 def data_source_exists? connection.data_source_exists?(table_name) end
migration_dir()
click to toggle source
# File lib/rails/generators/mobility/backend_generators/base.rb, line 63 def migration_dir File.expand_path("db/migrate") end
migration_file()
click to toggle source
# File lib/rails/generators/mobility/backend_generators/base.rb, line 67 def migration_file "create_#{file_name}_#{attributes.map(&:name).join('_and_')}_translations_for_mobility_#{backend}_backend" end
template()
click to toggle source
# File lib/rails/generators/mobility/backend_generators/base.rb, line 59 def template "#{backend}_translations" end
truncate_index_name(index_name)
click to toggle source
# File lib/rails/generators/mobility/backend_generators/base.rb, line 51 def truncate_index_name(index_name) if index_name.size < connection.index_name_length index_name else "index_#{Digest::SHA1.hexdigest(index_name)}"[0, connection.index_name_length].freeze end end