0.02
No commit activity in last 3 years
No release in over 3 years
Dependency management for RubyMotion, using a pseudo `require`
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 2.5
 Project Readme

motion-require

Miss require? Well, this is a step in that direction:

# in a RubyMotion file
motion_require "base_view_controller"
motion_require "../util/controller_helper"

class MyController < BaseViewController
  include ControllerHelper
end
# in your Rakefile
require 'motion/project'

require 'motion-require'
Motion::Require.all

Motion::Project::App.setup do |app|
  # ...
end

Whoa.

To enable motion_require for only select files:

Motion::Require.all(Dir.glob('app/models/**/*.rb'))

# if you're writing a gem that supports iOS and OS X, you might need to filter
# based on the platform:
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

# now Motion::Require will detect require_relative
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.