Sha256: c2cd8b6b596726f5493b22913398f02dd4dd00750013327a1de9402ee3b14056

Contents?: true

Size: 1018 Bytes

Versions: 1

Compression:

Stored size: 1018 Bytes

Contents

module Tableficate
  module Utils
    def self.template_path(template, partial, theme = '')
      file = File.join(['tableficate', theme, partial].delete_if(&:blank?))

      file = File.join(['tableficate', partial]) if not theme.blank? and not template.lookup_context.exists?(file, [], true)

      file
    end

    def self.find_column_type(scope, name)
      name = name.to_s
      column = scope.columns.detect{|column| column.name == name} ||
      (
        (scope.respond_to?(:joins_values) ? scope.joins_values : []) +
        (scope.respond_to?(:includes_values) ? scope.includes_values : [])
      ).uniq.map{|join|
        # convert string joins to table names
        if join.is_a?(String)
          join.scan(/\G(?:(?:,|\bjoin\s)\s*(\w+))/i)
        else
          join
        end
      }.flatten.map{|table_name|
        ActiveRecord::Base::connection_pool.columns[table_name.to_s.tableize]
      }.flatten.detect{|column|
        column.name == name
      }
      column.try(:type)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tableficate-0.3.2 lib/tableficate/utils.rb