Sha256: 5654575c0c199baf637c56a314523079f544c6dbbef78e262f1936b77571c833

Contents?: true

Size: 1.51 KB

Versions: 4

Compression:

Stored size: 1.51 KB

Contents

module ActiveFacts
  module Generators
    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 RMap
    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

4 entries across 4 versions & 1 rubygems

Version Path
activefacts-generators-1.9.2 lib/activefacts/generators/helpers/rails.rb
activefacts-generators-1.9.1 lib/activefacts/generators/helpers/rails.rb
activefacts-generators-1.9.0 lib/activefacts/generators/helpers/rails.rb
activefacts-generators-1.8.3 lib/activefacts/generators/helpers/rails.rb