このコミットが含まれているのは:
@@ -39,7 +39,22 @@ class PostImportSourceParser
|
||||
|
||||
def parse_json
|
||||
value = JSON.parse(@source, max_nesting: 20)
|
||||
@json_path.split('.').reject(&:blank?).each { |part| value = value.is_a?(Array) ? value[Integer(part)] : value.fetch(part) }
|
||||
@json_path.split('.').reject(&:blank?).each do |part|
|
||||
value =
|
||||
case value
|
||||
when Array
|
||||
index = Integer(part, exception: false)
|
||||
raise ArgumentError if index.nil? || index.negative? || index >= value.length
|
||||
|
||||
value[index]
|
||||
when Hash
|
||||
raise ArgumentError unless value.key?(part) || value.key?(part.to_sym)
|
||||
|
||||
value.key?(part) ? value[part] : value[part.to_sym]
|
||||
else
|
||||
raise ArgumentError
|
||||
end
|
||||
end
|
||||
raise ArgumentError, 'JSON の投稿候補は配列にしてください.' unless value.is_a?(Array)
|
||||
|
||||
ensure_limits!(value)
|
||||
|
||||
新しい課題から参照
ユーザをブロックする