このコミットが含まれているのは:
2026-07-12 01:47:34 +09:00
コミット 5bd097bcfe
6個のファイルの変更47行の追加16行の削除
+16 -1
ファイルの表示
@@ -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)