#99 ✓invalid
bahuvrihi

Use of ObjectSpace may be a JRuby conflict

Reported by bahuvrihi | September 10th, 2008 @ 09:11 AM | in Tap-0.11.0

The current mod_declare used in declarations may conflict with JRuby because it uses ObjectSpace (which JRuby disables by default):


      def mod_declare(klass, declaration, configs={}, &block)
        options = {}
        options[:arity] = arity(block) if block_given?

        subclass = declare(klass, declaration, configs, options)

        if block_given?
          mod = Module.new
          mod.module_eval %Q{
            ACTION = ObjectSpace._id2ref(#{block.object_id})
            def process(*args)
              results = super
              case ACTION.arity
              when 0 then ACTION.call
              when 1 then ACTION.call(self)
              else ACTION.call(self, *args)
              end
              results
            end
          }
          subclass.send(:include, mod)
        end
        subclass.instance
      end

I haven't tested for a conflict, but this is another suggestion that mod_declare is going about things in the wrong way.

Comments and changes to this ticket

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile »

A framework for making configurable, file-based tasks and workflows.

People watching this ticket

Tags

Pages