Module: ActiveFacts::Persistence

Included in:
Generate::Composition, Generate::DM, Generate::Rails::SchemaRb, Generate::SQL::MYSQL, Generate::SQL::SERVER
Defined in:
lib/activefacts/persistence/columns.rb,
lib/activefacts/mapping/rails.rb,
lib/activefacts/persistence/index.rb,
lib/activefacts/generate/rails/models.rb,
lib/activefacts/persistence/reference.rb,
lib/activefacts/generate/helpers/rails.rb,
lib/activefacts/persistence/foreignkey.rb,
lib/activefacts/generate/transform/surrogate.rb

Overview

:nodoc:

Defined Under Namespace

Classes: Column, ForeignKey, Index, Reference

Class Method Summary collapse

Class Method Details

.rails_name_trunc(name) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/activefacts/mapping/rails.rb', line 8

def self.rails_name_trunc name
  if name.length > 63
	hash = Digest::SHA1.hexdigest name
	name = name[0, 53] + '__' + hash[0, 8]
  end
  name
end

.rails_plural_name(name) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/activefacts/mapping/rails.rb', line 16

def self.rails_plural_name name
  # Crunch spaces and pluralise the first part, all in snake_case
  name.pop if name.is_a?(Array) and name.last == []
  name = name[0]*'_' if name.is_a?(Array) and name.size == 1
  if name.is_a?(Array)
	name = ActiveSupport::Inflector.tableize((name[0]*'_').gsub(/\s+/, '_')) +
	  '_' +
	  ActiveSupport::Inflector.underscore((name[1..-1].flatten*'_').gsub(/\s+/, '_'))
  else
	ActiveSupport::Inflector.tableize(name.gsub(/\s+/, '_'))
  end
end

.rails_singular_name(name) ⇒ Object



29
30
31
32
33
# File 'lib/activefacts/mapping/rails.rb', line 29

def self.rails_singular_name name
  # Crunch spaces and convert to snake_case
  name = name.flatten*'_' if name.is_a?(Array)
  ActiveSupport::Inflector.underscore(name.gsub(/\s+/, '_'))
end