Sha256: 8512cae68659cbaccdbb5dc3adc63305da33138b873d4c101458f43c41073c88

Contents?: true

Size: 1.41 KB

Versions: 15

Compression:

Stored size: 1.41 KB

Contents

class Lolita::InfoController < ApplicationController
  @@properties = []
  include Lolita::Controllers::AuthenticationHelpers

  def index
    if Lolita.mappings.any?
      available_mapping = Lolita.mappings.detect{|name,mapping|
        authorization_proxy.can?(:read,mapping.to)
      }
      available_mapping &&= available_mapping.last
      return redirect_to(lolita_resources_path(available_mapping)) if available_mapping
    end
    render :layout => false
  end

  def properties
    if request.local?
      render :inline => to_html
    else
      render :text => '<p>For security purposes, this information is only available to local requests.</p>', :status => :forbidden
    end
  end

  def is_lolita_resource?
    true
  end

  private

  def self.property(name, value = nil)
    value ||= yield
    @@properties << [name, value] if value
    rescue Exception
  end

  def to_html
    (table = '<table>').tap do
      @@properties.each do |(name, value)|
        table << %(<tr><td class="name">#{CGI.escapeHTML(name.to_s)}</td>)
        formatted_value = if value.kind_of?(Array)
              "<ul>" + value.map { |v| "<li>#{CGI.escapeHTML(v.to_s)}</li>" }.join + "</ul>"
            else
              CGI.escapeHTML(value.to_s)
            end
        table << %(<td class="value">#{formatted_value}</td></tr>)
      end
      table << '</table>'
    end
  end
    
  property 'Lolita version', "#{Lolita::Version}"

end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
lolita-3.3.5 app/controllers/lolita/info_controller.rb
lolita-3.3.4 app/controllers/lolita/info_controller.rb
lolita-3.3.3 app/controllers/lolita/info_controller.rb
lolita-3.3.2 app/controllers/lolita/info_controller.rb
lolita-3.3.1 app/controllers/lolita/info_controller.rb
lolita-3.3.0 app/controllers/lolita/info_controller.rb
lolita-3.2.1 app/controllers/lolita/info_controller.rb
lolita-3.2.0.rc.17 app/controllers/lolita/info_controller.rb
lolita-3.2.0.rc.16 app/controllers/lolita/info_controller.rb
lolita-3.2.0.rc.14 app/controllers/lolita/info_controller.rb
lolita-3.2.0.rc.13 app/controllers/lolita/info_controller.rb
lolita-3.2.0.rc.12 app/controllers/lolita/info_controller.rb
lolita-3.2.0.rc.11 app/controllers/lolita/info_controller.rb
lolita-3.2.0.rc.10 app/controllers/lolita/info_controller.rb
lolita-3.2.0.rc.9 app/controllers/lolita/info_controller.rb