class BitGirder::Ops::Ruby::RubyEnv

Public Class Methods

from_mingle_struct( s ) click to toggle source
# File lib/bitgirder/ops/ruby.rb, line 224
def self.from_mingle_struct( s )
    
    self.new( 
        rubies: self.read_rubies_in( s ),
        default_id: s.get_string( :default_ruby ),
    )
end
new( *argv ) click to toggle source
Calls superclass method
# File lib/bitgirder/ops/ruby.rb, line 183
def initialize( *argv )
    
    super( *argv )

    if @default_id
        unless @rubies.key?( @default_id )
            raise "Default id #@default_id not a defined ruby"
        end
    end
end
read_rubies_in( s ) click to toggle source
# File lib/bitgirder/ops/ruby.rb, line 208
def self.read_rubies_in( s )
    
    ( s[ :rubies ] || [] ).inject( {} ) do |res, mg_ctx|
        
        ctx = RubyContext.from_mingle_struct( mg_ctx )

        if res.key?( ctx.id )
            raise "Env has multiple ruby contexts with id: #{ctx.id}"
        else
            res[ ctx.id ] = ctx
        end

        res
    end
end

Public Instance Methods

get_context( id = nil ) click to toggle source
# File lib/bitgirder/ops/ruby.rb, line 194
def get_context( id = nil )
    
    if id 
        @rubies[ id ] or raise "No ruby context with id: #{id}"
    else
        if @default_id
            @rubies[ @default_id ] or 
                raise "Default context #@default_id not set (!?)"
        else
            raise "No default ruby context set"
        end
    end
end