Crystal module path require issue
up vote
1
down vote
favorite
This is my first post so please excuse the brevity. I'm learning crystal and trying to include a file which has a shared name with another file in another path. According to the documentation I can use require "path/to/modules/"
and include all files within, but when I do this I and then use the imported class, it tells me the class does not exist...
Nothing in the documentation seems to work. Is there some addon module I need to get the paths to work properly or am I misunderstanding something or do I have some syntax error?
This is my code (Using the example on the home page)
require "http/server"
require "modules/HttpRequest"
server = HTTP::Server.new do |context|
context.response.print(request.result)
end
server.listen(80)
And the file HttpRequest.cr
is in /modules/
.
The error I get
Error in Server.cr:2: while requiring "modules/HttpRequest": can't find file 'modules/HttpRequest'
If you're trying to require a shard:
- Did you remember to run `shards install`?
- Did you make sure you're running the compiler in the same directory as your shard.yml?
require "modules/HttpRequest"
^
crystal-lang
add a comment |
up vote
1
down vote
favorite
This is my first post so please excuse the brevity. I'm learning crystal and trying to include a file which has a shared name with another file in another path. According to the documentation I can use require "path/to/modules/"
and include all files within, but when I do this I and then use the imported class, it tells me the class does not exist...
Nothing in the documentation seems to work. Is there some addon module I need to get the paths to work properly or am I misunderstanding something or do I have some syntax error?
This is my code (Using the example on the home page)
require "http/server"
require "modules/HttpRequest"
server = HTTP::Server.new do |context|
context.response.print(request.result)
end
server.listen(80)
And the file HttpRequest.cr
is in /modules/
.
The error I get
Error in Server.cr:2: while requiring "modules/HttpRequest": can't find file 'modules/HttpRequest'
If you're trying to require a shard:
- Did you remember to run `shards install`?
- Did you make sure you're running the compiler in the same directory as your shard.yml?
require "modules/HttpRequest"
^
crystal-lang
Surely the/
dashes are pointing to root and not relative to the working directory? In which case the first require should be failing as well which is a little strange that it's not...
– Stephen Lake
Nov 11 at 13:30
No sorry I have made an error in writing my question - the slashes are not present
– PinkFluff
Nov 11 at 13:50
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
This is my first post so please excuse the brevity. I'm learning crystal and trying to include a file which has a shared name with another file in another path. According to the documentation I can use require "path/to/modules/"
and include all files within, but when I do this I and then use the imported class, it tells me the class does not exist...
Nothing in the documentation seems to work. Is there some addon module I need to get the paths to work properly or am I misunderstanding something or do I have some syntax error?
This is my code (Using the example on the home page)
require "http/server"
require "modules/HttpRequest"
server = HTTP::Server.new do |context|
context.response.print(request.result)
end
server.listen(80)
And the file HttpRequest.cr
is in /modules/
.
The error I get
Error in Server.cr:2: while requiring "modules/HttpRequest": can't find file 'modules/HttpRequest'
If you're trying to require a shard:
- Did you remember to run `shards install`?
- Did you make sure you're running the compiler in the same directory as your shard.yml?
require "modules/HttpRequest"
^
crystal-lang
This is my first post so please excuse the brevity. I'm learning crystal and trying to include a file which has a shared name with another file in another path. According to the documentation I can use require "path/to/modules/"
and include all files within, but when I do this I and then use the imported class, it tells me the class does not exist...
Nothing in the documentation seems to work. Is there some addon module I need to get the paths to work properly or am I misunderstanding something or do I have some syntax error?
This is my code (Using the example on the home page)
require "http/server"
require "modules/HttpRequest"
server = HTTP::Server.new do |context|
context.response.print(request.result)
end
server.listen(80)
And the file HttpRequest.cr
is in /modules/
.
The error I get
Error in Server.cr:2: while requiring "modules/HttpRequest": can't find file 'modules/HttpRequest'
If you're trying to require a shard:
- Did you remember to run `shards install`?
- Did you make sure you're running the compiler in the same directory as your shard.yml?
require "modules/HttpRequest"
^
crystal-lang
crystal-lang
edited Nov 11 at 13:52
asked Nov 11 at 13:13
PinkFluff
388
388
Surely the/
dashes are pointing to root and not relative to the working directory? In which case the first require should be failing as well which is a little strange that it's not...
– Stephen Lake
Nov 11 at 13:30
No sorry I have made an error in writing my question - the slashes are not present
– PinkFluff
Nov 11 at 13:50
add a comment |
Surely the/
dashes are pointing to root and not relative to the working directory? In which case the first require should be failing as well which is a little strange that it's not...
– Stephen Lake
Nov 11 at 13:30
No sorry I have made an error in writing my question - the slashes are not present
– PinkFluff
Nov 11 at 13:50
Surely the
/
dashes are pointing to root and not relative to the working directory? In which case the first require should be failing as well which is a little strange that it's not...– Stephen Lake
Nov 11 at 13:30
Surely the
/
dashes are pointing to root and not relative to the working directory? In which case the first require should be failing as well which is a little strange that it's not...– Stephen Lake
Nov 11 at 13:30
No sorry I have made an error in writing my question - the slashes are not present
– PinkFluff
Nov 11 at 13:50
No sorry I have made an error in writing my question - the slashes are not present
– PinkFluff
Nov 11 at 13:50
add a comment |
1 Answer
1
active
oldest
votes
up vote
4
down vote
accepted
Using require "modules/HttpRequest"
will look up modules/HttpRequest
in CRYSTAL_PATH
according to the require rules.
To require a file relative to the current file you need to use require "./modules/HttpRequest"
.
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
4
down vote
accepted
Using require "modules/HttpRequest"
will look up modules/HttpRequest
in CRYSTAL_PATH
according to the require rules.
To require a file relative to the current file you need to use require "./modules/HttpRequest"
.
add a comment |
up vote
4
down vote
accepted
Using require "modules/HttpRequest"
will look up modules/HttpRequest
in CRYSTAL_PATH
according to the require rules.
To require a file relative to the current file you need to use require "./modules/HttpRequest"
.
add a comment |
up vote
4
down vote
accepted
up vote
4
down vote
accepted
Using require "modules/HttpRequest"
will look up modules/HttpRequest
in CRYSTAL_PATH
according to the require rules.
To require a file relative to the current file you need to use require "./modules/HttpRequest"
.
Using require "modules/HttpRequest"
will look up modules/HttpRequest
in CRYSTAL_PATH
according to the require rules.
To require a file relative to the current file you need to use require "./modules/HttpRequest"
.
answered Nov 11 at 15:08
RX14
2,452819
2,452819
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53249089%2fcrystal-module-path-require-issue%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Surely the
/
dashes are pointing to root and not relative to the working directory? In which case the first require should be failing as well which is a little strange that it's not...– Stephen Lake
Nov 11 at 13:30
No sorry I have made an error in writing my question - the slashes are not present
– PinkFluff
Nov 11 at 13:50