class HammerCLI::Options::Normalizers::JSONInput

Public Instance Methods

format(val) click to toggle source
# File lib/hammer_cli/options/normalizers.rb, line 157
def format(val)
  # The JSON input can be either the path to a file whose contents are
  # JSON or a JSON string.  For example:
  #   /my/path/to/file.json
  # or
  #   '{ "units":[ { "name":"zip", "version":"9.0", "inclusion":"false" } ] }')
  json_string = ::File.exist?(::File.expand_path(val)) ? super(val) : val
  ::JSON.parse(json_string)

rescue ::JSON::ParserError => e
  raise ArgumentError, _("Unable to parse JSON input.")
end