motion-require
Miss require
? Well, this is a step in that direction:
motion_require "base_view_controller"
motion_require "../util/controller_helper"
class MyController < BaseViewController
include ControllerHelper
end
require 'motion/project'
require 'motion-require'
Motion::Require.all
Motion::Project::App.setup do |app|
end
To enable motion_require
for only select files:
Motion::Require.all(Dir.glob('app/models/**/*.rb'))
Motion::Require.all(Dir.glob('lib/ios/**/*.rb'), platform: :ios)
Motion::Require.all(Dir.glob('lib/osx/**/*.rb'), platform: :osx)
You should not use app.files <<
in your setup
block if using motion-require; opt to use Motion::Require.all
and it will be taken care of.
It's used in:
Installation
gem install motion-require
Can also add to your Gemfile
etc
How?
motion-require uses static analysis (via ripper
) to find the files using motion_require
and automatically add the declared dependencies to Motion::Project::Config#dependencies
. Then the Kernel#motion_require
method is overriden at compile-time to be a noop.
The paths attached to motion_require
are treated like those with require_relative
. If you want to use require_relative
instead of motion_require
, you can enable this:
require 'motion-require'
Motion::Require.require_relative_enabled = true
Motion::Require.all(Dir.glob("app/**/*.rb"))
Contact
Clay Allsopp (http://clayallsopp.com)
License
motion-require is available under the MIT license. See the LICENSE file for more info.