Class: Motion::Require::RequireBuilder
- Inherits:
-
Ripper::SexpBuilder
- Object
- Ripper::SexpBuilder
- Motion::Require::RequireBuilder
- Defined in:
- lib/motion-require.rb
Constant Summary collapse
- REQUIREMENT_TOKENS =
%w[motion_require require_relative]
Instance Attribute Summary collapse
-
#requires ⇒ Object
Returns the value of attribute requires.
Instance Method Summary collapse
-
#on_command(command, args) ⇒ Object
scanner event.
- #parse_args(args) ⇒ Object
- #valid_require_command(name) ⇒ Object
Instance Attribute Details
#requires ⇒ Object
Returns the value of attribute requires.
14 15 16 |
# File 'lib/motion-require.rb', line 14 def requires @requires end |
Instance Method Details
#on_command(command, args) ⇒ Object
scanner event
20 21 22 23 24 25 26 |
# File 'lib/motion-require.rb', line 20 def on_command(command, args) # scanner event type, name, position = command if valid_require_command(name) file = parse_args(args) requires << file end end |
#parse_args(args) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/motion-require.rb', line 35 def parse_args(args) value = nil args.each do |arg| if arg.is_a?(Array) type = arg.first if type == :@tstring_content return arg[1] end value = parse_args(arg) end end value end |
#valid_require_command(name) ⇒ Object
28 29 30 31 32 33 |
# File 'lib/motion-require.rb', line 28 def valid_require_command(name) if name == 'require_relative' && !Motion::Require.require_relative_enabled raise NoMethodError, 'require_relative is not enabled, see Motion::Require.require_relative_enabled' end REQUIREMENT_TOKENS.include?(name) end |