class Knjappserver::Log

Public Class Methods

add(d) click to toggle source
# File lib/include/class_log.rb, line 57
def self.add(d)
        d.data[:date_saved] = Time.now if !d.data.key?(:date_saved)
end
list(d, &block) click to toggle source
# File lib/include/class_log.rb, line 6
  def self.list(d, &block)
          sql = "SELECT #{table}.* FROM #{table}"
          
          if d.args["object_lookup"]
data_val = d.ob.get_by(:Log_data_value, {"value" => d.args["object_lookup"].class.name})
return [] if !data_val #if this data-value cannot be found, nothing has been logged for the object. So just return empty array here and skip the rest.

                  sql << "
                          LEFT JOIN Log_link ON
                                  Log_link.log_id = #{table}.id AND
                                  Log_link.object_class_value_id = '#{d.db.esc(data_val.id)}' AND
                                  Log_link.object_id = '#{d.db.esc(d.args["object_lookup"].id)}'
                  "
          end
          
          q_args = nil
          return_sql = false
          ret = self.list_helper(d)
          
          sql << ret[:sql_joins]
          sql << " WHERE 1=1"
          
          d.args.each do |key, val|
                  case key
                          when "object_lookup"
    sql << " AND Log_link.id IS NOT NULL"
  when "return_sql"
    return_sql = true
  when "tag"
    data_val = d.ob.get_by(:Log_data_value, {"value" => val})
    if !data_val
      sql << " AND false"
    else
      sql << " AND Log.tag_data_id = '#{d.db.esc(data_val.id)}'"
    end
  when :cloned_ubuf
    q_args = {:cloned_ubuf => true}
                          else
                                  raise "Invalid key: #{key}."
                          end
          end
          
          sql << ret[:sql_where]
          sql << ret[:sql_order]
          sql << ret[:sql_limit]
          
          return sql if return_sql
          
          return d.ob.list_bysql(:Log, sql, q_args, &block)
  end

Public Instance Methods

comment() click to toggle source
# File lib/include/class_log.rb, line 65
    def comment
return "" if self[:comment_data_id].to_i == 0
log_data = ob.get(:Log_data_value, self[:comment_data_id])
return "" if !log_data
return log_data[:value]
    end
first_line() click to toggle source
# File lib/include/class_log.rb, line 107
def first_line
        lines = self.text.to_s.split("\n").first.to_s
end
get() click to toggle source
# File lib/include/class_log.rb, line 79
def get
        ob.args[:knjappserver].log_data_hash(self[:get_keys_data_id], self[:get_values_data_id])
end
ip() click to toggle source
# File lib/include/class_log.rb, line 99
def ip
  meta_d = self.meta
  
  return meta_d[:HTTP_X_FORWARDED_FOR] if meta_d.has_key?(:HTTP_X_FORWARDED_FOR)
  return meta_d[:REMOTE_ADDR] if meta_d.has_key?(:REMOTE_ADDR)
  return "[no ip logged]"
end
meta() click to toggle source
# File lib/include/class_log.rb, line 91
def meta
  ob.args[:knjappserver].log_data_hash(self[:meta_keys_data_id], self[:meta_values_data_id])
end
objects_html(ob_use) click to toggle source
# File lib/include/class_log.rb, line 111
def objects_html(ob_use)
        html = ""
        first = true
        
        self.links.each do |link|
                obj = link.object(ob_use)
                
                html << ", " if !first
                first = false if first
                
                if obj.respond_to?(:html)
                        html << obj.html
                else
                        html << "#{obj.class.name}{#{obj.id}}"
                end
        end
        
        return html
end
post() click to toggle source
# File lib/include/class_log.rb, line 83
def post
        ob.args[:knjappserver].log_data_hash(self[:post_keys_data_id], self[:post_values_data_id])
end
session() click to toggle source
# File lib/include/class_log.rb, line 95
def session
  ob.args[:knjappserver].log_data_hash(self[:session_keys_data_id], self[:session_values_data_id])
end
tag() click to toggle source
# File lib/include/class_log.rb, line 72
    def tag
return "" if self[:tag_data_id].to_i == 0
log_data = ob.get(:Log_data_value, self[:tag_data_id])
return "" if !log_data
return log_data[:value]
    end
text() click to toggle source
# File lib/include/class_log.rb, line 61
def text
        return ob.get(:Log_data_value, self[:text_value_id])[:value]
end