{ "$schema": "http://json-schema.org/draft-04/schema#", "definitions": { "methodDefinition": { "type": "object", "properties": { "member": { "type": "string", "enum": ["method_definition"] }, "name": { "type": "string" }, "kind": { "enum": ["instance", "singleton", "singleton_instance"] }, "overloads": { "type": "array", "items": { "type": "object", "properties": { "annotations": { "type": "array", "items": { "$ref": "annotation.json" } }, "method_type": { "$ref": "methodType.json" } } } }, "comment": { "$ref": "comment.json" }, "annotations": { "type": "array", "items": { "$ref": "annotation.json" } }, "location": { "$ref": "location.json" }, "overloading": { "type": "boolean" }, "visibility": { "enum": ["public", "private", null] } }, "required": ["member", "name", "kind", "overloads", "comment", "annotations", "location", "visibility", "overloading"] }, "variable": { "title": "Declaration for instance variables and class variables", "description": "`@x: Integer`, `self.@x: String`, `@@name: Symbol`, ...", "type": "object", "properties": { "member": { "enum": ["instance_variable", "class_instance_variable", "class_variable"] }, "name": { "type": "string" }, "type": { "$ref": "types.json" }, "location": { "$ref": "location.json" }, "comment": { "$ref": "comment.json" } }, "required": ["member", "name", "type", "location", "comment"] }, "include": { "title": "Include mixin", "properties": { "member": { "enum": ["include"] }, "name": { "type": "string" }, "args": { "type": "array", "items": { "$ref": "types.json" } }, "annotations": { "type": "array", "items": { "$ref": "annotation.json" } }, "comment": { "$ref": "comment.json" }, "location": { "$ref": "location.json" } }, "required": ["member", "name", "args", "annotations", "comment", "location"] }, "extend": { "title": "Extend mixin", "properties": { "member": { "enum": ["extend"] }, "name": { "type": "string" }, "args": { "type": "array", "items": { "$ref": "types.json" } }, "annotations": { "type": "array", "items": { "$ref": "annotation.json" } }, "comment": { "$ref": "comment.json" }, "location": { "$ref": "location.json" } }, "required": ["member", "name", "args", "annotations", "comment", "location"] }, "prepend": { "title": "Prepend mixin", "properties": { "member": { "enum": ["prepend"] }, "name": { "type": "string" }, "args": { "type": "array", "items": { "$ref": "types.json" } }, "annotations": { "type": "array", "items": { "$ref": "annotation.json" } }, "comment": { "$ref": "comment.json" }, "location": { "$ref": "location.json" } }, "required": ["member", "name", "args", "annotations", "comment", "location"] }, "attribute": { "title": "Attribute definitions", "description": "`attr_reader`, `attr_accessor`, `attr_writer`", "properties": { "member": { "type": "string", "enum": ["attr_reader", "attr_accessor", "attr_writer"] }, "name": { "type": "string" }, "kind": { "type": "string", "enum": ["instance", "singleton"] }, "type": { "$ref": "types.json" }, "ivar_name": { "oneOf": [ { "type": "string" }, { "type": "null" }, { "enum": [false] } ] }, "annotations": { "type": "array", "items": { "$ref": "annotation.json" } }, "comment": { "$ref": "comment.json" }, "location": { "$ref": "location.json" }, "visibility": { "enum": ["public", "private", null] } }, "required": ["member", "name", "ivar_name", "type", "annotations", "kind", "comment", "location", "visibility"] }, "visibility": { "title": "Visibility specifier", "description": "`public` and `private`.", "type": "object", "properties": { "member": { "type": "string", "enum": ["public", "private"] }, "location": { "$ref": "location.json" } }, "required": ["member", "location"] }, "alias": { "title": "Alias declaration", "description": "`alias to_s inspect`, `alias self.new self.allocate`, ...", "properties": { "member": { "type": "string", "enum": ["alias"] }, "new_name": { "type": "string" }, "old_name": { "type": "string" }, "kind": { "type": "string", "enum": ["instance", "singleton"] }, "annotations": { "type": "array", "items": { "$ref": "annotation.json" } }, "comment": { "$ref": "comment.json" }, "location": { "$ref": "location.json" } }, "required": ["member", "new_name", "old_name", "kind", "annotations", "comment", "location"] } } }