Sha256: 24d8973093ffafb57c14ffa960aea8d5402242c37dc63a94d15a0290f69297b3

Contents?: true

Size: 1.33 KB

Versions: 13

Compression:

Stored size: 1.33 KB

Contents

module ActiveFacts
  module Generate
    module Rails
      module Helpers
	def 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

	def 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

	def rails_class_name name
	  name = name*'_' if name.is_a?(Array)
	  ActiveSupport::Inflector.camelize(name.gsub(/\s+/, '_'))
	end

      end
    end
  end

  module Metamodel
    class ObjectType
    end
  end

  module Persistence
    class ForeignKey
      include Generate::Rails::Helpers

      def rails_from_association_name
	rails_singular_name(to_name.join('_'))
      end

      def rails_to_association
	jump = jump_reference
	if jump.is_one_to_one
	  [ "has_one", rails_singular_name(from_name)]
	else
	  [ "has_many", rails_plural_name(from_name)]
	end
      end

    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
activefacts-1.6.0 lib/activefacts/generate/helpers/rails.rb
activefacts-1.5.3 lib/activefacts/generate/helpers/rails.rb
activefacts-1.5.2 lib/activefacts/generate/helpers/rails.rb
activefacts-1.5.1 lib/activefacts/generate/helpers/rails.rb
activefacts-1.5.0 lib/activefacts/generate/helpers/rails.rb
activefacts-1.3.0 lib/activefacts/generate/helpers/rails.rb
activefacts-1.2.1 lib/activefacts/generate/helpers/rails.rb
activefacts-1.2.0 lib/activefacts/generate/helpers/rails.rb
activefacts-1.1.0 lib/activefacts/generate/helpers/rails.rb
activefacts-1.0.2 lib/activefacts/generate/helpers/rails.rb
activefacts-1.0.1 lib/activefacts/generate/helpers/rails.rb
activefacts-1.0.0 lib/activefacts/generate/helpers/rails.rb
activefacts-0.8.18 lib/activefacts/generate/helpers/rails.rb