mirror of
https://github.com/fluent/fluentd-ui.git
synced 2025-08-12 01:07:09 +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
|
def regexp_preview
|
||||||
preview = RegexpPreview.processor(params[:format]).new(params[:file], params[:format], params)
|
preview = RegexpPreview.processor(params[:format]).new(params[:file], params[:format], params)
|
||||||
matches = preview.matches
|
|
||||||
|
|
||||||
render json: {
|
render json: preview.matches_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,
|
|
||||||
}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def grok_to_regexp
|
def grok_to_regexp
|
||||||
|
@ -8,6 +8,20 @@ module RegexpPreview
|
|||||||
@params = params[:params]
|
@params = params[:params]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def matches_json
|
||||||
|
{
|
||||||
|
params: {
|
||||||
|
setting: { # for vue.js
|
||||||
|
regexp: nil,
|
||||||
|
time_format: nil,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
matches: matches.compact,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
def matches
|
def matches
|
||||||
return [] if patterns.empty?
|
return [] if patterns.empty?
|
||||||
reader = FileReverseReader.new(File.open(file))
|
reader = FileReverseReader.new(File.open(file))
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
module RegexpPreview
|
module RegexpPreview
|
||||||
class SingleLine
|
class SingleLine
|
||||||
attr_reader :file, :format, :params, :regexp
|
attr_reader :file, :format, :params, :regexp, :time_format
|
||||||
|
|
||||||
def initialize(file, format, params = {})
|
def initialize(file, format, params = {})
|
||||||
@file = file
|
@file = file
|
||||||
@format = format
|
@format = format
|
||||||
|
@time_format = params[:time_format]
|
||||||
@params = params
|
@params = params
|
||||||
|
|
||||||
case format
|
case format
|
||||||
when "regexp"
|
when "regexp"
|
||||||
@regexp = Regexp.new(params[:regexp])
|
@regexp = Regexp.new(params[:regexp])
|
||||||
@ -18,6 +20,21 @@ module RegexpPreview
|
|||||||
end
|
end
|
||||||
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
|
def matches
|
||||||
return [] unless @regexp # such as ltsv, json, apache, etc
|
return [] unless @regexp # such as ltsv, json, apache, etc
|
||||||
reader = FileReverseReader.new(File.open(file))
|
reader = FileReverseReader.new(File.open(file))
|
||||||
|
Loading…
Reference in New Issue
Block a user