Module: Inline

### Home Classes Methods

### In Files

- lib/inline.rb

### Namespace

- CLASS Inline::C

### Methods

- ::directory
- ::register
- ::registered_inline_classes
- ::rootdir

### Files

- History.txt
- Manifest.txt
- README.txt

### Class/Module Index

Quicksearch

- Inline
- Inline::C
- CompilationError
- Dir
- File
- Module

No matching classes.

# Inline

The Inline module is the top-level module used. It is responsible for instantiating the builder for the right language used, compilation/linking when needed, and loading the inlined code into the current namespace.

### Constants

DEV_NULL
GEM
RAKE
RUBINIUS
VERSION
WINDOZE

### Public Class Methods

directory() click to toggle source

    # File lib/inline.rb, line 134
    def self.directory
      unless defined? @@directory then
        version = "#{Gem.ruby_engine}-#{RbConfig::CONFIG['ruby_version']}"

        @@directory = File.join(self.rootdir, ".ruby_inline", version)
      end

      Dir.assert_secure @@directory

      @@directory
    end

register(cls) click to toggle source

    # File lib/inline.rb, line 82
    def self.register cls
      registered_inline_classes << cls
      registered_inline_classes.uniq!
    end

registered_inline_classes() click to toggle source

    # File lib/inline.rb, line 87
    def self.registered_inline_classes
      @@registered_inline_classes ||= []
    end

rootdir() click to toggle source

rootdir can be forced using INLINEDIR variable if not defined, it should store in user HOME folder

Under Windows user data can be stored in several locations:

    HOME
    HOMEDRIVE + HOMEPATH
    APPDATA
    USERPROFILE

Perform a check in that other to see if the environment is defined and if so, use it. only try this on Windows.

    # File lib/inline.rb, line 104
    def self.rootdir
      env = ENV['INLINEDIR'] || ENV['HOME']

      if env.nil? and WINDOZE then
        # try HOMEDRIVE + HOMEPATH combination
        if ENV['HOMEDRIVE'] && ENV['HOMEPATH'] then
          env = ENV['HOMEDRIVE'] + ENV['HOMEPATH']
        end

        # no HOMEDRIVE? use APPDATA
        env = ENV['APPDATA'] if env.nil? and ENV['APPDATA']

        # bummer, still no env? then fall to USERPROFILE
        env = ENV['USERPROFILE'] if env.nil? and ENV['USERPROFILE']
      end

      if env.nil? then
        abort "Define INLINEDIR or HOME in your environment and try again"
      end

      unless defined? @@rootdir and env == @@rootdir and test dd, @@rootdir then
        rootdir = env
        Dir.mkdir rootdir, 0700 unless test dd, rootdir
        Dir.assert_secure rootdir
        @@rootdir = rootdir
      end

      @@rootdir
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.