Ruby 2.0.0p353(2013-11-22revision43784)

- Main Page
- Modules
- Data Structures
- Files

Macros | Functions
ruby(1) implementation
CRuby Embedding APIs

A part of the implementation of ruby(1) command. More...

Collaboration diagram for ruby(1) implementation:

## Macros
#define | RUBY_INIT_STACK
| A convenience macro to call ruby_init_stack(). More...

## Functions
void | ruby_sysinit (int *argc, char ***argv)
| Initializes the process for ruby(1). More...
void | ruby_init (void)
void * | ruby_options (int argc, char **argv)
| Processes command line arguments and compiles the Ruby source to execute. More...
int | ruby_executable_node (void *n, int *status)
| Checks the return value of ruby_options(). More...
int | ruby_run_node (void *n)
| Runs the given compiled source and exits this process. More...
void | ruby_show_version (void)
| Prints the version information of the CRuby interpreter to stdout. More...
void | ruby_show_copyright (void)
| Prints the copyright notice of the CRuby interpreter to stdout and exits this process successfully. More...

## Detailed Description

A part of the implementation of ruby(1) command.

Other programs that embed Ruby interpreter do not always need to use these functions.

## Macro Definition Documentation

#define RUBY_INIT_STACK

Value:
VALUE variable_in_this_stack_frame; \
ruby_init_stack(&variable_in_this_stack_frame);
ruby_init_stack
void ruby_init_stack(volatile VALUE *)
VALUE
unsigned long VALUE
Definition: ripper.y:104

A convenience macro to call ruby_init_stack().

Must be placed just after variable declarations

Definition at line 1689 of file ruby.h.

## Function Documentation

int ruby_executable_node | ( | void * | n,
|  | int * | status
| ) |  |

Checks the return value of ruby_options().

Parameters

  n | return value of ruby_options().
  status | pointer to the exit status of this process.

ruby_options() sometimes returns a special value to indicate this process should immediately exit. This function checks if the case. Also stores the exit status that the caller have to pass to exit(3) into `*status`.

Return values

  non-zero | if the given opaque pointer is actually a compiled source.
  0 | if the given value is such a special value.

Definition at line 279 of file eval.c.

References EXIT_FAILURE, EXIT_SUCCESS, FALSE, FIX2INT, FIXNUM_P, Qfalse, Qtrue, s, TRUE, and v.

Referenced by ruby_run_node().

void ruby_init | ( | void |  | ) |

Definition at line 71 of file eval.c.

References error_print(), EXIT_FAILURE, ruby_setup(), and state.

Referenced by main(), and pruby_init().

void* ruby_options | ( | int | argc,
|  | char ** | argv
| ) |  |

Processes command line arguments and compiles the Ruby source to execute.

This function does:

- Processses the given command line flags and arguments for ruby(1)
- compiles the source code from the given argument, -e or stdin, and
- returns the compiled source as an opaque pointer to an internal data structure

Returns
  an opaque pointer to the compiled source or an internal special value.

See Also
  ruby_executable_node().

Definition at line 91 of file eval.c.

int ruby_run_node | ( | void * | n | ) |

Runs the given compiled source and exits this process.

Return values

  0 | if successfully run thhe source
  non-zero | if an error occurred.

Definition at line 300 of file eval.c.

void ruby_show_copyright | ( | void |  | ) |

Prints the copyright notice of the CRuby interpreter to stdout and exits this process successfully.

Definition at line 151 of file version.c.

References PRINT.

Referenced by process_options().

void ruby_show_version | ( | void |  | ) |

Prints the version information of the CRuby interpreter to stdout.

Definition at line 141 of file version.c.

References PRINT.

Referenced by process_options().

void ruby_sysinit | ( | int * | argc,
|  | char *** | argv
| ) |  |

Initializes the process for ruby(1).

This function assumes this process is ruby(1) and it has just started. Usually programs that embeds CRuby interpreter should not call this function, and should do their own initialization.

Definition at line 1955 of file ruby.c.

References argc, argv, fill_standard_fds(), origarg, and rb_w32_sysinit().