archan937/motion-bundler

Build error when ruby_motion_query is being used

Opened this issue · 6 comments

Using:

  • ruby 1.9.3p194
  • ruby motion 2.27
  • motion-bundler 0.2.1
  • ruby_motion_query 0.5.7

RMQ works fine when motion-bundler is not included. motion-bundler works fine when RMQ is not included. When both are present, the following error occurs when running any rake task:

rake --trace
** Invoke default (first_time)
** Invoke simulator (first_time)
** Execute simulator
rake aborted!
can't convert Array into String
/usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/motion-bundler-0.2.1/lib/motion-bundler.rb:130:in expand_path' /usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/motion-bundler-0.2.1/lib/motion-bundler.rb:130:inblock in normalize!'
/usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/motion-bundler-0.2.1/lib/motion-bundler.rb:129:in each' /usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/motion-bundler-0.2.1/lib/motion-bundler.rb:129:ininject'
/usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/motion-bundler-0.2.1/lib/motion-bundler.rb:129:in normalize!' /usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/motion-bundler-0.2.1/lib/motion-bundler.rb:25:inblock in setup'
/Library/RubyMotion/lib/motion/project/config.rb:113:in call' /Library/RubyMotion/lib/motion/project/config.rb:113:inblock in setup'
/Library/RubyMotion/lib/motion/project/config.rb:113:in each' /Library/RubyMotion/lib/motion/project/config.rb:113:insetup'
/Library/RubyMotion/lib/motion/project/app.rb:66:in config' /Library/RubyMotion/lib/motion/project/template/ios.rb:81:inblock in <top (required)>'
/usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/task.rb:236:in call' /usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/task.rb:236:inblock in execute'
/usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/task.rb:231:in each' /usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/task.rb:231:inexecute'
/usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/task.rb:175:in block in invoke_with_call_chain' /usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:inmon_synchronize'
/usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/task.rb:168:in invoke_with_call_chain' /usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/task.rb:197:inblock in invoke_prerequisites'
/usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/task.rb:195:in each' /usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/task.rb:195:ininvoke_prerequisites'
/usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/task.rb:174:in block in invoke_with_call_chain' /usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:inmon_synchronize'
/usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/task.rb:168:in invoke_with_call_chain' /usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/task.rb:161:ininvoke'
/usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/application.rb:149:in invoke_task' /usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/application.rb:106:inblock (2 levels) in top_level'
/usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/application.rb:106:in each' /usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/application.rb:106:inblock in top_level'
/usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/application.rb:115:in run_with_threads' /usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/application.rb:100:intop_level'
/usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/application.rb:78:in block in run' /usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/application.rb:165:instandard_exception_handling'
/usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/application.rb:75:in run' /usr/local/opt/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rake-10.1.1/bin/rake:33:in<top (required)>'
/usr/local/opt/rbenv/versions/1.9.3-p194/bin/rake:23:in load' /usr/local/opt/rbenv/versions/1.9.3-p194/bin/rake:23:in

'
Tasks: TOP => default => simulator

Did you find a solution to this?

On line 130 of lib/motion-bundler.rb I made this change:

[*v].each do |v|
  a << File.expand_path(v)
  a
end

In my case it was choking because of the new version of the bubble wrap gem.

Anyway it revealed a different error:

ERROR! Can't resolve dependency /Users/paulsturgess/.gem/ruby/2.1.0/gems/motion-bundler-0.2.1/lib/motion-bundler/simulator/boot.rb

Unfortunately, I have not yet found a solution. I took out motion-bundler until I have more time to look into it.

OK So it turns out the change I made as outlined above, is not a fix for this. No surprise really as my understanding of the internals of motion-require are pretty much zero.

Anyway, I reverted my change and dropped the bubble-wrap gem back down to version 1.5.0 and the error disappeared.

So there must be something in the way that RMQ and the new Bubble Wrap gem are put together that motion-require cannot yet handle.

The suggested change worked in my case:

replace line 130 with

      [*v].each do |v|
        a << File.expand_path(v)
      end

I am running into this issue as well. My gemfile looks like this:

source 'https://rubygems.org'

gem 'rake'
gem 'motion-layout'
gem 'cdq'
gem "bubble-wrap", "~> 1.5.0"

gem "motion-bundler"
group :motion do 
    gem 'orbit'
    gem 'RubySunrise'
end