Git Product home page Git Product logo

ppruby's Introduction

ppRuby

Ruby binding for Free Pascal and Lazarus

Author: Ivan Shikhalev.

License: GNU GPL v3+.

Homepage: this, welcome to Wiki and Issue tracker.

Version: 1.0 public beta.

Documentation: only in Russian, sorry...

Overview

This is a lazarus-package for use Ruby in Pascal projects. It is solving two task:

  • Add a Ruby scripting engine in your project;
  • or write extension libraries for Ruby using Free Pascal.

See also the Ruby documentation.

Package

This package contains the next parts:

  • API bindings in ruby.pas. This file may be compiled in two different modes (by setting conditional defines): static and dynamic. If RUBY_STATIC defined, your program will linked with selected version of libruby. It is the only right way for creation ruby extension and efficient but not flexible way for add Ruby in pascal programs. In dynamic way you select library version at run-time.
  • Units RbTools and RbObjects provided some utilities for comfortable conversions between Ruby and Pascal data types. Pascal objects convert to Ruby objects with autodefinitions of published properties. And other properties and methods may defined by hands.
  • Other units provide definitions some public members of common classes. This part of package will be extend from version to version.

Also this repo contains the demo project for demonstrate the basic features. The subdir demo/rb contains some ruby-scripts usable for it.

Compatibility

The package was testing in FPC 2.7.1 and Lazarus 1.3 with Ruby 1.9.3 and 2.0. Ruby 1.8 is unsupported.

It's not fully tested but must work in Windows, Linux and Mac OS X under 32- and 64-bit architecture.

RoadMap

  • Define methods for most standard classes:

    • unit Forms;
    • unit Controls;
    • unit Graphics;
    • unit Dialogs;
    • And other...
  • Writing documentation.

  • Ruby 2.1 compatibility.

  • IDE integration.

  • Ruby SynHighlighter(?)

ppruby's People

Contributors

frostney avatar shikhalev avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.