Module: CompletionKit::Checks::TargetResolver
- Defined in:
- app/services/completion_kit/checks/target_resolver.rb
Constant Summary collapse
- TARGETS =
%w[response_text input_data json_path].freeze
- UNRESOLVED =
Object.new.freeze
Class Method Summary collapse
Class Method Details
.call(response, config) ⇒ Object
7 8 9 10 11 12 13 14 15 16 |
# File 'app/services/completion_kit/checks/target_resolver.rb', line 7 def self.call(response, config) case config["target"] when "input_data" response.input_data when "json_path" resolve_json_path(response.response_text, config["target_path"].to_s) else response.response_text end end |
.resolve_json_path(text, path) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 |
# File 'app/services/completion_kit/checks/target_resolver.rb', line 18 def self.resolve_json_path(text, path) parsed = JSON.parse(text.to_s) value = path.split(".").reduce(parsed) do |node, key| return UNRESOLVED unless node.is_a?(Hash) && node.key?(key) node[key] end value.to_s rescue JSON::ParserError UNRESOLVED end |