Class: MongoRequestLogger::Viewer
- Inherits:
-
Sinatra::Base
- Object
- Sinatra::Base
- MongoRequestLogger::Viewer
- Defined in:
- lib/mongo_request_logger/viewer.rb
Constant Summary collapse
- SERVER_LOGS_PER_PAGE =
50
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.adapter ⇒ Object
24 25 26 |
# File 'lib/mongo_request_logger/viewer.rb', line 24 def self.adapter @adapter end |
.adapter=(adapter) ⇒ Object
20 21 22 |
# File 'lib/mongo_request_logger/viewer.rb', line 20 def self.adapter= adapter @adapter = adapter end |
Instance Method Details
#adapter ⇒ Object
228 229 230 |
# File 'lib/mongo_request_logger/viewer.rb', line 228 def adapter self.class.adapter end |
#build_query(string, defaults = {}) ⇒ Object
214 215 216 217 218 219 220 221 222 223 224 225 226 |
# File 'lib/mongo_request_logger/viewer.rb', line 214 def build_query(string, defaults={}) string ||= "{}" if string.start_with? "{" query = JSON.parse(string) elsif string.start_with? "[" # A hack, and probably not useful query = JSON.parse("{\"only\": #{string}}")['only'] else query = {"$where" => string} end result = defaults.merge query result end |
#query_from_terms(terms) ⇒ Object
156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 |
# File 'lib/mongo_request_logger/viewer.rb', line 156 def query_from_terms(terms) query = {} errors = [] = (terms['tag'] || '').split(',') if terms['user'] query['user_id'] = terms['user'] end if terms['error'] == '1' query['exception'] = {'$ne' => nil} elsif terms['error'] == '0' query['exception'] = nil elsif terms['error'] query['exception.class'] = terms['error'] end if terms['response'] query['response'] = terms['response'].to_i end if terms['ip'] query['ip'] = terms['ip'] end begin if terms.search_regex query["messages"] = Regexp.new(terms.search_regex, Regexp::IGNORECASE) elsif !terms.search.blank? query["messages"] = Regexp.new(Regexp.escape(terms.search), Regexp::IGNORECASE) end rescue => e errors << "Error in message regex: #{e.}" end path = terms.path unless path.blank? if path.end_with?('$') query["path"] = path[0...-1] else query["path"] = Regexp.new('^' + Regexp.escape(path)) end end unless terms['id'].blank? query["ids"] = terms['id'] end unless .empty? query["tags"] = {"$all" => } end [query, errors] end |