Jump to content

ruby require_relative


Recommended Posts

Posted (edited)
Hi guys,
 
I'm trying to create one workflow using a script filter with ruby. When i put everything in alfred script box it works fine, but i'd like to keep thing organized, so I tried to create 3 separate files, that are placed in workflow folder, and then use alfred script box just to call the methods defined in this files. Something like this:
 
require_relative "file1"
require_relative "file2"
require_relative "file3"


...


puts some_method(param)
 
But when I do this, I get this exception:
 
[ERROR: alfred.workflow.input.scriptfilter] Code 1: -e:1:in `require_relative': cannot infer basepath (LoadError)
from -e:1:in `<main>'

So, is it possible to do something like this. If yes, how?

 

Thanks!

Edited by steviebraga
Posted

 

Hi guys,
 
I'm trying to create one workflow using a script filter with ruby. When i put everything in alfred script box it works fine, but i'd like to keep thing organized, so I tried to create 3 separate files, that are placed in workflow folder, and then use alfred script box just to call the methods defined in this files. Something like this:
 
require_relative "file1"
require_relative "file2"
require_relative "file3"


...


puts some_method(param)
 
But when I do this, I get this exception:
 
[ERROR: alfred.workflow.input.scriptfilter] Code 1: -e:1:in `require_relative': cannot infer basepath (LoadError)
from -e:1:in `<main>'

So, is it possible to do something like this. If yes, how?

 

Thanks!

 

 

Within the script box, a require would typically work normally for files located within the workflow directory. I'm not sure with the require_relative. Have you tried a regular "require"? I would think require_relative would work as well but can't say for sure

Posted (edited)

When I tried the regular require, I got this error:

[ERROR: alfred.workflow.input.scriptfilter] Code 1: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- cpf (LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from -e:1:in `<main>'

But googling overnight, I found a solution: instead of using require, I used load and everything is working now!

load "cpf.rb"

Thanks for your time!

Edited by steviebraga

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...