File Manager

Current Path : /usr/lib/ruby/gems/3.0.0/gems/rbs-1.0.4/stdlib/json/0/
Upload File :
Current File : //usr/lib/ruby/gems/3.0.0/gems/rbs-1.0.4/stdlib/json/0/json.rbs

interface _ToJson
  def to_json: (?JSON::State state) -> String
end

interface _JsonToWritableIO
  def to_io: () -> _JsonWrite
end

interface _JsonWrite
  def write: (String json) -> void
end

interface _JsonReadableIO
  def to_io: () -> _JsonRead
end

interface _JsonRead
  def read: () -> string
end

type json_options = Hash[Symbol, untyped]

class JSON::State
end

# This module holds all the modules/classes that implement JSON's functionality
# as C extensions.
#
module JSON::Ext
end

# This is the JSON generator implemented as a C extension. It can be configured
# to be used by setting
#
#     JSON.generator = JSON::Ext::Generator
#
# with the method generator= in JSON.
#
module JSON::Ext::Generator
end

class JSON::Ext::Generator::State
end

class JSON::Ext::Parser
end

module JSON::Pure
end

module JSON::Pure::Generator
end

class JSON::Pure::Generator::State
end

class JSON::Pure::Parser
end

type json_generator = singleton(::JSON::Ext::Generator) | singleton(::JSON::Pure::Generator)
type json_parser = singleton(::JSON::Ext::Parser) | singleton(::JSON::Pure::Parser)
type json_state = singleton(JSON::Ext::Generator::State) | singleton(JSON::Pure::Generator::State)

# # JavaScript Object Notation (JSON)
#
# JSON is a lightweight data-interchange format. It is easy for us humans to
# read and write. Plus, equally simple for machines to generate or parse. JSON
# is completely language agnostic, making it the ideal interchange format.
#
# Built on two universally available structures:
#     1. A collection of name/value pairs. Often referred to as an _object_, hash table, record, struct, keyed list, or associative array.
#     2. An ordered list of values. More commonly called an _array_, vector, sequence or list.
#
# To read more about JSON visit: http://json.org
#
# ## Parsing JSON
#
# To parse a JSON string received by another application or generated within
# your existing application:
#
#     require 'json'
#
#     my_hash = JSON.parse('{"hello": "goodbye"}')
#     puts my_hash["hello"] => "goodbye"
#
# Notice the extra quotes `''` around the hash notation. Ruby expects the
# argument to be a string and can't convert objects like a hash or array.
#
# Ruby converts your string into a hash
#
# ## Generating JSON
#
# Creating a JSON string for communication or serialization is just as simple.
#
#     require 'json'
#
#     my_hash = {:hello => "goodbye"}
#     puts JSON.generate(my_hash) => "{\"hello\":\"goodbye\"}"
#
# Or an alternative way:
#
#     require 'json'
#     puts {:hello => "goodbye"}.to_json => "{\"hello\":\"goodbye\"}"
#
# `JSON.generate` only allows objects or arrays to be converted to JSON syntax.
# `to_json`, however, accepts many Ruby classes even though it acts only as a
# method for serialization:
#
#     require 'json'
#
#     1.to_json => "1"
#
module JSON
  # If *object* is string-like, parse the string and return the parsed result as a
  # Ruby data structure. Otherwise generate a JSON text from the Ruby data
  # structure object and return it.
  #
  # The *opts* argument is passed through to generate/parse respectively. See
  # generate and parse for their documentation.
  #
  def self.[]: (untyped object, ?json_options opts) -> untyped

  # This is create identifier, which is used to decide if the *json_create* hook
  # of a class should be called. It defaults to 'json_class'.
  #
  def self.create_id: () -> _ToS

  def self.create_id=: (_ToS create_id) -> _ToS

  def self.deep_const_get: (_ToS path) -> untyped
  # Dumps *obj* as a JSON string, i.e. calls generate on the object and returns
  # the result.
  #
  # If anIO (an IO-like object or an object that responds to the write method) was
  # given, the resulting JSON is written to it.
  #
  # If the number of nested arrays or objects exceeds *limit*, an ArgumentError
  # exception is raised. This argument is similar (but not exactly the same!) to
  # the *limit* argument in Marshal.dump.
  #
  # The default options for the generator can be changed via the
  # dump_default_options method.
  #
  # This method is part of the implementation of the load/dump interface of
  # Marshal and YAML.
  #
  def self?.dump: (_ToJson obj, ?Integer limit) -> String
                | (_ToJson obj, _JsonToWritableIO anIO) -> _JsonWrite
                | (_ToJson obj, _JsonWrite anIO, ?Integer limit) -> _JsonWrite

  # The global default options for the JSON.dump method:
  #     :max_nesting: false
  #     :allow_nan: true
  #     :allow_blank: true
  #
  def self.dump_default_options: () -> json_options

  def self.dump_default_options=: (json_options) -> json_options

  # Generate a JSON document from the Ruby data structure *obj* and return it.
  # This method disables the checks for circles in Ruby objects.
  #
  # **WARNING**: Be careful not to pass any Ruby data structures with circles as
  # *obj* argument because this will cause JSON to go into an infinite loop.
  #
  def self?.fast_generate: (_ToJson obj, ?json_options opts) -> String

  alias self.fast_unparse self.fast_generate
  alias fast_unparse fast_generate

  # Generate a JSON document from the Ruby data structure *obj* and return it.
  # *state* is * a JSON::State object,
  # *   or a Hash like object (responding to to_hash),
  # *   an object convertible into a hash by a to_h method,
  #
  # that is used as or to configure a State object.
  #
  # It defaults to a state object, that creates the shortest possible JSON text in
  # one line, checks for circular data structures and doesn't allow NaN, Infinity,
  # and -Infinity.
  #
  # A *state* hash can have the following keys:
  # *   **indent**: a string used to indent levels (default: ''),
  # *   **space**: a string that is put after, a : or , delimiter (default: ''),
  # *   **space_before**: a string that is put before a : pair delimiter (default:
  #     ''),
  # *   **object_nl**: a string that is put at the end of a JSON object (default:
  #     ''),
  # *   **array_nl**: a string that is put at the end of a JSON array (default:
  #     ''),
  # *   **allow_nan**: true if NaN, Infinity, and -Infinity should be generated,
  #     otherwise an exception is thrown if these values are encountered. This
  #     options defaults to false.
  # *   **max_nesting**: The maximum depth of nesting allowed in the data
  #     structures from which JSON is to be generated. Disable depth checking with
  #     :max_nesting => false, it defaults to 100.
  #
  #
  # See also the fast_generate for the fastest creation method with the least
  # amount of sanity checks, and the pretty_generate method for some defaults for
  # pretty output.
  #
  def self?.generate: (_ToJson obj, ?json_options opts) -> String

  # Returns the JSON generator module that is used by JSON. This is either
  # JSON::Ext::Generator or JSON::Pure::Generator.
  #
  def self.generator: () -> json_generator

  def self.generator=: (json_generator generator) -> void

  # Encodes string using Ruby's *String.encode*
  #
  def self.iconv: (encoding to, encoding from, String string) -> String

  # Load a ruby data structure from a JSON *source* and return it. A source can
  # either be a string-like object, an IO-like object, or an object responding to
  # the read method. If *proc* was given, it will be called with any nested Ruby
  # object as an argument recursively in depth first order. To modify the default
  # options pass in the optional *options* argument as well.
  #
  # BEWARE: This method is meant to serialise data from trusted user input, like
  # from your own database server or clients under your control, it could be
  # dangerous to allow untrusted users to pass JSON sources into it. The default
  # options for the parser can be changed via the load_default_options method.
  #
  # This method is part of the implementation of the load/dump interface of
  # Marshal and YAML.
  #
  def self?.load: (string | _JsonReadableIO | _JsonRead source, ?Proc proc, ?json_options options) -> untyped

  # The global default options for the JSON.load method:
  #     :max_nesting: false
  #     :allow_nan: true
  #     :allow_blank: true
  #
  def self.load_default_options: () -> json_options

  def self.load_default_options=: (json_options) -> json_options

  # Parse the JSON document *source* into a Ruby data structure and return it.
  #
  # *opts* can have the following keys:
  # *   **max_nesting**: The maximum depth of nesting allowed in the parsed data
  #     structures. Disable depth checking with :max_nesting => false. It defaults
  #     to 100.
  # *   **allow_nan**: If set to true, allow NaN, Infinity and -Infinity in
  #     defiance of RFC 7159 to be parsed by the Parser. This option defaults to
  #     false.
  # *   **symbolize_names**: If set to true, returns symbols for the names (keys)
  #     in a JSON object. Otherwise strings are returned. Strings are the default.
  # *   **create_additions**: If set to false, the Parser doesn't create additions
  #     even if a matching class and create_id was found. This option defaults to
  #     false.
  # *   **object_class**: Defaults to Hash
  # *   **array_class**: Defaults to Array
  #
  #
  def self?.parse: (string source, ?json_options opts) -> untyped

  # Parse the JSON document *source* into a Ruby data structure and return it. The
  # bang version of the parse method defaults to the more dangerous values for the
  # *opts* hash, so be sure only to parse trusted *source* documents.
  #
  # *opts* can have the following keys:
  # *   **max_nesting**: The maximum depth of nesting allowed in the parsed data
  #     structures. Enable depth checking with :max_nesting => anInteger. The
  #     parse! methods defaults to not doing max depth checking: This can be
  #     dangerous if someone wants to fill up your stack.
  # *   **allow_nan**: If set to true, allow NaN, Infinity, and -Infinity in
  #     defiance of RFC 7159 to be parsed by the Parser. This option defaults to
  #     true.
  # *   **create_additions**: If set to false, the Parser doesn't create additions
  #     even if a matching class and create_id was found. This option defaults to
  #     false.
  #
  #
  def self?.parse!: (string source, ?json_options opts) -> untyped

  # Returns the JSON parser class that is used by JSON. This is either
  # JSON::Ext::Parser or JSON::Pure::Parser.
  #
  def self.parser: () -> json_parser

  def self.parser=: (json_parser parser) -> void

  # Generate a JSON document from the Ruby data structure *obj* and return it. The
  # returned document is a prettier form of the document returned by #unparse.
  #
  # The *opts* argument can be used to configure the generator. See the generate
  # method for a more detailed explanation.
  #
  def self?.pretty_generate: (_ToJson obj, ?json_options opts) -> untyped

  alias self.pretty_unparse self.pretty_generate
  alias pretty_unparse pretty_generate

  # Recursively calls passed *Proc* if the parsed data structure is an *Array* or
  # *Hash*
  #
  def self?.recurse_proc: (untyped result) { (*untyped) -> void } -> void

  alias self.restore self.load
  alias restore load

  # Returns the JSON generator state class that is used by JSON. This is either
  # JSON::Ext::Generator::State or JSON::Pure::Generator::State.
  #
  def self.state: () -> json_state

  def self.state=: (json_state) -> json_state

  alias self.unparse self.generate
  alias unparse generate
end

JSON::FAST_STATE_PROTOTYPE: json_state

JSON::Infinity: Float

JSON::JSON_LOADED: bool

JSON::MinusInfinity: Float

JSON::NaN: Float

JSON::PRETTY_STATE_PROTOTYPE: json_state

JSON::SAFE_STATE_PROTOTYPE: json_state

# JSON version
#
JSON::VERSION: String

JSON::VERSION_ARRAY: Array[Integer]

JSON::VERSION_BUILD: Integer

JSON::VERSION_MAJOR: Integer

JSON::VERSION_MINOR: Integer

File Manager Version 1.0, Coded By Lucas
Email: hehe@yahoo.com