Jump to content

ruby require_relative


Recommended Posts

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
Link to comment

 

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

Link to comment

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
Link to comment

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...