module TT::Utils

Constants

DOWNCASE

Public Instance Methods

lookup(prefix, base_suffix) click to toggle source
# File lib/t_t/base.rb, line 12
def lookup(prefix, base_suffix)
  prefix ? prefix_lookup(prefix, base_suffix) : simple_lookup(base_suffix)
end
to_parts(str) click to toggle source
# File lib/t_t/base.rb, line 16
def to_parts(str)
  str.to_s.underscore.split(/\.|\//)
end

Private Instance Methods

prefix_lookup(prefix, base_suffix) click to toggle source
# File lib/t_t/base.rb, line 41
def prefix_lookup(prefix, base_suffix)
  lambda do |ns, type|
    parts = to_parts(ns)
    model_path = parts.join('.')

    root = "#{ prefix }.#{ type }.#{ model_path }"
    defaults = [:"#{ type }.#{ model_path }"]

    if parts.length > 1
      pure_model = parts.last
      defaults << :"#{ prefix }.#{ type }.#{ pure_model }"
      defaults << :"#{ type }.#{ pure_model }"
    end

    if base_suffix
      defaults << :"#{ prefix }.#{ type }.#{ base_suffix }"
      defaults << :"#{ type }.#{ base_suffix }"
    else
      defaults << :"#{ prefix }.#{ type }"
      defaults << type
    end

    [root, defaults]
  end
end
simple_lookup(base_suffix) click to toggle source
# File lib/t_t/base.rb, line 22
def simple_lookup(base_suffix)
  lambda do |ns, type|
    parts = to_parts(ns)
    model_path = parts.join('.')

    root = "#{ type }.#{ model_path }"

    defaults = []
    defaults << :"#{ type }.#{ parts.last }" if parts.length > 1
    if base_suffix
      defaults << :"#{ type }.#{ base_suffix }"
    else
      defaults << type
    end

    [root, defaults]
  end
end