mirror of
https://github.com/fluent/fluentd-ui.git
synced 2025-08-11 16:57:11 +02:00
Extract JSON generating for preview to each RegexpPreview class
This commit is contained in:
parent
f4381a81fd
commit
ceaed87dad
@ -20,19 +20,8 @@ class ApiController < ApplicationController
|
||||
|
||||
def regexp_preview
|
||||
preview = RegexpPreview.processor(params[:format]).new(params[:file], params[:format], params)
|
||||
matches = preview.matches
|
||||
|
||||
render json: {
|
||||
params: {
|
||||
setting: {
|
||||
# NOTE: regexp and timeformat are used when format == 'apache' || 'nginx' || etc.
|
||||
# TODO: prepare rendered JSON by prcessor(RegexpPreview::{Signle,Multi}Line
|
||||
regexp: preview.try(:regexp).try(:source),
|
||||
time_format: preview.try(:time_format),
|
||||
}
|
||||
},
|
||||
matches: matches.compact,
|
||||
}
|
||||
render json: preview.matches_json
|
||||
end
|
||||
|
||||
def grok_to_regexp
|
||||
|
@ -8,6 +8,20 @@ module RegexpPreview
|
||||
@params = params[:params]
|
||||
end
|
||||
|
||||
def matches_json
|
||||
{
|
||||
params: {
|
||||
setting: { # for vue.js
|
||||
regexp: nil,
|
||||
time_format: nil,
|
||||
}
|
||||
},
|
||||
matches: matches.compact,
|
||||
}
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def matches
|
||||
return [] if patterns.empty?
|
||||
reader = FileReverseReader.new(File.open(file))
|
||||
|
@ -1,11 +1,13 @@
|
||||
module RegexpPreview
|
||||
class SingleLine
|
||||
attr_reader :file, :format, :params, :regexp
|
||||
attr_reader :file, :format, :params, :regexp, :time_format
|
||||
|
||||
def initialize(file, format, params = {})
|
||||
@file = file
|
||||
@format = format
|
||||
@time_format = params[:time_format]
|
||||
@params = params
|
||||
|
||||
case format
|
||||
when "regexp"
|
||||
@regexp = Regexp.new(params[:regexp])
|
||||
@ -18,6 +20,21 @@ module RegexpPreview
|
||||
end
|
||||
end
|
||||
|
||||
def matches_json
|
||||
{
|
||||
params: {
|
||||
setting: {
|
||||
# NOTE: regexp and time_format are used when format == 'apache' || 'nginx' || etc.
|
||||
regexp: regexp.source,
|
||||
time_format: time_format,
|
||||
}
|
||||
},
|
||||
matches: matches.compact,
|
||||
}
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def matches
|
||||
return [] unless @regexp # such as ltsv, json, apache, etc
|
||||
reader = FileReverseReader.new(File.open(file))
|
||||
|
Loading…
Reference in New Issue
Block a user