Sha256: 36c1be21d9c114f7add7f49c3360101be234d20cd4e8baf5229f7721eb8093d8

Contents?: true

Size: 1.06 KB

Versions: 12

Compression:

Stored size: 1.06 KB

Contents

module ProxyPacRb
  # Abstract base class for runtimes
  class Runtime
    class Context
      include Encoding

      attr_accessor :context

      def include(environment)
        environment.available_methods.each do |name| 
          context[name] = environment.method(name)
        end
      end

      def initialize(runtime, source = "")
      end

      def exec(source, options = {})
        fail NotImplementedError
      end

      def eval(source, options = {})
        fail NotImplementedError
      end

      def call(properties, *args)
        fail NotImplementedError
      end
    end

    def name
      fail NotImplementedError
    end

    def context_class
      self.class::Context
    end

    def exec(source)
      context = context_class.new(self)
      context.exec(source)
    end

    def eval(source)
      context = context_class.new(self)
      context.eval(source)
    end

    def compile(source)
      context_class.new(self, source)
    end

    def deprecated?
      false
    end

    def available?
      fail NotImplementedError
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
proxy_pac_rb-0.3.4 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.3.3 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.3.2 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.3.0 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.2.6 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.2.5 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.2.4 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.2.3 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.2.2 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.2.1 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.2.0 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.0.3 lib/proxy_pac_rb/runtime.rb