Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

motion-require

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

motion-require

  • 0.2.0
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

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:

  • Formotion
  • MotionSupport
  • Basecamp (ref)

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.

FAQs

Package last updated on 04 Mar 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc