Class: TreeSitter::Logger
- Inherits:
-
Object
- Object
- TreeSitter::Logger
- Defined in:
- ext/tree_sitter/logger.c
Instance Method Summary collapse
-
#initialize(*args) ⇒ Object
constructor
Create a new logger.
- #inspect ⇒ Object
- #printf ⇒ Object
- #puts ⇒ Object
- #to_s ⇒ Object
- #write ⇒ Object
Constructor Details
#initialize(*args) ⇒ Object
Create a new logger.
By default, it logs to stderr.
You can provide your proper backend. You have to make sure that it exposes a printf, puts, or write (lookup is done in that specific order). StringIO is a perfect candidate.
You can also provide a format (String) if your backend supports a printf.
168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 |
# File 'ext/tree_sitter/logger.c', line 168
static VALUE logger_initialize(int argc, VALUE *argv, VALUE self) {
// TODO:
// For now, we only take:
// argv[0] = stream
// argv[1] = format : String
// We need to add support for argv[1] : lambda/block
// case argv[1]
// in lambda => lambda
// in String => puts || printf || write
// else => write
// end
logger_t *logger = unwrap(self);
VALUE payload;
VALUE format;
rb_scan_args(argc, argv, "02", &payload, &format);
logger->format = format;
if (argc == 0) {
logger_initialize_stderr(logger);
} else {
logger_payload_set(logger, payload);
}
return self;
}
|
Instance Method Details
#inspect ⇒ Object
196 197 198 199 200 |
# File 'ext/tree_sitter/logger.c', line 196
static VALUE logger_inspect(VALUE self) {
logger_t *logger = unwrap(self);
return rb_sprintf("{payload=%+" PRIsVALUE ", format=%+" PRIsVALUE "}",
logger->payload, logger->format);
}
|
#printf ⇒ Object
#puts ⇒ Object
#to_s ⇒ Object
196 197 198 199 200 |
# File 'ext/tree_sitter/logger.c', line 196
static VALUE logger_inspect(VALUE self) {
logger_t *logger = unwrap(self);
return rb_sprintf("{payload=%+" PRIsVALUE ", format=%+" PRIsVALUE "}",
logger->payload, logger->format);
}
|