Sha256: 8af102766b186840a89d99fb61a1eb66cb1bbe796f62d0f588195cff5b8db771

Contents?: true

Size: 1.08 KB

Versions: 30

Compression:

Stored size: 1.08 KB

Contents

module ProxyPacRb
  # Abstract base class for runtimes
  class Runtime
    # Context
    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

30 entries across 30 versions & 1 rubygems

Version Path
proxy_pac_rb-0.9.1 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.8.2 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.8.1 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.8.0 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.7.0 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.6.9 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.6.8 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.6.7 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.6.5 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.6.4 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.6.3 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.6.2 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.6.1 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.6.0 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.5.10 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.5.9 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.5.8 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.5.7 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.5.6 lib/proxy_pac_rb/runtime.rb
proxy_pac_rb-0.5.5 lib/proxy_pac_rb/runtime.rb