middleman: Middleman fails whenever there is a .rb file present in sources directory
Expected behavior and actual behavior
Launching middleman with ‘middleman’ or ‘middleman build’ causes middleman to crash if there is a .rb file present anywhere in the sources directory. I use middleman to host some .rb source files. It’s currently even impossible to ignore those files, because middleman fails before even config is read. This happens with a fresh installation.
/home/angel/.gem/ruby/2.3.0/gems/tilt-2.0.5/lib/tilt/mapping.rb:243:in `require': cannot load such file -- opal (LoadError)
from /home/angel/.gem/ruby/2.3.0/gems/tilt-2.0.5/lib/tilt/mapping.rb:243:in `block in lazy_load'
from /home/angel/.gem/ruby/2.3.0/gems/tilt-2.0.5/lib/tilt/mapping.rb:241:in `each'
from /home/angel/.gem/ruby/2.3.0/gems/tilt-2.0.5/lib/tilt/mapping.rb:241:in `lazy_load'
from /home/angel/.gem/ruby/2.3.0/gems/tilt-2.0.5/lib/tilt/mapping.rb:216:in `lookup'
from /home/angel/.gem/ruby/2.3.0/gems/tilt-2.0.5/lib/tilt/mapping.rb:154:in `[]'
from /home/angel/.gem/ruby/2.3.0/gems/tilt-2.0.5/lib/tilt.rb:48:in `[]'
from /home/angel/.gem/ruby/2.3.0/gems/middleman-core-4.1.12/lib/middleman-core/sources/source_watcher.rb:336:in `strip_extensions'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'
from /home/angel/.gem/ruby/2.3.0/gems/middleman-core-4.1.12/lib/middleman-core/sources/source_watcher.rb:324:in `record_file_change'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'
from /home/angel/.gem/ruby/2.3.0/gems/middleman-core-4.1.12/lib/middleman-core/sources/source_watcher.rb:265:in `block in update'
from /home/angel/.gem/ruby/2.3.0/gems/middleman-core-4.1.12/lib/middleman-core/sources/source_watcher.rb:264:in `each'
from /home/angel/.gem/ruby/2.3.0/gems/middleman-core-4.1.12/lib/middleman-core/sources/source_watcher.rb:264:in `update'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'
from /home/angel/.gem/ruby/2.3.0/gems/middleman-core-4.1.12/lib/middleman-core/sources/source_watcher.rb:212:in `poll_once!'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'
from /home/angel/.gem/ruby/2.3.0/gems/middleman-core-4.1.12/lib/middleman-core/sources.rb:241:in `block in poll_once!'
from /home/angel/.gem/ruby/2.3.0/gems/middleman-core-4.1.12/lib/middleman-core/sources.rb:241:in `each'
from /home/angel/.gem/ruby/2.3.0/gems/middleman-core-4.1.12/lib/middleman-core/sources.rb:241:in `reduce'
from /home/angel/.gem/ruby/2.3.0/gems/middleman-core-4.1.12/lib/middleman-core/sources.rb:241:in `poll_once!'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'
from /home/angel/.gem/ruby/2.3.0/gems/middleman-core-4.1.12/lib/middleman-core/core_extensions/file_watcher.rb:47:in `before_configuration'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'
from /home/angel/.gem/ruby/2.3.0/gems/middleman-core-4.1.12/lib/middleman-core/callback_manager.rb:57:in `instance_exec'
from /home/angel/.gem/ruby/2.3.0/gems/middleman-core-4.1.12/lib/middleman-core/callback_manager.rb:57:in `block in execute'
from /home/angel/.gem/ruby/2.3.0/gems/hamster-3.0.0/lib/hamster/vector.rb:1316:in `each'
from /home/angel/.gem/ruby/2.3.0/gems/hamster-3.0.0/lib/hamster/vector.rb:1316:in `traverse_depth_first'
from /home/angel/.gem/ruby/2.3.0/gems/hamster-3.0.0/lib/hamster/vector.rb:431:in `each'
from /home/angel/.gem/ruby/2.3.0/gems/middleman-core-4.1.12/lib/middleman-core/callback_manager.rb:57:in `execute'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with'
from /home/angel/.gem/ruby/2.3.0/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'
from /home/angel/.gem/ruby/2.3.0/gems/middleman-core-4.1.12/lib/middleman-core/callback_manager.rb:28:in `block in install_methods!'
from /home/angel/.gem/ruby/2.3.0/gems/middleman-core-4.1.12/lib/middleman-core/application.rb:283:in `initialize'
from /home/angel/.gem/ruby/2.3.0/gems/middleman-cli-4.1.12/bin/middleman:51:in `new'
from /home/angel/.gem/ruby/2.3.0/gems/middleman-cli-4.1.12/bin/middleman:51:in `<top (required)>'
from /home/angel/.gem/ruby/2.3.0/bin/middleman:23:in `load'
from /home/angel/.gem/ruby/2.3.0/bin/middleman:23:in `<main>'
Steps to reproduce the problem (from a clean middleman installation)
middleman build
Additional information
- Ruby version: 2.3.1p112
- Middleman version:
- OS version:
About this issue
- Original URL
- State: closed
- Created 8 years ago
- Comments: 16 (1 by maintainers)
Commits related to this issue
- update gemfile based on open issue: https://github.com/middleman/middleman/issues/2015 — committed to ministryofjustice/opg-technical-guidance by williamfalconeruk 3 years ago
God damn Tilt 2 really shit the bed. Okay, I need to take some time and add much calmer “no please don’t render this” error catching around their freak out code.
Ran into this same issue today. Adding
gem 'opal'gets past the first error, but a new one is thrown:uninitialized constant Opal::Processor (NameError)Adding a line:
to
Gemfileand runningbundle installcommand solved the issue for me.My error was:
/var/lib/gems/2.3.0/gems/tilt-2.0.7/lib/tilt/mapping.rb:243:in `require' : cannot load such file -- org-ruby (LoadError)Looking closely, I found out thattiltis sort of templating modes handler, hence theorg-rubyproblem (org mode for Emacs). After installation oforg-rubyeverything is up again. Sorry! (I am new to Ruby, however, I believe the installation of therequire-d packages must be handled automatically by a package manager). All the best!