Sha256: 1fb6fcb49b03260af5dd817bfc7463882117625971fa717eaeeb79fa24c4693f

Contents?: true

Size: 1.36 KB

Versions: 3

Compression:

Stored size: 1.36 KB

Contents

module Interpret
  module InterpretHelpers

    # Generates the html tree from the given keys
    def show_interpret_tree(tree, origin_keys)
      tree = tree.first[1]
      unless origin_keys.nil?
        origin_keys.split(".").each do |key|
          tree = tree[key]
        end
      end
      build_tree(tree, origin_keys)
    end

    def build_tree(hash, origin_keys = "", prev_key = "")
      out = "<ul id='navigation'>"
      if origin_keys.present? && prev_key.blank?
        parent_key = origin_keys.split(".")[0..-2].join(".")
        if parent_key.blank?
          out << "<li>#{link_to "..", interpret_root_path}</li>"
        else
          out << "<li>#{link_to "..", interpret_root_path(:key => parent_key)}</li>"
        end
      end
      hash.keys.each do |key|
        out << "<li>"
        out << "#{link_to key, interpret_root_path(:key => "#{origin_keys.blank? ? "" : "#{origin_keys}."}#{prev_key}#{key}")}"
        out << "</li>"
      end
      out << "</ul>"
      out.html_safe
    end

    def current_controller?(opts)
      hash = Rails.application.routes.recognize_path(url_for(opts))
      params[:controller] == hash[:controller]
    end

    def interpret_section_link_to(name, options = {}, html_options = {})
      html_options.merge!({ :class => 'current' }) if current_controller?(options)
      link_to name, options, html_options
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
interpret-0.1.3 lib/interpret/helpers.rb
interpret-0.1.2 lib/interpret/helpers.rb
interpret-0.1.1 lib/interpret/helpers.rb