Module: ActiveFacts::RMap

Included in:
Generators::Composition, Generators::Rails::SchemaRb, Generators::SQL::MYSQL, Generators::SQL::SERVER
Defined in:
lib/activefacts/generators/rails/models.rb,
lib/activefacts/generators/traits/rails.rb,
lib/activefacts/generators/helpers/rails.rb,
lib/activefacts/generators/transform/surrogate.rb

Defined Under Namespace

Classes: Column, ForeignKey, Index

Class Method Summary collapse

Class Method Details

.rails_name_trunc(name) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/activefacts/generators/traits/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/generators/traits/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/generators/traits/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