Sha256: bef4017d4f392e1002578f782ff1b2e40e8c051e5b86db3e10b0d9118fe64047

Contents?: true

Size: 958 Bytes

Versions: 76

Compression:

Stored size: 958 Bytes

Contents

class Roda
  class Component
    class Instance
      attr_accessor :instance, :scope

      def initialize instance, scope = false
        @instance = instance
        @scope    = scope
      end

      # this is a hack because it seems like display is a ruby object method
      # when doing method(:display) it gives #<Method: # Roda::Component::Instance(Kernel)#display>
      def display *args, &block
        method_missing('display', *args, &block)
      end

      def method_missing method, *args, &block
        if instance.respond_to? method, true
          instance.send method, *args, &block
        elsif server && scope && scope.respond_to?(method, true)
          scope.send method, *args, &block
        else
          super
        end
      end

      def server?
        RUBY_ENGINE == 'ruby'
      end
      alias :server :server?

      def client?
        RUBY_ENGINE == 'opal'
      end
      alias :client :client?
    end
  end
end

Version data entries

76 entries across 76 versions & 1 rubygems

Version Path
roda-component-0.1.73 lib/roda/component/instance.rb
roda-component-0.1.72 lib/roda/component/instance.rb
roda-component-0.1.71 lib/roda/component/instance.rb
roda-component-0.1.70 lib/roda/component/instance.rb
roda-component-0.1.69 lib/roda/component/instance.rb
roda-component-0.1.68 lib/roda/component/instance.rb
roda-component-0.1.67 lib/roda/component/instance.rb
roda-component-0.1.66 lib/roda/component/instance.rb
roda-component-0.1.65 lib/roda/component/instance.rb
roda-component-0.1.64 lib/roda/component/instance.rb
roda-component-0.1.63 lib/roda/component/instance.rb
roda-component-0.1.62 lib/roda/component/instance.rb
roda-component-0.1.61 lib/roda/component/instance.rb
roda-component-0.1.60 lib/roda/component/instance.rb
roda-component-0.1.59 lib/roda/component/instance.rb
roda-component-0.1.58 lib/roda/component/instance.rb
roda-component-0.1.57 lib/roda/component/instance.rb
roda-component-0.1.56 lib/roda/component/instance.rb
roda-component-0.1.55 lib/roda/component/instance.rb
roda-component-0.1.54 lib/roda/component/instance.rb