Sha256: 2f16f3525fe7a22131c60224f3eee8d57b938a331a27996a24e46f759994bcba

Contents?: true

Size: 1 KB

Versions: 1

Compression:

Stored size: 1 KB

Contents

class StrongJSON
  module Types
    def object(fields = {})
      Type::Object.new(fields)
    end

    def array(type = any)
      Type::Array.new(type)
    end

    def optional(type = any)
      Type::Optional.new(type)
    end

    def string
      StrongJSON::Type::Base.new(:string)
    end

    def numeric
      StrongJSON::Type::Base.new(:numeric)
    end

    def number
      StrongJSON::Type::Base.new(:number)
    end

    def boolean
      StrongJSON::Type::Base.new(:boolean)
    end

    def any
      StrongJSON::Type::Base.new(:any)
    end

    def prohibited
      StrongJSON::Type::Base.new(:prohibited)
    end

    def string?
      optional(string)
    end

    def numeric?
      optional(numeric)
    end

    def number?
      optional(number)
    end

    def boolean?
      optional(boolean)
    end

    def ignored
      StrongJSON::Type::Base.new(:ignored)
    end

    def array?(ty)
      optional(array(ty))
    end

    def object?(fields)
      optional(object(fields))
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
strong_json-0.1.2 lib/strong_json/types.rb